首页 > 代码库 > python学习之路_python基础(1)

python学习之路_python基础(1)

学习内容:

1、python介绍

2、python程序初接触和变量

3、python用户交互

4、python数据类型

5、python循环if...(elif)...else

6、python循环while...else

7、python循环for...else

8、python循环中断break和continue

 

一、python介绍

1)python优缺点

先看优点:

  1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
  5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

再看缺点:

  1. 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
  2. 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  3. 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

二、python程序初接触和变量

print (“Hello,world!”)#第一个python程序

b=2

c=3

print (b,c) #变量赋值

b=22

print (b,c) #变量指向内存地址

name="spider"

print (name) #变量赋值(字符串)

蜘蛛 = "spider" #python2与python3区别

print (蜘蛛)

三、python用户交互

1)input及raw_input

python2中input即为python3中的input(用法一致)

python2中的raw_input,输入什么类型就输出什么类型;python3中没有raw_input

2)input用法及参数传递方式:

name = input(‘Name:‘)
age = input(‘Age:‘)
print (type(age))
job = input(‘Job:‘)
salary = input(‘Salary:‘)

info3=‘‘‘
-----information of info3 {0}
Name:{0}
Age:{1}
Job:{2}
Salary={3}
‘‘‘.format(name,age,job,salary)

print (info3)

info2=‘‘‘
------information of info2 {_name}------
Name:{_name}
Age :{_age}
Job :{_job}
salary:{_salary}
‘‘‘ .format(_name=name,
_age=age,
_job=job,
_salary=salary)

print (info2)
info1 = ‘‘‘
-------information of info1 %s-------
Name:%s
Age :%s
Job :%s
Salary :%s
‘‘‘ %(name,name,age,job,salary)

print (info1)

info=‘‘‘
---------information of info ‘‘‘ + name +‘‘‘--------
Name:‘‘‘ + name + ‘‘‘
Age :‘‘‘ + age + ‘‘‘
Job :‘‘‘ + job + ‘‘‘
Salary :‘‘‘ + salary

print (info)

四、python数据类型及字符编码格式

1)数据类型

数字int  浮点f  字符串s  bool:Ture和False

2)字符编码

ASCII  :American Standard Code for Information Interchange ,美国标准信息交换代码   占1byte

GB2312:1980年诞生,支持7000个中文,占2bytes 

GBK:1995年诞生,支持2万个中文,占2bytes

GB18030:2000年诞生,支持蒙、藏、维等字符,支持2.7万文字,占2bytes

注:以上均向下兼容;

后来unicode诞生,又叫万国码、统一码,支持以上格式,兼容他国语言,占2bytes

由于资源浪费,UTF-8诞生,可变长度的unicode,ASCII中的内容占1byte,欧洲的字符占2bytes,东亚的字符占3bytes(赤裸裸的剥削)

五、python循环if...(elif)...else

#密文密码输入 getpass模块  pycharm下无法实现,在linux系统下可以实现
import getpass
‘‘‘ #输入用户名和密码正确欢迎,错误返回错误消息
_username = ‘spider‘
_password = ‘123‘

username = input("请输入用户名:")
#password = getpass.getpass("请输入密码:") #密文输入
password= input("请输入密码:")
if username == _username and password == _password:
print ("Welcome user {a} login...".format(a=username))
else:
print ("invalid username or password")

print (username,password)
‘‘‘

六、python循环while...else

Age_of_oldboy = 78  #猜数字,对了打印信息,最多猜三次,都错误返回信息
count = 0
while count<3:
guess_age = int(input ("gusee oldboy‘s age:"))

if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!")

count +=1
else:
print ("you have tried too many times.. Please go out!")

七、python循环for...else

Age_of_oldboy = 78 #猜数字,对了打印信息,最多猜三次,都错误返回信息

for count in range (3):
    guess_age = int(input ("gusee oldboy‘s age:"))

if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!")

八、python循环中断break和continue

1)break跳出该循环;continue跳出本次循环

举例1:
for i in range(0,10): #i<5则继续向下执行,打印j,i>5则不向下执行,不打印j
print ("---------",i)
if i> 5 :
continue
for j in range(0,10):#j<5则打印j,j>5则跳出该循环
print (j)
if j > 5:
break
举例2:
for i in range(0,10): #当i>5,跳出循环,不向下执行,当i<5,向下执行
print ("---------",i)
if i> 5 :
break
for j in range(0,10):
print (j)
if j > 5:
continue


python学习之路_python基础(1)