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 # 沒有冒號