Python基础2
- while循环、格式化输出、运算符、编码
while循环
1.1 while循环语法格式:
基本while循环格式:
while 条件:
循环体
while....else:
while 条件:
循环体
else:
代码
1.2 while循环的原理:
- 判断条件是否成立
- 条件成立进入循环体,否则不执行循环
- 循环体执行到底部
- 再次判断条件是否成立
1.3 终止while循环
改变条件,终止循环
flag = True while flag: print("下山") print("归寻") flag = False print("让酒") print("天下") 结果: 下山 归寻 让酒 天下 #注意while循环的原理,是执行到循环体底部之后再次判断条件
使用break终止
flag = True while flag: print("下山") print("归寻") break print("让酒") print("天下") 结果: 下山 归寻 #while循环体中遇到break是直接退出,不会继续执行break后的语句
使用系统命令终止
1.4 break和continue的区别
count = 0 while count < 3: count = count + 1 if count == 1: break print("下山") print("归寻") print("让酒") print("天下") 结果: count = 0 while count < 3: count = count + 1 #条件一定要写到continue上面否则满足continue的条件之后,count不会继续累加,会报错。 if count == 1: continue print("下山") print("归寻") print("让酒") print("天下") 结果: 下山 归寻 让酒 天下 下山 归寻 让酒 天下 #while循环中遇见break是直接终止循环,continue是跳出本次循环进入下一次循环
格式化输出
%格式化输出时是占位符,s代表字符串类型,d代表整数
name = input("请输入姓名:") age = input("请输入年龄:") job = input("请输入工作:") hobby = input("请输入爱好:") msg = ''' ------------info of %s------------ name:%s age:%s job:%s hobby:%s ---------------end---------------- '''%(name,name,age,job,hobby) print(msg) 结果: 请输入姓名:alex 请输入年龄:18 请输入工作:teacher 请输入爱好:reading ------------info of alex------------ name:alex age:18 job:teacher hobby:reading ---------------end---------------- #就像一个通用的模板,输入数据就可以规范输出
在格式化状态下百分号为:%%
name = input("请输入姓名:") age = input("请输入年龄:") msg = '我的名字:%s,我的年龄:%s,我的学习进度:1%%'%(name,age) print(msg) 结果: 请输入姓名:alex 请输入年龄:18 我的名字:alex,我的年龄:18,我的学习进度:1%
运算符
算数运算符:
加:+ 减:- 乘:* 除:/ 取余:%取商:// 幂运算:**
print(3+2) print(3-2) print(3*2) print(3/2) print(3%2) print(3**2) print(3//2) 结果: 5 1 6 1.5 1 9 1
比较运算:==、!=、<>、>、<、<=、>=
print(3==2) print(3!=2) print(3>2) print(3<2) print(3<=2) print(3>=2) 结果: False True True False False True
赋值运算:=、+=、-=、*=、/=、%=、**=、//=
逻辑运算:and or not
在没有()的情况下,优先级为:not>and>or,同一优先级从左到右依次计算
在两边都是比较运算的情况下,print之后的值为True/False
print(3 > 4 and 2 < 1 or 3 > 2 and 2 > 1) 结果: True
两边都是数字的情况下:
x or y, x为真,则结果为x值,x为假,则结果为y值,and与or相反
print(3 and 4 or 0 and 1) 结果: 4
数字与比较运算混合存在
print(1 > 2 and 3 or 4) 结果: 4 #首先1 > 2 结果为 false,bool值转化为数字,false应该为0 #这里就变为0 and 3 or 4,0为假,0 and 3 取值为 0 # 0 or 4,0为假,应该取 y值,y值为4
编码
编码就是二进制与文字的对应关系表
编码的进化史:
第一个二进制与文字的对照表为ASCII:只包含英文字母、数字、特殊字符,每个字符占7bit,所以ASCII的二进制最左边一位都为0
GBK:包含了中文、英文、数字、特殊字符、英文字符每个占1byte,中文每个占2bytes
Unicode:万国码,包含了世界上所有文字,每个字符占4bytes
Utf-8:万国码的压缩版本,最少用1byte,英文字符为1byte,中文用3bytes
'你好22ha' 以GBK编码:8bytes 以utf-8编码:10bytes
存储单位的换算:
8bit = 1Byte 1024Bytes = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = ITB