由于顺序结构相对简单,本文不做讲解,将重点突出分支结构和循环结构
分支结构
顺序结构:代码从上往下按顺序执行,每条语句只执行一次 分支结构:执行代码的时候根据条件选择执行代码 循环结构:可以让代码重复执行(for,while)
1.if单分支结构
语法: if 条件语句: 代码块
# 案例:
num=828
if num//100==num%10:
print(f'{num}是回文数')
year =2000
if year%4==0and year%100!=0 or year%400==0:
print(f'{year}是闰年')
2.if双分支结构
语法: if 条件语句: 代码块1(满足条件执行) else: 代码块2(不满足条件执行)
# 案例:
num1=12
if num1 % 2==0:
print('偶数')
else:
print('奇数')
x=[]
if type(x)==int or type(x)==float:
print('数字类型')
else:
print('非数字类型')
3.if多分支结构
方法1:
if 条件1: 代码块1 if 条件2: 代码块2 if 条件3: 代码块3
方法2:如果多个条件之间,有一个条件成立,其他条件绝对不可能成立时,适合
if 条件1: 代码块1 elif 条件2: 代码块2 elif 条件3: 代码块3 else: 代码块4
score = 95
if score >100:
print('天赋异禀')
elif 90<=score: print elif score>=80:
print('良好')
elif score>=70:
print('中等')
elif score>=60:
print('及格')
else:
print('弱爆了')
4. 分支嵌套
案例:根据num的属性值打印偶数、奇数和 4的倍数
num=24
if num%2==0:
print('偶数')
if num%4==0:
print('4的倍数')
else:
print('奇数')
循环结构
1.for循环--让代码重复执行
1)语法: for 变量 in 序列: 循环体
2)说明: for 关键字;固定写法 变量 变量名(已经定义过的变量或者没有定义的也都可以) in 关键字;固定写法 序列 容器型数据类型的数据,例如:字符串、列表、字典、元组、集合、迭代器、生成 器、range : 固定写法 循环体 结构上,就是和for保持一个缩进的一条或者多条语句(至少一条),逻辑上,循环体就是需要重复自行的代码
3)循环原理 让变量去序列中去取值,一个一个的取,每取一个就执行一次循环体。 如果要控制for循环的次数,只需要控制序列中元素的个数 '''
range函数 -创建等差数列
''' 1)range(N) -创建[0,N)的等差数列,差是1 例如:range(5)- 0,1,2,3,4 range(10)- 0,1,2,3,4,5,6,7,8,9,10
2)range(M,N) -创建[M,N)的等差数列,差是1 例如:range(5,11)- 5,6,7,8,9,10
3)range(M,N,step) -创建[M,N)的等差数列,差是step 例如:
# 案例:使用range函数创建以下等差数列
# 11 12 13 14 15
# 11 13 15 17 19
# -2 -1 0 1 2
# 0 5 10 15 20
# 10 8 6 4 2
for i in range(11, 16):
print(i,end=' ')
print()
for i in range(11, 20, 2):
print(i,end=' ')
print()
for i in range(-2, 3):
print(i,end=' ')
print()
for i in range(0, 21, 5):
print(i,end=' ')
print()
for i in range(10,0,-2):
print(i,end=' ')
累计求和
方法:
第一步:定义一个变量来保存最后的结果,变量默认值为0 第二步:使用循环获取需要求和的每一个数据 第三步:每取到一个数据,就往变量中价上这个数据
# 案例1:求1+2+3+......+100
sum=0
for i in range(101):
sum+=i
print(sum)
# 案例2:求100~200中所有能被3整除但是不能被5整除的和
sum = 0
for i in range(100,201):
if i %3==0and i%5:
sum+=i
print(sum)
# 案例3:求分数列表中所有学生的总分
scores = [90, 45, 78, 92, 89, 74, 50, 91, 99, 80, 87, 63, 82]
sum = 0
for i in scores:
sum+=i
print(sum)
num = 0
for i in scores:
if i<60:
num+=1
print(num)
# 练习:统计100以内能被3整除的数的个数
num=0
for i in range(0,100,3):
num+=1
print(num)
2.while循环
1.while循环
1)语法 while 条件语句: 循环体
2)说明 while 关键字;固定写法 条件语句 一般是判断语句(实际上可以是任意有结果的表达式) : 固定写法 循环体 结构上,就是和while保持一个缩进的一条或者多条语句(至少一条),逻辑上,循环体就是需要重复自行的代码
3)循环原理 不断判断条件语句是否成立,成立就执行循环体,不成立就结束循环体
案例:写程序提示用户输入正确密码,直到输入正确为止
pw='1234'
value = None
while value!=pw:
value=input('请重新输入密码:')
2.循环关键字
continue和break: 结束循环(只能在循环体中使用)
1)continue 结束一次循环(执行的时候遇到continue, 这次循环结束直接进入到下次循环)
for i in range(11):
if i %3==0:
continue
print(i)
2)break 结束整个循环(执行循环体的时候,遇到break直接结束整个循环,当次循环没有执行的不再执行,也不进入下一个循环)
for i in range(10,20):
print(i)
if i %4==0:
break
小游戏:猜数字
from random import randint
num=randint(0,101)
s=0
num1=None
while num1!=num:
s += 1
if s > 5:
print('次数用完了哟,下回努力,正确数字是:',num)
break
num1 = int(input('请输入你选择的数字:'))
if num1>num:
print('大了,小点儿')
continue
if num1<num:
print('小了,大点儿')
continue
if s<=5:
print(f'牛逼,就是{num}')