python——流程控制语句

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在嵌套循环中,只对近的一层循环起作用

猜你喜欢

转载自blog.csdn.net/y805805/article/details/84295481