python程序順序、分支與循環語句


if...elif...else 語句

 
 1 # 求一個不超過五位數的正整數是幾位數
 2 n=int(input('please input number:'))
 3 if n<1000:
 4     if n<10:
 5         print('one')
 6     elif n<100:
 7         print('two')
 8     else:
 9         print('three')
10 else:
11     if n<10000:
12         print('four')
13     else:
14         print('five')
15 # 注釋:本體使用折半思想,折半思想適合用在在一個大量數據中查找某個數

 

for循環

 1 # 給定一個正整數,判斷該數的位數,打印出個位、十位、百位、千位到最高位的數字
 2 代碼一(從個位到最高位)
 3 a=input()
 4 b=len(a)
 5 a=int(a)
 6 for i in range(b):
 7     print(a%10)
 8     a=a//10
 9 代碼二(從最高位到個位)
10 a=input()
11 b=len(a)
12 a=int(a)
13 for i in range(b,0,-1):
14     print(a//10**(i-1))
15     a=a%10**(i-1)
16 #注釋:找到規律,可以用幾行循環代碼得出結果
1 # 求100以內所有奇數之和:
2 sum=0
3 for i in range(1,100,2):
4     sum+=i
5 print(sum)
6 注釋:range函數步跳是效率很高的循環

 

while循環

 1 # 打印前n個斐波那契數列(使用臨時變量法)
 2 a=0
 3 b=1
 4 sum=0
 5 n=int(input())
 6 while n>0:
 7     sum=a+b
 8     a = b
 9     b = sum
10     n -= 1
11     print(a)
12 
13 # 打印前n個斐波那契數列數列(不使用臨時變量)
14 a=0
15 b=1
16 c=0
17 n=int(input())
18 while c<n:
19     a,b=b,a+b
20     c+=1
21     print(a)

 

if語句,for循環與while循環都可以彼此嵌套

 1 # 打印菱形(菱形為奇數行)
 2 n=int(input())
 3 m=n//2
 4 for i in range(-m,m+1):
 5     if i<=0:
 6         print((-i)*' '+(n+2*i)*'*')
 7     else:
 8         print(i*' '+(n-2*i)*'*')
 9 
10 #打印閃電型圖形(奇數)
11 n=int(input('odd number:'))
12 b=n//2
13 for i in range(-b,b+1):
14     if i<0:
15         print((-i)*' '+(b+i+1)*'*')
16     elif i==0:
17         print(n*'*')
18     else:
19         print(b*' '+(b-i+1)*'*')
20 
21 # 打印對角三角形(奇數)
22 n=int(input())
23 m=n//2
24 for i in range(-m,m+1):
25     if i<=0:
26         print((m+i)*' '+((-i)*2+1)*'*')
27     else:
28         print((m-i)*' '+((i)*2+1)*'*')
29 
30 注釋:像這種打印對稱圖形的問題都可以采用這種方法,將圖形分成兩部分考慮
 1 # 輸入若干個數,打印出最大數(有退出條件)
 2 代碼一:
 3 n=0
 4 while True:
 5     b=input()
 6     if b=='q':
 7         break
 8     elif n==0:
 9         b=int(b)
10         a=b
11         n=n+1
12         print(a)
13     else:
14         b=int(b)
15         if b>a:
16             a=b
17             print(a)
18         else:
19             print(a)
20 #注釋:n的作用只在第一次循環中將第一次輸入的值賦值給b,並打印出來;輸入q退出
21 代碼二
22 a=int(input())
23 while True:
24     b=input()
25     if b:
26         b=int(b)
27         if b>a:
28             a=b
29             print('max is'a)
30         else:
31             print('max is'a)
32     else:
33         break
34 #注釋:該代碼簡潔,退出條件為回車鍵(因為回車鍵代表輸入空,為假;假則進入else,執行break,打斷循環)

 

 1 # 打印九九乘法表
 2 for i in range(1,10):
 3     for j in range(1,i+1):
 4         print(j,'×',i,'=',j*i,end='\t')
 5     print()
 6 
 7 # 打印右上方乘法表
 8 for i in range(1,10):
 9     s=''
10     for j in range(i,10):
11         s += '{}*{}={:<{}}'.format(i,j,i*j,3 if j<4 else 4)
12     print('{:>70}'.format(s) )
13 #注釋:.format函數{}可以嵌套;該方法運用了 三目表達式

 

三目表達式:熟練運用三目表達式可減少代碼行數

if 條件1:

     語句1
else:
      語句2
三目表達式:語句1  if  條件1  else  語句2          # 沒有冒號

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM