python条件语句,循环语句:if-elif-else、for in、while。
python基础系列 (四)
文章目录
介绍
二、循环语句
三、其他
range对象
可以用于while,for循环中的句子:
循环代码优化:
zip()并行迭代
四、案例
python语句:if-elif-else、for in、while。
一、条件语句
1、if 条件: [条件为True,执行语句,False不执行。]
语句
2、if 条件1: [判断哪个条件为T,T执行语句,都不为T,执行else语句]
语句1
elif 条件2:
语句2
else:
语句3
三元条件运算符:
条件为真的值 if(条件表达式)else 条件为假的值
1、if 条件: [条件为True,执行语句,False不执行。]
<语句>
2、if 条件1: [判断哪个条件为T,T执行语句,都不为T,执行else语句]
<语句1>
elif 条件2:
< 语句2>
else:
<语句3>
三元条件运算符:
条件为真的值 if(条件表达式)else 条件为假的值
Python 3.10 增加了 match...case 的条件判断,match 语句用于匹配 value 的不同情况,每个 case 语句表示一种可能的匹配情况,_ 通配符表示其他情况。
match value: case: <语句1> case : <语句2> case : <语句3> case _: <语句4>
while 条件/True:
<语句>【while下的语句必须有改变条件的语句,可以结束循环的条件,不然会成为死循环】
循环语句/循环遍历:
for 变量 in 可迭代对象:【可迭代对象:字符串,列表、元组、字典、迭代器对象、生成器对象】
<语句>
range(start,end,[step])是一个迭代器对象,用来生成指定范围的数字序列。
break语句用来结束整个循环,当有嵌套循环时,break只能跳出最近的循环层。
continue语句 用来结束本次循环,继续下一次循环。
else语句:如果for,while语句没有被break中断正常结束循环,可以执行else下的语句,否则不执行。
1.尽量减少循环内部不必要的计算
2.嵌套循环中,尽量减少内层循环的计算,尽量忘外提
3.尽量使用局部变量,查询快
4. 连接多个字符尽量使用 join(),不用 ‘+’ 。
5.列表进行元素插入和删除,最好在尾部操作,在中间会涉及到大量的迁移操作。
可以通过zip()函数对多个序列进行并行迭代,在长短不一的序列中在"最短的序列" 用完时,会停止。
#条件分支语句:(动物年龄)
age = int(input("请输入年龄\n"))
if age <= 0:
print('重新输入')
elif age == 1:
print('刚成年')
elif age >= 2 :
print('好好爱它')
else:
print('输入错误')
#三元条件运算
num = int(input('请输入一个整数'))
print('数字小于等于10'if(num)<=10 else '数字大于10')
#match...case
week = input('请输入数字,今天星期几: ')
match week:
case '1':
print('今天是周一')
case '2':
print('今天是周二')
case '3':
print('今天是周三')
case '4':
print('今天是周四')
case '5':
print('今天是周五')
case '6':
print('今天是周六')
case '7':
print('今天是周日')
case _:
print('输入错误')
#简单的计算器
def add(a,b):
return a+b
def subtract(a,b):
return a-b
def multiply(a,b):
return a*b
def divide(a,b):
if b==0:
print('除数不能为0')
else:
return a/b
while True:
select = int(input("选择一个运算:\n1. 加法\n 2. 减法\n 3. 乘法\n4. 除法\n5. 退出"))
if (select in [1,2,3,4]):
a = int(input("请输入数字a"))
b = int(input('请输入数字b'))
if select == 1:
print(add(a,b))
elif select == 2:
print(subtract(a, b))
elif select == 3:
print(multiply(a, b))
elif select == 4:
print(divide(a, b))
elif select == 5:
break
else:
print('选择不对请重新输入')
#输出制定范围的质数(大于1的自然数,只能被他自身和1整除)
min_num = int(input('请输入最小的范围'))
max_num = int(input('请输入最大的范围'))
su_num= []
for i in range(min_num,max_num+1):
if i>1:
is_prime =True
for num in range(2,i):
if (i % num) == 0:
is_prime=False
break
if is_prime:
su_num.append(i)
print(f'{min_num}--{max_num}范围的素数有:{su_num}')
#遍历字符串
for x in list('abcdefg'):
print(x,end='\t')
#99乘法表
for i in range(1,10):
for j in range(1,i+1): #i,9是反着输出
print(f'{j}*{i}={i*j}\t',end='')
print()
#循环后的else语句,正常结束循环执行,被break终端则不执行
salarySum=0
salarys = []
for i in range(4):
s = input('请输入4名员工的薪资(按Q or q中途结束)')
if s.upper() == 'Q':
print('录入结束,退出')
break
if float(s)<0:
continue
salarys.append(float(s))
salarySum += float(s)
else:
print('您已经输入4个员工薪资')
print('录入薪资:',salarys)
print('平均薪资{0}'.format(salarySum/4))
#zip()并行迭代使用
name = ('张三','李斯','王五','小刘')
age = (22,23,24,25)
sex = ('男','男','女')
for name,age,sex in zip(name,age,sex):
print(("{0}-{1}-{2}").format(name,age,sex))
#张三-22-男
#李斯-23-男
#王五-24-女