1.if-else条件语句
条件语句,条件满足,执行一部分代码,不满足,执行另一部分代码
四种基本格式:
(1)单if
... ①
if 条件:
条件满足时执行的代码...②
...③
执行顺序:
S1:执行①
S2:判断条件,如果条件满足则执行②,然后跳转S3;否则跳转S3
S3:执行③
(2) 单if-else
...①
if 条件:
条件满足时执行的代码...②
else: 条件不满足时执行的代码...③
...④
执行顺序:
S1:执行①
S2:判断条件,如果条件满足执行②,然后跳转S4;否则跳转S3
S3:执行③,然后跳转S4
S4:执行④
(3) 多if-else
...①
if 条件1:
条件1满足时执行的代码...②
else if 条件2:
条件2满足时执行的代码...③
else: 条件2不满足时执行的代码...④
...⑤
执行顺序:
S1:执行①
S2:判断条件1,如果条件1满足执行②,然后跳转S5;否则跳转S3
S3:判断条件2,如果条件2满足执行③,然后跳转S5;否则跳转S4
S4:执行④,然后跳转S5
S5:执行⑤
(4) if-elif
...①
if 条件1:
条件1满足时执行的代码...②
elif 条件2:
条件2满足时执行的代码...③
else:
条件2不满足时执行的代码...④
...⑤
执行顺序:
S1:执行①
S2:判断条件1,如果条件1满足执行②,然后跳转S5;否则跳转S3
S3:判断条件2,如果条件2满足执行③,然后跳转S5;否则跳转S4
S4:执行④,然后跳转S5
S5:执行⑤
'''
7.猜拳游戏
石头 剪刀 布
0 1 2
数据:
unum 0 1 2
cnum 0 1 2
'''
import random
unum=int(input("石头(0),剪刀(1),布(2) 请选择:"))
cnum=random.randint(0,2) #[0,2)
l=["石头","剪刀","布"]
print("用户:%s"%l[unum])
print("电脑:%s"%l[cnum])
if unum==0 and cnum==1:
print("赢了!")
elif unum==0 and cnum==2:
print("输了!")
elif unum==1 and cnum==2:
print("赢了!")
elif unum==1 and cnum==0:
print("输了!")
elif unum==2 and cnum==0:
print("赢了!")
elif unum==2 and cnum==1:
print("输了!")
else:
print("平局!")
2.while循环语句
当有重复执行的代码存在时,可用循环语句替代
while循环,一般用于循环次数未知,循环结束条件已知的情况
while 条件:
条件满足时循环执行的代码
3.for循环语句
一般用于循环次数已知,结束条件未知的情况下,通常用于遍历
for 变量 in 序列:
循环执行的代码
'''
打印99乘法表
'''
for i in range(1,10):
for j in range(1,i+1):
print("%sX%s=%s"%(i,j,i*j),end="\t")
print("")
'''
21.编写程序用于判断一个数是否是素数。
所谓素数是指除了能被1和它本身之外不能被其他整 除的数
1 97
2~96
'''
num=int(input("请输入数字:"))
isSuShu=True #用布尔类型做标记
for i in range(2,num):
if num%i==0:
isSuShu=False
break
if isSuShu:
print("是素数!")
else:
print("不是素数!")
'''
22.打印出所有的"水仙花数",
所谓"水仙花数"是指一个三位数,
其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。
'''
for i in range(100,1000):
num=i
a=num%10
num//=10
b=num%10
num//=10
c=num
if pow(a,3)+pow(b,3)+pow(c,3)==i: #pow 求幂
print(i)
'''
24.编一程序用以输出所有各位数码阶乘之和等于其自身的三位数。
如:145=1!+4!+5!
5!=5*4*3*2*1
0!=1
'''
for i in range(100,1000):
num=i
a=num%10
num//=10
b=num%10
num//=10
c=num
asum=1
for ai in range(1,a+1):
asum*=i
bsum=1
for bi in range(1,b+1):
bsum*=bi
csum=1
for ci in range(1,c+1):
csum*=ci
if asum+bsum+csum==i:
print(i)
'''
25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前20项之和
'''
sum=0
a=2
b=1
for i in range(20):
sum=sum+a/b
temp=a
a=a+b
b=temp
print(sum)
4.break和continue跳转语句
带break的for
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
break
print(x)
带break的while
i = 0
while i<10:
i = i+1
print('----')
if i==5:
break
print(i)
带continue的for
i = 0
while i<10:
i = i+1
print('----')
if i==5:
continue
print(i)
注意:break/continue只能用在循环中,除此以外不能单独使用
break/continue在嵌套循环中,只对近的一层循环起作用