python流程控制
python的流程控制跟大多数的语言一样,包括if条件语句、for循环语句、while循环语句;跳出循环continue,break等
写在前面
python中的运算
1)算数运算
以下假设变量:a=10,b=20:
2)比较运算
3)赋值运算
4)位运算
以下假设变量:a=60,b=13,对应二进制为a=0011 1100;b=0000 1101:
5)逻辑运算
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
6)成员运算,身份运算
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
身份运算符用于比较两个对象的存储单元
补充运算符的优先级
我们一般知道大概就行,在不确定优先级的情况下可以用()来规定优先级,括号里的优先级大于外面的!
if条件判断
单支 if 条件: 执行语句 多支 if 条件: # 条件成立 执行下方缩进里的执行语句 执行语句 elif 条件: # elif非必须的,当多个条件时可以使用多个elif,执行跟if一样 执行语句 else: # 上面条件都不成立,执行执行语句
示例:
基本条件判断if:
# 如果:年龄>30岁,那么:叫阿姨 age_of_girl = 31 if age_of_girl > 30:print('阿姨好')
if……else……
# 如果:年龄>30岁,那么:叫阿姨 # 否则:叫小姐姐 age_of_girl = 31 if age_of_girl > 30:print('阿姨好') else:print('小姐姐')
if……elif……else
# 如果:年龄>30岁,那么:叫阿姨 # 如果:18<年龄<=30, 叫小姐姐 # 否则:叫小屁孩 age_of_girl = 20 if age_of_girl > 30:print('阿姨好') elif 18 < age_of_girl <= 30:print('小姐姐') else:print('小屁孩')
条件组合
# 如果18<年龄<25并且身高>165并且体重<100并且漂亮就撩 # 否则:阿姨好 age = 22 height = 170 weight = 99 is_pretty = True if age >= 18 and age <= 25 and height > 165 and weight < 100 and is_pretty:print('撩一下') else:print('阿姨好')
if嵌套
# 在上面基础上 # 如果撩成功了 在一起 # 否则 开个玩笑 age = 22 height = 170 weight = 99 is_pretty = True success = True if age >= 18 and age <= 25 and height > 165 and weight < 100 and is_pretty:if success:print('在一起')else:print('开玩笑的') else:print('阿姨好')
简单示例:
用户登录
1 userinfo = { # 用字典存储用户信息,以后会经常用到 2 'name': 'zhow', 3 'pwd': '123456' 4 } 5 name = input('请输入用户名:').strip() # input让用户输入 6 pwd = input('请输入密码:').strip() 7 if name == userinfo['name'] and pwd == userinfo['pwd']: 8 print('登录成功') 9 else: 10 print('用户名或密码错误')
for循环语句
python中的for循环可循环一切可迭代的对象,包括字符串,列表,字典等,以及后面介绍迭代器和可迭代对象等。
基本格式
for i in range(10): # range(10)生成一个列表从0开始print(i)
其他示例:
s = 'I love python' for i in s:print(i)l = [1, 2, 3, 4, 5, 6, 7] for i in l:print(i)d = {'name': 'zhow', 'age': 18} for k, v in d.items():print(k, v)
while循环语句
基本格式
while 条件: # 循环体# 如果条件为真,那么循环体继续执行,执行完毕后再次循环,重新判断条件。。。# 如果条件为假,那么循环体不执行,循环终止
基本使用
# 打印数字,奇数,偶数 # i = 0 # while i < 10: # print('loop',i) # i += 1# while i < 10: # if i % 2 == 0: # 对2取余来判断是否为偶数 # print('loop', i) # i += 1# while i < 10: # if i % 2 == 1: # print('loop', i) # 对2取余来判断是否为奇数 # i += 1
死循环
while条件一直成立,并且循环体内没有跳出语句。
import time i = 0 while True:print(i)i = i + 1time.sleep(1) # 让程序睡眠一秒,就是暂停一秒
break使用
break跳出循环,结束循环
while True:name = input('请输入您的名字:')pwd = input('请输入您的密码:')if name == 'user' and pwd == '123':print('登录成功')break # 跳出循环else:print('登录失败')
continue使用
continue结束本次循环进入下次循环
n = 1 while n <= 5:if n == 4:n += 1continueprint(n)n += 1
while+tag====》》》True和False
tag = True while tag:print('第一层')while tag:print('第二层')while tag:cmd = input('第三层>>:')if cmd == 'q':tag = Falsebreak
练习示例
1)打印金字塔
1 # 方法一 2 n = int(input('您要打印的层数:').strip()) # 默认输入是字符串需要转换成整数 3 n = n * 2 4 i = 1 5 while i <= n: 6 print((i*'x').center(n, ' ')) 7 i += 2 8 9 # 方法二 10 n = int(input('您要打印的层数:').strip()) # 默认输入是字符串需要转换成整数 11 n = n * 2 12 for i in range(n): 13 if i % 2 == 1: 14 print((i*'x').center(n, ' '))
2)打印乘法口诀
i = 1 while i < 10:j = 1while j <= i:print(str(i) + 'x' + str(j) + '=' + str(i*j), end='\t')j += 1print()i += 1for i in range(10):for j in range(1, i+1):print(str(i) + 'x' + str(j) + '=' + str(i * j), end='\t')print()# end = '\t'代表打印了不换行 输出一个tab 默认是end = '\n'
乘法口诀装13写法
print('\n'.join([' '.join(['%s*%s=%-2s' % (j, i, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))
综合示例
猜数字
给定一个数字,你猜小了提示你小了,猜大了提示大了,刚好猜中提示中了并退出,总共可以猜3次,超出次数提示超过次数
1 num=56 2 for i in range(3): 3 guess_num = int(input('输入你猜的数字:')) 4 if guess_num == num: 5 print('恭喜你猜对了') 6 break 7 elif guess_num > num: 8 print('你猜的数字大了') 9 else: 10 print('你猜的数字小了') 11 else: 12 print('你猜的次数过多,game over')
1 num=56 2 count = 3 3 while True: 4 if count == 0: 5 print('你猜的次数过多,stupid') 6 break 7 guess_num = int(input('输入你猜的数字:')) 8 if guess_num == num: 9 print('恭喜你猜对了') 10 break 11 elif guess_num > num: 12 print('你猜的数字大了') 13 else: 14 print('你猜的数字小了') 15 count -= 1