基本运算符及流程控制
运算符
#基本运算符
# 1.算术运算符
# +,-,*,/,//(取整),%(取余),**(幂指数)
# 2.链式赋值
# a=b=c=d=10
# print(f'a:{a},b:{b},c:{c},d:{d}')
# 3.交叉赋值
# x=10
# y=20
# temp=x
# x=y
# y=temp # 交叉方法一
# print(f'x:{x},y:{y}')
# x,y=y,x # 交叉方法二
# print(f'x:{x},y:{y}')
#
# # 3.解压缩
# name_list=['wq','qw','wwq']
# x=name_list[0]
# y=name_list[1] # 解压缩方式一
# z=name_list[2]
# print(f'x:{x},y:{y},z:{z}')
# x,y,z=name_list # 解压缩方式二
# print(f'x:{x},y:{y},z:{z}')
# name_list = ['nick', 'egon', 'jason', 'tank']
# x, y, z, a = name_list
# x, _, z, _ = name_list
# print(x,z)
# name_list = ['nick', 'egon', 'jason', 'tank', 'kevin', 'jerry']
# x, y, _, _, _, z = name_list
# x, y, *_, z = name_list
# print(x,y,z)
# name= 'wq'
# height=180.67
# weight=135
# hobby_list=('read','write')
# print(f'{name} {height} {weight} {hobby_list}') # 格式化输出一(f-string格式)
# print('{} {} {} {}'.format(name,weight,height,hobby_list)) #格式化输出二(format格式)
# print("%s,%s,%s,%s"%(name,weight,height,hobby_list)) #格式化输出三(%占位符格式)
流程控制
定义:python程序执行时,一定按照某中规律执行,宏观上,依上而下,顺序执行
if分支结构
'''
if 条件:
通缩进的代码
'''
1.所有分支都可以根据需求决定是否有else结构,else结构就是所有条件不满足才去执行的分支
2.elif可以根据需求出现多次(代码层次方面考虑条件的先后顺序)
# if的嵌套
# 内部条件判断与否决定于外层条件
# 在任何结构(缩进下,需要条件判断就可以出现if分支结构
#具体案例如下:(飞行员选拔为例)
height = int(input("请输入你的身高: "))
if height <= 180 and height >= 175 :
print('你的身高合格!')
grade = int(input('笔试成绩: '))
if grade >= 90 :
print('笔试合格!')
score = int(input('体能成绩: '))
if score >= 90:
print('恭喜入选!')
else:
print("你落选了!")
else:
print('你落选了!')
else:
print('你落选了!')
请输入你的身高: 177
你的身高合格!
笔试成绩: 90
笔试合格!
体能成绩: 80
你落选了!
while循环
while 条件:
循环体
- 当条件满足时,会执行循环体,然后再去判断条件成功与否
- 如果还满足,重复1,2的过程
- 如果不满足,结束循环体
注:如果要结束循环,一定要让条件在某种情况下不满足
重点
- break:结束所属循环
- continue:结束所属循环的本次循环,进入下一次循环
难点:循环嵌套
#具体案例1
count = int(input('人数: '))
current_count=0
while current_count<count : #录入的人数不超过输入人数就应该正常循环
grade = int(input('grade: '))
if grade > 90:
print('优秀')
if input('体能测试')=='通过':
print('进入国家队')
elif grade>60:
print('合格')
else:
print('开除')
#录入结束后,代表已经录入一个,当前被录入的人数要+1
current_count+=1
人数: 2
grade: 90
合格
grade: 95
优秀
体能测试通过
进入国家队
#具体案例2(猜数字)
question=input('出题: ')
people=0
while people<5:
answer=input('回答:')
if answer<question:
print('猜小了!')
elif answer>question:
print('猜大了!')
else:
print("猜对了!")
break #即一旦猜对数字就会立刻终止循环
people+=1
#案例(需求:打印1~100之间所有7的倍数及包含7的数字)
#n%7==0,n%10==7,n//10==7
# n=1
# while n<101:
# if n % 7== 0 or n % 10 == 7 or n // 10 == 7:
# print(n,end=' ')
# n=n+1
#取对立面
# n=1
# while n<101:
# if n % 7 == 0 or n % 10 == 7 or n // 10 == 7:
# n=n+1
# continue # continue如果满足,跳出本次循环,进入下一次循环
# print(n,end=' ')
# n+=1
了解:
-
死循环:不能主动结束的循环,想要结束只能通过break
-
0,"",[],{},None可以被while 及 if这种需要条件的关键词转换为False,其他都是True
-
while...else...:else分支会在while循环正常结束(没有被break结束)时执行
for循环
# for循环(用来完成特定的循环需求)
#for 循环得到的结果 in 被循环的容器:
#1.第一次循环,循环得到的结果,就是被循环的容器中的第一个值
#2.再次循环,循环得到的结果会被重新赋值为被循环的容器中第二个值,以此类推
#3.当被循环的容器中的值 被 循环得到的结果全部赋值一遍后,循环自动结束
#range()函数:帮助创建一个容器(左包右舍)
#for a in range(1,5) a=1,2,3,4
#for a in range(1,10,2),其中2为步长, a=1,3,5,7,9
#1.for循环一般不考虑死循环(有无限个数的容器)
#2.for循环break结束for的所有循环
#3.for循环continue结束for的本次循环,进入for的下一次循环
#案例:九九乘法表
for a in range(1,10):
for b in range(1,a+1):
res ='%s*%s=%s'%(b ,a,a*b)
print(res,end=' ')
print()