流程控制
流程控制
- 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('浪')
# 成绩判断: grade = int(input('输入成绩:')) if grade >= 90: print('优秀') elif grade >= 80: # 当执行此行代码时,说明成绩不满足90分 print('良') elif grade >= 60: print('合格') else: print('不合格,补考!')
# 用户登录: use_name = 'waller' pass_word = '123' # 定义用户名和密码 un = input('用户名:') pw = input('密码:') if un == use_name and pw == pass_word: print("welcome %s" %(un)) else: print("用户名或密码错误")
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='|')