流程控制
1 . 流程控制?
即控制代码执行的先后顺序。
2 . 种类:
在python中,流程控制一共有3 种:
- 顺序结构: 执行顺序从上到下依次执行(如果没有其他的特殊条件,默认为该结构)。
- 分支结构: 执行某段程序时候,有多种选择,需要判断条件是否成立,根据判断结果执行不同的流程。
- 循环结构: 重复执行某件事情或某段代码。
分支结构
1 . 单分支结构
1.1 关键字: if
1.2 结构:
'''
if 条件:
条件成立需要执行的子代码块
'''
1.3 注意事项:
1 ) 条件成立,执行子代码块,子代码块需要缩进;
2 ) 一般冒号后面的都要缩进;
3 ) 同属于一个代码块的子代码块,缩进量必须一样,同一代码块执行从上而下依次执行;
4 ) 条件可以是任意表达式,但执行结果必须为布尔类型。
1.4 示例:
age_of_girl = 35
if age_of_girl < 24 :
print ( '小姐姐' )
2 . 双分支结构:
2.1 关键字:
if else
2.2 结构:
'''
if 条件:
条件成立执行该子代码块
else:
条件不成立,执行此子代码块
'''
2.3 示例:
age_of_girl = 35
if age_of_girl < 24 :
print ( '小姐姐' )
else :
print ( '阿姨好' )
2.4 注意:
"在双分支中if 条件子代码块和else 子代码块,两者只能执行一个"
练习题:
age = 22
height = 165
weight = 90
is_beautiful = True
if age < 24 and height > 160 and weight < 100 and is_beautiful:
print ( '我们可以处对象嘛!' )
else :
print ( '我们不合适!' )
3 . 多分支结构
3.1 结构:
'''
if 条件:
条件成立之后执行的代码
elif 条件1:
条件不成立,条件1成立之后,执行的代码
elif 条件2:
条件和条件1都不成立,条件2成立执行的代码
...
else:
以上条件都不成立,执行的代码块
'''
3.2 注意:
"else不是一定要写的"
3.3 示例:
score = 20
if score >= 90 :
print ( 'A' )
elif score >= 80 :
print ( 'B' )
elif score >= 70 :
print ( 'C' )
elif score >= 60 :
print ( 'D' )
else :
print ( 'E' )
if语句之嵌套
age = 22
height = 165
weight = 90
is_beautiful = True
is_success = False
if age < 24 and height > 160 and weight < 100 and is_beautiful:
print ( '小姐姐加个微信?' )
if is_success:
print ( '吃饭,看电影......' )
else :
print ( '滚犊子' )
else :
print ( '滚犊子' )
if练习题1:
代码实现:
username = input ( '请输入用户名:' )
password = input ( '请输入密码:' )
password = int ( password)
if username == 'mark' and password == 123 :
print ( '登录成功' )
else :
print ( '登录失败' )
if练习题2:
代码实现:
username = input ( '请输入用户名:' )
if username == 'mark' :
print ( '管理员' )
elif username == 'smith' :
print ( '前端' )
elif username == 'tom' :
print ( '后端' )
else :
print ( '其他人员' )
循环结构
while循环
1 . 结构:
'''
while 条件:
条件成立之后的代码块
'''
2 . 示例:
while True :
username = input ( '请输入用户名:' )
password = input ( '请输入密码:' )
if username == 'mark' and password == '123' :
print ( '登录成功' )
else :
print ( '登录失败' )
while+break
while True :
username = input ( '请输入用户名:' )
password = input ( '请输入密码:' )
if username == 'mark' and password == '123' :
print ( '登录成功' )
break
else :
print ( '登录失败' )
print ( 123 )
注意:break 跳出的只是本层循环
while True :
username = input ( '请输入用户名:' )
password = input ( '请输入密码:' )
if username == 'mark' and password == '123' :
print ( '登录成功' )
while True :
cmd = input ( '请输入你的指令:' )
print ( '正在执行你的指令:%s' % cmd)
if cmd == 'q' :
break
break
else :
print ( '登录失败' )
标志位的使用
flag = True
while flag:
username = input ( '请输入用户名:' )
password = input ( '请输入密码:' )
if username == 'mark' and password == '123' :
print ( '登录成功' )
while flag:
cmd = input ( '请输入你的指令:' )
print ( '正在执行你的指令:%s' % cmd)
if cmd == 'q' :
flag = False
else :
print ( '登录失败' )
while+continue
1 . 问题前提:使用循环打印出0 - 9 的数字
count = 0
while count < 10 :
print ( count)
count += 1
2 . 如果修改问题为:使用循环打印出0 - 9 的数字, 但是不打印3 ,该如何进行?
解决:需要使用到continue 关键字,结束本次循环
count = 0
while count < 10 :
if count == 3 :
count += 1
continue
print ( count)
count += 1
注意:continue 只是结束本次循环,碰到continue ,会立马执行循环条件的判断。
while+else
count = 0
while count < 5 :
print ( count)
count += 1
else :
print ( '我执行了' )
count = 0
while count < 5 :
if count == 3 :
break
print ( count)
count += 1
else :
print ( '我执行了' )
总结:当没有人为终断循环体时候,会执行else , 否则,不走else
for循环
问题:逐个打印hobby_list中的元素?
hobby_list = [ 'basketball' , 'tea' , 'game' , 'short_video' ]
hobby_list = [ 'basketball' , 'tea' , 'game' , 'short_video' ]
count = 0
while count < 4 :
print ( hobby_list[ count] )
count += 1
hobby_list = [ 'basketball' , 'tea' , 'game' , 'short_video' ]
for i in hobby_list:
print ( i)
语法结构:
'''
for i in 可迭代对象: # 可迭代对象指字符串,列表,元祖,字典,集合...
print(i)
'''
注意:
1 . for 循环的循环对象不能为数字:
for i in 1.123 :
print ( i)
2 . 当循环对象为字典时,循环字段暴露的是key
d = { 'username' : 'mark' , 'password' : 123 }
for i in d:
print ( i, d[ i] )
'''
for i in d: 里面的i值可以是任意的变量,如果没有好的变量名,一般叫i, j, k, v, item等
'''
range关键字
1 . 第一种玩法:
for i in range ( 10 ) :
print ( i)
2 . 第二种玩法:
for i in range ( 3 , 10 ) :
print ( i)
3 . 第三种玩法:
for i in range ( 0 , 100 , 10 ) :
print ( i)
https: // movie. douban. com/ top250?start= 0 & filter =
https: // movie. douban. com/ top250?start= 25 & filter =
https: // movie. douban. com/ top250?start= 50 & filter =
https: // movie. douban. com/ top250?start= 75 & filter =
https: // movie. douban. com/ top250?start= 100 & filter =
代码实现:
base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range ( 0 , 250 , 25 ) :
print ( base_url % i)
死循环
while True :
print ( 1 )
for+break
for i in range ( 10 ) :
if i == 3 :
break
print ( i)
for+continue
for i in range ( 10 ) :
if i == 3 :
continue
print ( i)
for+else
for i in range ( 10 ) :
if i == 3 :
break
print ( i)
else :
print ( '我执行了' )
for循环的嵌套
for i in range ( 2 ) :
for j in range ( 2 ) :
print ( i, j)
0 0
0 1
1 0
1 1
2 0
2 1
3 0
3 1