流程控制
分类:
IT文章
•
2022-05-03 11:49:31
流程控制
- if...else判断:
- while 循环
- for 循环
ps:缩进表示代码块的归属,同一级别的代码快由上至下一次执行。
if 判断:
- 作用:让计算机像人一样具有判断事物对错的逻辑,然后执行相应的步骤
- 语法:
1. if 条件 : #条件为True执行代码块
代码块1
代码块2
...... # 代码1与代码2为为统一缩进级别的代码块,同一级别的代码快由上至下一次执行。
2. if 条件 :
代码块1
代码块2
......
else:# 当if条件为False时 执行
代码3
代码4
......
3. if 条件 :
代码块1
代码块2
......
elif 条件: # 当if条件为False时 执行
代码快3
代码快4
......
else: # 当if条件和elif条件都为False时 执行
代码5
代码6
......
4. if 嵌套 # if语句里可以嵌套if语句,进行进一步的逻辑判断
例:
#判断 如果是凉果汁饮料,就很好喝
drink = 'beverages'
kind = 'ade'
is_icy = True
if drink == 'beverages' and kind == 'ade' and is_icy:
print('爽,好喝')
>>> 爽,好喝
#判断 如果是凉果汁饮料,就很好喝,否则就不喝
drink = 'beverages'
kind = 'ade'
is_icy = False
if drink == 'beverages' and kind == 'ade' and is_icy:
print('爽,好喝')
else:
print('不喝!')
>>>不喝!
#判断 如果是凉果汁饮料,就很好喝,如果是5元以下的就喝,否则就不喝
drink = 'beverages'
kind = 'ade'
price = 5
is_icy = True
if drink == 'beverages' and price > 10 and kind == 'ade' and is_icy:
print('爽,好喝')
elif drink == 'beverages' and price <= 5 and kind == 'ade' and is_icy:
print('喝')
else:
print('不喝!')
>>> 喝
练习:
#周一到周五上班,周六日出去浪
#方法一:
today = input('today:') # 获得用户输入
if today == 'monday'or
today == 'Tuesday'or
today == 'Wednesday'or
today == 'Thursday'or
today == 'Friday':
print('苦逼上班')
elif today == 'Saturday' or
today == 'Sunday':
print('出去浪')
#方法二:
today = input('today:')
if today != 'Saturday' or
today != 'Sunday':
print('苦逼上班‘)
else:
print('出去浪')
#方法三:
job = ['Monday','Tuesday','Wednesday','Thursday','Friday']
play = ['Saturday','Sunday']
today = input('today:')
if today in job: #判断输入的是否是列表job里的元素
print('上班')
elif today in play:
print('浪')
if 判断:周一到周五上班,周六日出去浪
# 成绩判断:
grade = int(input('输入成绩:'))
if grade >= 90:
print('优秀')
elif grade >= 80: # 当执行此行代码时,说明成绩不满足90分
print('良')
elif grade >= 60:
print('合格')
else:
print('不合格,补考!')
if 判断成绩
# 用户登录:
use_name = 'waller'
pass_word = '123' # 定义用户名和密码
un = input('用户名:')
pw = input('密码:')
if un == use_name and pw == pass_word:
print("welcome %s" %(un))
else:
print("用户名或密码错误")
if 判断用户登录
whlie 循环
1. while 条件 :
代码快1
代码块2
......
2. while + break:
while 条件:
代码块3
代码块4
......
break # 强行终止循环并退出循环。
print()
3. while + continue:
while 条件:
代码块5
代码块6
......
continue # 跳出当此循环,直接进行下一次循环
print()
4. while循环嵌套
while 条件:
代码块
while 条件:
代码块
while 条件:
代码块
......
例:
# while 循环取1-10
count = 1
while count <= 10:
print(count)
count += 1
# 三次机会猜测年龄
age = 50
count = 0
while count < 3: #利用while的条件,当条件不成立时,循环结束,否则执行
guess_age = int(input("年龄:"))
count += 1
if guess_age > age:
print("大了")
elif guess_age < age:
print("小了")
else: # 此处也可以用 elif guess_age == age:
print("对了")
break # 猜对后直接退出循环
# 输出1-10 ,4不打印
#方法一:
count = 1
while count <= 10:
if count == 4:
count += 1
continue
print(count)
count += 1
#方法二:
count = 1
while count <= 10 :
if count != 4:
print(count)
count += 1
练习:
user_name = 'waller'
pass_word = '123'
count = 1
while count <= 3:
u_n = input('your name>>>:')
p_w = input('your pw>>>:')
if u_n == user_name and p_w == pass_word :
print('welcome %s' %u_n)
break
else:
print('用户名或密码错误')
count += 1
else:
print('账号锁定')
用户尝试三次登录,若三次都不对,直接退出程序。
name = 'waller'
world = 123
count = 1
while count <= 3:
un = input('your mane>>>:')
pw = int(input('your world>>>:'))
if un == name and pw == world:
print('welcome %s' %un)
break
elif count == 3:
cmd = input('是否继续 Y/N>>>:')
if cmd == 'Y':
count = 0
else:
break
else:
print('用户名或密码错误')
count += 1
user_name = 'waller'
pass_word = '110'
count = 1
flag = True
while flag:
un = input('用户名:').strip()
pw = input('密码:').strip()
if un == user_name and pw == pass_word:
print('登陆成功')
break
elif count == 3:
Once_again = input('是否继续尝试 y/n>>:').strip().upper()
if Once_again == 'y':
count = 1
break
elif Once_again == 'n':
flag = not flag
else:
print('用户名或密码错误 *%d'%count)
count += 1
用户登录,若三次账号密码错误询问是否继续,继续再给三次机会,否则退出
了解:while...esle...
只有当while的条件正常结束时,才会执行else,break结束的while不会执行else
for 循环
for循环一般用于遍历元组、集合、列表这种数据类型里面的所有元素。(字典只会遍历key)
简单的for循环结构(不同于while循环容易变成无限循环,for循环遍历完或中止便会结束运行)
a = ('ppap','hello,world','phone')
for b in a:
print (b)
for b in len(a):
print(b)
len() # 获取数据类型(容器类型)的个数,字符串是特例 获取的是字符串中字符的个数
for + break
如果想中止于某个元素前,可以在for循环中加入break函数#
a = ['ppap','hello,world','phone','hello','zero']
for b in a:
if b == 'phone':
break
print (b,end=';')
for + continue
如果遍历时想跳过某个元素,用continue函数即可
a = ['ppap','hello,world','phone','hello','zero']
for b in a:
if b == 'phone':
continue
print (b,end=';')
ps: range 顾头不顾尾
range在python2与python3中的区别
python2中
1.range其实就是一个列表
2.xrange其实就是你python3中的range
python3中range是一个老母猪,你需要值的时候我才给你
# 生成数字串(range中最后一个数字不会出现,左边那个数字为起始数)#
for a in range(20, 30):
print(a, end='|')
# 也可以生成递增和递减的等差数列#
for a in range(20, 31, 2):
print(a, end='|')
for a in range(60, 49, -2):
print(a, end='|')
# 也可以等差取出数据里的元素#
a = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ]
for b in range(0, len(a), 2): #range 取的是list的索引
print(a[b], end='|')