Python之while循环、break、continue、格式化
1.while循环结构
while条件:
循环体
while True: #死循环
print('我请你打游戏')
2.如何终止循环
(1)改变条件(标志位概念)
flag=True while flag: #死循环 print('我请你打游戏') print('我请你打吃饭') print('我请你打听歌') flag = False print('我和你一起购物')
#从1打印到100
方法一:
flag=True
count=1
while flag:
print(count)
count+=1
if count==101:
flag=False
方法二:
count=1
while count<101:
print(count)
count+=1
(2)break
定义:while循环中只要运到break立马结束循环
while True: #死循环
print('我请你打游戏')
break
#利用break,while计算1到100间的和
num=1
sum=0
while True:
sum=num+sum
num=num+1
if num==101:
break
print(sum)
(3)continue:结束本次循环,继续下次循环
while True: print(111) print(222) continue print(333)
3.while else结构
如果while循环被break打断,则不执行else代码
count=1 while count<5: print(count) count+=1 if count==3: break else: print(666) print(222)
>>>1
2
222
#while循环应用场景:
验证用户名密码,重新输入这个功能需要while循环。
无限次的显示页面,无限次的输入...
4.格式化输出
制作一个模板,某些未知的参数是动态的,像这样,就需要用格式化输出。
字符串的动态替换。
方式一:
name=input("请输入姓名:") age=int(input("请输入年龄:")) sex=input("请输入性别:") #%是占位符 s是字符串类型 d数字 msg='你的名字是%s,你的年龄是%d,你的性别是%s'%(name,age,sex) print(msg)
方式二:
name=input("请输入姓名:") age=int(input("请输入年龄:")) sex=input("请输入性别:") msg='你的名字是%(name1)s,你的年龄是%(age1)d,你的性别是%(sex1)s'%{'name1':name,'age1':age,'sex1':sex} print(msg) #bug点 在格式化输出中,只想单纯的表示一个%时,应该用%%表示 # msg='我叫%s,今年%d,学习进度1%%' %('小甲鱼',28) # print(msg)
5.运算符
(1)
== 比较两边的值是否相等
= 赋值运算
!= 不等于
+= 举例:count=count+1 简写:count+=1
-=
*=
/=
**= 幂等于
//= 整除等于
(2)逻辑运算符:
and or not
优先级:()>not>and>or
#and or not
情况一:前后条件为比较运算
print(1<2 or 3>1) #True
print(1<2 and 3>4) #False
print(1<2 and 3>4 or 8<6 and 9>5 or 7>2) # True
#第二种情况,前后两边的条件为数值
''''
x or y if x is True,return True x
'''
print(1 or 2) #1 print(5 or 2) #5 print(0 or 2) #2 print(-1 or 2) #-1
补充
int<---->bool
0 对应的bool值为false,非0都是True
True 1,False 0
and相反
面试考的题:
print(1 or 3 and 5 or 4) # 1 print(0 or 3 and 5 or 4) # 5 #print(1>2 or 3 and 4<6) # True print(2 or 3 and 4 <6) # 2
总结:优先级:and>'>'>or
(3)应用
①if while 等条件判断(数据库,Django orm Q查询)
②面试
6.编码初识
ASCII:最初版本的密码本:所有的英文字母,数字,特殊字符。
A:01000001 8位==1个字节
a:01100001
对于ASCII来说:
unicode:万国码,将所有国家的语言文字都写入这个密码本。
起初:1个字符 16位 2个字节表示。
改版:1个字符 32位 4个字节表示。 浪费资源,占空间。
GBK:只包含本国文字(以及英文字母,数字,特殊字符)与0101010对应关系。
UTF-8:包含全世界所有的文字与二进制0101001的对应关系(最少用8位一个字节表示一个字符)。
单位转换
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB

浙公网安备 33010602011771号