流程控制
1.顺序流程
代码自上而下的执行。
2.选择流程/分支流程
根据在某一步的判断有选择的执行相应的逻辑。
2.1单分支
if语句
if 条件表达式:
代码
代码
...
2.2双分支
if-else语句
if 条件表达式:
代码
代码
...
else:
代码
代码
...
2.3多分支
if-elif-else语句
if 条件表达式:
代码
代码
...
elif 条件表达式:
代码
代码
...
elif 条件表达式:
代码
代码
...
elif 条件表达式:
代码
代码
...
....................
else:
代码
代码
...
代码会了多分支另两个就会了所以不举例了,内容瞎写的没有逻辑:
a=int(input())
if a>90:
print("优秀")
pass #空语句
elif a>80:
print("a==b")
pass
else:
print("a<b")
pass
pass是空语句,试了一下不写pass也可以
else是选配,根据实际情况设计
和电脑玩剪刀石头布小程序:
import random #引入生成随机数的库
#0:石头 1:剪刀 2:布
person=int(input('请玩家输入:'))
comp=random.randint(0,2) #电脑随机生成一个位于0-2的随机整数
if person==0 and comp==1 or person==1 and comp==2 or person==2 and comp==0:
print('你赢了!')
pass
elif person==0 and comp==0 or person==1 and comp==1 or person==2 and comp==2:
print('平局!')
pass
else:
print('你输了!')
pass
print(comp)
嵌套循环:
xuefen=int(input('请输入学分:'))
grade=int(input('请输入成绩:'))
if xuefen>10:
if grade>=80:
print('恭喜考的很好')
pass
else:
print('很遗憾,成绩不好')
pass
pass
else:
print('很遗憾学分不够')
pass
3.循环流程
在满足一定的条件时,一直重复的执行某段代码逻辑。循环可以将相似/相同的代码操作变得更加简洁,使得代码可以重复利用。
3.1 while循环
while 条件表达式:
代码
代码
...
while循环的计数量一般都有初始值
计数值自增/自减,否则会导致死循环
循环次数不确定
index=1
while index<=100:
print(index)
index+=1 #不可以用index++,会报错
打印九九乘法表:
index=1
j=1
while index<=9:
j=1
while j<=index:
print('{}*{}={}'.format(index,j,index*j),end=" ") #注意这里的end一定要加,不然就会默认打完直接换行,就不能三角形显示了
j+=1
pass
print() #换行用,如果print('\n')就直接换两行了
index+=1
pass
或是:
index=1
j=1
while index<=9:
j=1
while j<=index:
print('%d*%d=%d'%(index,j,index*j),end=" ")
j+=1
pass
print()
index+=1
pass
如果不加end的话就会:
打印倒三角:
while index<=9:
j=1
while j<=10-index:
print('%d*%d=%d'%(index,j,index*j),end=" ")
j+=1
pass
print()
index+=1
pass
打印三角:
row=10
while row>=1:
j=1
while j<=row:
print('*',end=" ")
j+=1
pass
row-=1
print()
pass
打印等腰三角形:
row=1
while row<=5: #5是三角形的行数
ta=1
while ta<=5-row:
ta+=1
print(' ',end=" ")
pass
while ta<5-row+2*row:
ta+=1
print('*',end=" ")
pass
print()
row+=1
pass
2.2 for循环
for ... in 集合对象:
代码
代码
...
集合对象可以是列表、数组、字符串等,for循环可以用于遍历序列。
tags='我是一个好人'
for item in tags:
print(item)
pass
for item in 'I love you':
print(item)
range函数可以生成一个数据集合列表
range(起始值,结束值,步长),步长不能为0
range(起始值,结束值) 默认步长是1
for i in range(1,100,2):
print(i,end=' ')
pass
for i in range(1,100,2):
print(i,end=' ')
pass
用for循环嵌套打印九九乘法表:
for i in range(1,10):
for j in range(1,10):
if i<j:
print('%2d*%2d=%2d'%(i,j,i*j),end=' ')
pass
else:
continue
pass
pass
print()
pass
3. break和continue
break和continue只能用在循环中。
3.1 break
break表示中断、退出循环。
sum=0
for i in range(1,51):
if sum>100:
print('循环执行到%d退出'%i)
break
pass
sum+=i
pass
print(sum)
3.2 continue
continue表示退出本次循环,继续下次循环。
sumj=0
sumo=0
sum=0
for i in range(1,51):
sum+=i
if i%2==0:
sumo+=i
continue
pass
sumj+=i
pass
print('奇数和是%d'%sumj)
print('偶数和是%d'%sumo)
print('总和是%d'%sum)
4.短路运算
4.1 for-else结构
for i in range(1,11):
print(i,end=' ')
if i>=5:
break #有break的话,for循环结束后的else不执行
pass
pass
else:
print('循环执行结束')
for i in range(1,11):
print(i,end=' ')
pass
else:
print('循环执行结束')
即如果是因为break结束的循环就不会执行else,如果是正常执行的就执行else,可以用于查找信息失败的时候给出相应提示的情况
username='haha'
pwd='xixi'
for i in range(3): #循环三次
u=input('请输入用户名')
p=input('请输入密码')
if u==username and p==pwd:
print('登陆成功')
break
pass
pass
else:
print('用户名密码错误三次,已锁!')
4.2 while-else语句
和for-else一样,如果因为break结束循环,则不执行else后面的语句,如果是正常结束,则执行。
username='haha'
pwd='xixi'
i=1
while i<=3: #循环三次
i+=1
u=input('请输入用户名')
p=input('请输入密码')
if u==username and p==pwd:
print('登陆成功')
break
pass
pass
else:
print('用户名密码错误三次,已锁!')
5. 实践
5.1 猜年龄小游戏
sign='Y'
age=16
flag=1
while sign=='Y' or sign=='y':
index=1
while index<=3:
guage=int(input('请输入猜测的年龄:'))
if guage==age:
print('恭喜猜对了!')
flag=0
break
pass
else:
print('很遗憾,请重新输入')
pass
index+=1
pass
if flag==0:
break
pass
else:
sign=input('请输入是否继续:')
pass
pass
5.2 计算BMI指数
tall=1.75
weigh=80.5
t=tall*tall
B=weigh/t
if B<18.5:
print('您的BMI指数是%d,过轻'%B)
pass
elif B>=18.5 and B<25:
print('您的BMI指数是%d,属于正常范围'%B)
pass
elif B>=25 and B<28:
print('您的BMI指数是%d,过重'%B)
pass
elif B>=28 and B<32:
print('您的BMI指数是%d,肥胖'%B)
pass
else:
print('您的BMI指数是%d,严重肥胖'%B)
pass
标签:03,python,代码,range,笔记,else,while,pass,print
From: https://blog.csdn.net/weixin_46081986/article/details/138582204