字符编码:
二进制记录:128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1 = 8位
ascii 编码:占1个字节8位,只能表示256个符号,主要用于显示英语和其他西欧语言。
gb2312编码:占用第一字节剩余的128位+扩展,发布1980年。
gbk编码:发布1995年,兼容gb2312
gb18030:发布2000年,兼容gbk,gb2312,
unicode编码:统一代表所有国家的字符和符号(统一万国码),占用2个字节。2**16=65536。问题是ascii出现也占用2个字节问题。
UTF-8:可变长的编码字符集,解决unicode的问题。(存英文以ascii存储1个字节,存汉字以unicode存储,但是会占用3个字节)
全部向下兼容(utf-8 到 ascii)。
python3默认字符集utf-8. python2 默认字符集ascii
用户交互:
python3中的input交互 和 python2中的raw_input 功能一样。
1 name = input('name:') #用户输入进行交互 2 age = int(input('age:')) 3 job = input('job:') 4 salary = input('salary:') 5 6 info = ''' 7 -------------info of %s-------------- 8 Name: %s 9 Age: %d 10 Job: %s 11 Salary:%s 12 --------------end-------------------- 13 ''' % (name,name,age,job,salary) #第一种格式化输出 14 15 info2 = ''' 16 -------------info of {_name}-------------- 17 Name: {_name} 18 Age: {_age} 19 Job: {_job} 20 Salary:{_Salary} 21 --------------end-------------------- 22 '''.format(_name=name, 23 _age=age, 24 _job=job, 25 _Salary=salary) #第二种格式化输出 26 info3 = ''' 27 -------------info of {0}-------------- 28 Name: {0} 29 Age: {1} 30 Job: {2} 31 Salary:{3} 32 --------------end-------------------- 33 '''.format(name,age,job,salary) #第三种格式化输出 34 35 print (info) 36 print (info2) 37 print (info3)
注意:不建议字符串用“+”加号拼接,因为会另外占用内存,浪费资源。特殊情况下可以使用。
条件判断:
语法:if 条件:
执行语句
elif 条件:
执行语句
else:
执行语句
举例:
1 #getpass模块支持输入密码时加密不可见 2 import getpass 3 4 _name = 'jeck' 5 _pass = 'abc123' 6 username = input('name:') 7 # passwd = getpass.getpass('password:') #由于在pycharm中无法使用此功能,所以注释掉。 8 passwd = input('password:') 9 10 if _name == username and _pass == passwd: 11 print ('Welcome user {_name} login...'.format(_name=username)) 12 else: 13 print ('Inviled loging')
while 循环:即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.
基本语法: 当条件判断为真时执行语句,为假时退出循环
while 条件判断:
执行语句
else: #可选
执行语句
举例:
1 age_of_Jeck = 38 2 ''' 3 #方法1 4 count = 0 5 while count < 3: #判断小于3执行下面代码 6 age = int(input('please input Jeck Age:')) 7 if age == age_of_Jeck: 8 print ('Yes ,Jeck age to:%d' % age) 9 break #符合跳出循环,不执行else语句了 10 elif age > age_of_Jeck: 11 print ('Think small') 12 else: 13 print ('Think bigger') 14 count += 1 #计数加1 15 else: #条件执行完毕,运行如下代码 16 print ('sorry,too many,exit!') 17 ''' 18 #方法2 19 count = 0 20 while count < 3: 21 age = int(input('please input Jeck Age:')) 22 if age == age_of_Jeck: 23 print ('Yes ,Jeck age to:%d' % age) 24 break 25 elif age > age_of_Jeck: 26 print ('Think small') 27 else: 28 print ('Think bigger') 29 count += 1 30 if count == 3: #当计数满3次,重新确认是否继续。 31 continue_confirm = input('do you want to keep gressing...?') 32 if continue_confirm != 'n': 33 count = 0 34 else: 35 print ('input error , well exit')
for 循环:可以遍历任何序列的项目,如一个列表或者一个字符串。
基本语法:
for iterating_var in sequence:
执行语句
else: #可选
执行语句
举例:
1 age_of_Jeck = 38 2 3 for i in range(3): 4 age = int(input('please input Jeck Age:')) 5 if age == age_of_Jeck: 6 print ('Yes ,Jeck age to:%d' % age) 7 break 8 elif age > age_of_Jeck: 9 print ('Think small') 10 else: 11 print ('Think bigger') 12 else: 13 print ('sorry,too many,exit!')