Python基础(3)条件语句与循环语句
成员运算
判断某个个体在不在某个群体之内
关键字:in(在) not in (不在)
输出结果为 True 或 False
name_list = ['tony', 'jason', 'jay', 'jake']
print('jake' in name_list) # 输出结果为True
#在字典中只能通过查询K来访问V,所以如果直接问V是否在其中,大都是False
personal_information = {
'name': 'tony',
'age': 19,
'job': 'idol'
}
print('tony' in personal_information)
#输出结果为False
身份运算
判断两个数据值和地址是否相等
1.判断值是否相等:用 ==
print([11, 22, 33, 444, 555] == [11, 22, 33, 444, 555]) # 输出结果为 True
2.判断地址是否相等:用 is
print([11, 22, 33, 444, 555] is [11, 22, 33, 444, 555]) # 输出结果为 False
流程控制
流程控制即控制事物的执行流程,分为三种结构
1.顺序结构
自上而下依次运行
2.分支结构
在运行过程中根据条件的不同可能会执行不同的流程
关键字:if
2.1 单 if 分支结构
if 条件:条件成立之后执行的子代码块
age = 17
if age < 18: # 条件语句后必须要加冒号
print('未成年')
2.2 if与else连用
语法:
if 条件:
条件成立后执行的子代码块
else:
条件不成立的情况下执行的子代码块
注 : if与else连用 两者的子代码永远只会执行一个
age = 19
if age < 18:
print('未成年')
else:
print('成年')
2.3 if elif else三者连用
语法:
if 条件1:
条件1成立之后执行的子代码块
elif条件2:
条件1不成立 条件2成立之后执行的子代码块
elif条件3:
条件1和2都不成立 条件3成立之后执行的子代码块
. . . . . .
else:
上述条件都不成立 执行的子代码块
# 根据成绩评判分类
# 大于90优秀 大于80良好 大于70一般 大于60及格 其他挂科
score = 79
if score > 90:
print('优秀')
elif score > 80:
print('良好')
elif score > 70:
print('一般')
elif score 78> 60:
print('及格')
else:
print('挂科重修')
3.循环结构
while循环
while 条件:
条件成立之后循环执行的子代码块
例:
while True:
# 1.获取用户输入的用户名和密码
username = input('username:')
pw = input('password:')
# 2.判断用户名和密码是否正确
if username == 'tony' and password == '111':
print('login succeed')
else:
print('login failed')
上列代码执行的流程图:

while + break
# break结束本层循环
while True:
# 1.获取用户输入的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 2.判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('login succeed')
# 直接结束本层循环
break
else:
print('login failed')
上列代码执行的流程图:

break跳出本层循环的含义及while嵌套
# while嵌套
while True:
# 1.获取用户输入的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 2.判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('login succeed')
while True:
cmd = input('请输入您的指令>>>:')
# 判断用户是否想退出
if cmd == 'q':
break
print('正在执行您的指令:%s' % cmd)
break
else:
print('login failed')
上述代码的流程图如下:

全局标志位
# 标志位的使用
flag = True
while flag:
# 1.获取用户输入的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 2.判断用户名和密码是否正确
if username == 'jason' and password == '123':
print('login succeed')
while flag:
cmd = input('请输入您的指令>>>:')
# 判断用户是否想退出
if cmd == 'q':
flag = False
print('正在执行您的指令:%s' % cmd)
else:
print('login failed')
while+continue
continue会让循环体代码直接回到条件判断处重新判断
例:使用while循环打印出0-10,但不打印5
count = 0
while < 11:
if count == 5:
count += 1
continue
print(count)
count +=1
while+else
当while循环没有被人为中断的情况下才会执行else
count = 0
while count < 5:
print(count)
count += 1
else:
print('end') # 会执行else子代码
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('end') # 不会执行else子代码
死循环
死循环会让CPU极度繁忙 甚至崩溃
while True:
print(111)
for 循环
for循环能做到的事情 while循环都可以做到
但是for循环语法更加简洁 并且在循环取值问题上更加方便
语法结构:
for 变量名 in 可迭代对象: 如: 字符串、列表、字典、元组、集合
for循环体代码
流程图:

ps:变量名如果没有合适的名称 那么可以使用i,j,k,v,item等
例:
# 循环取出列表的每一个元素并打印
for name in ['tony', 'leo', 'jake', 'jay']:
print(name)
# for循环字符串
for i in 'hello world':
print(i)
# for循环字典:默认只能拿到k
d = {'username': 'tony', 'pwd': 111, 'job': 'doctor'}
for k in d:
print(k, d[k])
range关键字
# 第一种:一个参数,从0开始,顾头不顾尾
for i in range(10):
print(i)
# 第二种:两个参数,自定义起始位置,顾头不顾尾
for i in range(2,10):
print(i)
#第三种:三个参数,第三个数字用来控制等差
for i in range(10,289,8):
print(i)
range在不同版本的解释器中 本质不同
在python2.X中range会直接生成一个列表
在python2.X中有一个xrange也是迭代器
在python3.X中range是一个迭代器,节省内存空间
注:python2.X中xrange就是python3.x里面的range
for+break
break功能也是用于''结束''本层循环
for i in range(10):
if i == 4:
break
print(i)
for+continue
continue功能也是用于结束''本次''循环
for i in range(10):
if i == 4:
continue
print(i)
for+else
else也是在for循环正常结束的情况下才会执行
for i in range(10):
if i == 4:
break
print(i)
else:
print('end')
for循环的嵌套使用
for i in range(3):
for j in range(6):
print('*', end='')
print()
运行结果:

重点补充
1.条件都会转成布尔值 从而决定子代码是否执行
2.在python中 使用缩进来表示代码的从属关系
3.并不是所有的代码都可以拥有子代码
4.同属于某个代码的多行子代码 必须要保持相同的缩进量
在python中推荐使用四个空格来缩进
ps:小技巧 上一行代码的结尾如果是冒号 那么下一行代码必缩进
作业 猜年龄的游戏



浙公网安备 33010602011771号