1. 流程控制语句
Python 代码在执行的时候是按照自上向下顺序执行的。通过流程控制语句我们可以改变代码的执行顺序,也可以让指定的程序重复执行。
分为两大类:
条件判断语句
循环语句
2. 条件判断语句
if
: 如果条件表达式结果为 True,则执行,如果结果为 False,则不执行if 条件表达式 : 语句 if 条件表达式 : 代码块:保存着一组代码,要么都执行,要么都不执行,注意代码的缩进 # ==================== age = 20 if age >= 18 : print("哎吆,成年了") >>>结果: 哎吆,成年了 # ==================== if age >= 18 : print("哎吆,成年了,这是代码块中的") print("aiyao,is very good!!!") >>>结果: 哎吆,成年了,这是代码块中的 aiyao,is very good!!! # ==================== # 可以使用逻辑运算符来连接多个条件 if age >= 18 and age < 30 : print("成年了,但是还是个娃娃") >>>结果: 成年了,但是还是个娃娃 # if 18 <= age < 30 : print("成年了,但是还是个娃娃") >>>结果: 成年了,但是还是个娃娃
if-else
if 条件表达式 : 代码块1 else : 代码块2
如果条件表达式为True,则执行 代码块1,如果为False,则执行 代码块2
age = input('请输入年龄:') age = int(age) if age >= 18: print('你已经成年了') else: print('你还未成年')
if-elif-else
if 条件表达式1 : 代码块1 elif 条件表达式 : 代码块2 else : 代码块3 # ============= age = input('请输入年龄:') age = int(age) if age >= 18 and age <20: print('你已经成年了') elif age >=20 and age <= 30 : print('开始就业了...') elif age > 30 : print('哎...') else: print('你还未成年')
练习
# 判断奇数还是偶数 num = int(input('请输入一个整数...')) if num % 2 == 0 : print(f"{num}是一个偶数") else : print(f'{num}是一个奇数') # 判断是否未闰年 year = int(input('请输入年份:')) # 这个可以看看运算符的优先级 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 : print('是闰年') else : print('是平年')
3. input 函数
input() 函数调用之后,程序立即暂停,等待用户输入,用户输入完成之后点击回车程序才继续向下执行。用户输入完成之后,其输入的内容会以返回值的形式返回。input() 的返回值是一个字符串。input()也可以暂时阻止程序运行。
print("等待用户输入...")
content = input();
print(content)
content = input("等待用户输入...")
print(content)
>>>结果:
等待用户输入...
一个测试啊
一个测试啊
等待用户输入...一个测试啊
一个测试啊
4. 循环语句
循环语句可以使指定的代码块重复执行指定的次数
while
while 条件表达式 : 代码块 while 条件表达式 : 代码块 else : 代码块
先判断条件表达式结果的布尔值,如果为True执行,如果为False则不执行,但是会执行 else 中的代码
num = 1 while num <= 10 : print('一个男人') num += 1 else : print('执行完了') # 求100以内所有奇数的和 num = 0 result = 0 while num < 100 : if num % 2 != 0 : result += num num += 1 else : print(f'result 的值是:{result}') >>>结果: result 的值是:2500 # 优化之后 num = 1 result = 0 while num < 100: result += num num += 2 print(f'result 的值是:{result}') >>>结果: result 的值是:2500 # 求100以内7的倍数之和 num = 7 result = 0 while num < 100: result += num num += 7 print(f'result的值是:{result}') >>>结果: result的值是:735 # 水仙花数是指一个 n 位数(n >=3 ),它的每个位上的数字的 n 次幂之和于它本身(例如 :1**3+5**3+ 3**3 = 153。 # 求1000以内所有的水仙花数 num = 100 while num < 1000 : # 求百位数 hundreds_place = num // 100 # 求十位数 # tens_digit = num // 10 % 10 # 下面的是先求出后面的两位数,再整除10 tens_digit = (num - hundreds_place * 100) // 10 # 求个位数 units_digit = num % 10 # print(num, hundreds_place, tens_digit, units_digit) sum_num = hundreds_place ** 3 + tens_digit ** 3 + units_digit ** 3 if sum_num == num: print('是水仙花数的是:',num) num += 1 >>>结果: 是水仙花数的是: 153 是水仙花数的是: 370 是水仙花数的是: 371 是水仙花数的是: 407 # 获取用户输入的任意数,判断其是否是质数 质数是只能被1和它自身整除的数,1不是质数也不是合数 num = int(input("请输入大于1的整数:")) init_num= 2 flag = False while init_num < num : if num % init_num == 0: flag = True init_num += 1 if flag : print(f'{num}是合数') else: print(f'{num}是质数')
循环嵌套
# print('*',end='') 中 end = ''表示打印的时候不换行 num = 0 while num < 10 : i = 0 while i < 10 : print('*',end='') i += 1 print() num += 1 >>>结果: ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** # print('*',end='') 中 end = ''表示打印的时候不换行 num = 0 while num < 10 : i = 0 while i < num + 1: print('*',end='') i += 1 print() num += 1 >>>结果: * ** *** **** ***** ****** ******* ******** ********* ********** # print('*',end='') 中 end = ''表示打印的时候不换行 num = 0 while num < 10 : i = 10 while i > num : print('*',end='') i -= 1 print() num += 1 >>>结果: ********** ********* ******** ******* ****** ***** **** *** ** * # 打印乘法口诀表,为了方便显示,这里只打印到6的乘法口诀 line_num = 1 while line_num <= 6 : column_num = 1 while column_num < line_num + 1: print(f'{line_num} * {column_num} = {line_num * column_num} \t',end='' ) column_num += 1 print() line_num += 1 >>>结果: 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 # 求100以内的所有质数 num = 2 while num <= 100 : i = 2 flag = True while i < num: if num % i == 0 : flag = False i += 1 if flag : print(num) num += 1 >>>结果: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 # 优化 # 求100以内的所有质数 num = 2 while num < 100000 : i = 2 flag = True while i < num ** 0.5: if num % i == 0 : flag = False break i += 1 if flag : print(num) num += 1
break
跟continue
break
:用来立即退出(终止)循环语句,包括else
continue
:跳过当次循环,继续下次循环它们都是对离它们最近的循环起作用
pass
是占位,表示通过的意思,没有实际意义,只是用来替代没有写完的条件判断跟循环语句
for
循环语法:
for [变量名] in [被遍历的序列]