1. 程式人生 > >python——流程控制語句

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在巢狀迴圈中,只對近的一層迴圈起作用