1.有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?

#有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? number = (1 ,2,3,4) count = 0 for i in number:#for i in range(1,5) for j in number: for k in number: if i !=j and i != k and j != k : count += 1 print(i ,j , k) print("一共有%s種組合"%count)
2.題目:企業發放的獎金根據利潤提成。
利潤(I)低於或等於10萬元時,獎金可提10%;
利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;
20萬到40萬之間時,高於20萬元的部分,可提成5%;
40萬到60萬之間時高於40萬元的部分,可提成3%;
60萬到100萬之間時,高於60萬元的部分,可提成1.5%;
高於100萬元時,超過100萬元的部分按1%提成。
從鍵盤輸入當月利潤I,求應發放獎金總數?
初級版

profits = input("請輸入當月利潤:") profit = int(profits) if profit <= 100000 : bonus = profit * 0.1 elif 100000< profit <=200000: bonus = 100000*0.1 + (profit-100000)*0.075 elif 200000 < profit <= 400000: bonus = 100000*0.1 + 100000*0.075 + (profit-200000)*0.05 elif 400000 < profit <= 600000: bonus = 100000*0.1 +100000*0.075 + 200000*0.05 + (profit-400000)*0.03 elif 600000 < profit <= 1000000: bonus = 100000*0.1 +100000*0.075 + 200000*0.05 + 200000*0.03 +(profit-600000)*0.015 elif 1000000 < profit: bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit-1000000)*0.01 print("你應得的獎金為:",bonus)
進階版

while True: #增加循環可多次輸入 profits = input("請輸入當月利潤:") if profits != "q" and profits != "Q": #增加一個判斷使程序可以退出並增加一個隱形的判斷Q try: #抓取有可能由於輸入錯誤導致的報錯 profit = int(profits) if profit <= 100000 : bonus = profit * 0.1 elif 100000< profit <=200000: bonus = 100000*0.1 + (profit-100000)*0.075 elif 200000 < profit <= 400000: bonus = 100000*0.1 + 100000*0.075 + (profit-200000)*0.05 elif 400000 < profit <= 600000: bonus = 100000*0.1 +100000*0.075 + 200000*0.05 + (profit-400000)*0.03 elif 600000 < profit <= 1000000: bonus = 100000*0.1 +100000*0.075 + 200000*0.05 + 200000*0.03 +(profit-600000)*0.015 elif 1000000 < profit: bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit-1000000)*0.01 print("你應得的獎金為:",bonus) print("輸入 q 結束查詢") except Exception : print("對不起你輸入的信息有誤,請輸入當月利潤,或輸入 q 退出") else: print("結束查詢") break
3.題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
我數學不好,只能想一個笨辦法來解決

#題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少? for a in range(0,10000): b = (a+100)**0.5 #思路;如果b是一個平方數,那么它的開方應該是一個一位小數的數字,如:121開方后是11.0,如果是小數點兩位,那么它不可能是一個完全開方數 q=len(str(b).split(".")[1]) #所以把b這個浮點數按小數點分開,如果小數點后面是一位,那么它包含了所以的完全平方數和可能不是的完全平方數 if q == 1: c = (a+100+168)**0.5 w=len(str(c).split(".")[1]) if w == 1: #再次篩選,那么是c完全平方數的概率也就極大增加了,到底有多大,請看結果。驗證后沒有錯誤答案, print(a)
4.題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

import time while True: a = input("請輸入某年某月某日,(如:2016-08-06):") if a != "q": try: c= time.strptime(a,"%Y-%m-%d") #把獲取的時間轉換成元組形式並獲取數據 print("這是%s年的第%s天"%(a[0:4],c.tm_yday)) except Exception: print("輸入有誤,請重新輸入,退出請輸入q") else: print("已退出") break
5.題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

while True: a = input("請輸入三個整數,並用逗號隔開,如:2,5,4 (退出請輸入 q ):") if a != "q": try: b = a.split(",") r = int(b[0]) #int也有一個好處,就是判斷它是否為空或者特殊字符,是則報錯 w =int(b[1]) e = int(b[2]) c=[] c.append(r) #c里的內容必須是int類型,因為b是字符串,那么b.sort排序 會把10排到5后面,因為10在b里是字符串,它沒有5大 c.append(w) c.append(e) c.sort() if len(b) >3: #判斷是否輸入數大於三位 print("請輸入三位整數,退出請輸入 q ") continue print("您輸入的數%s從小到大的排序為:%s ,%s ,%s"%(a,c[0],c[1],c[2])) except Exception: print("輸入有誤,請重新輸入,退出請輸入 q ") else: print("已退出") break
6.題目:用*號輸出字母C的圖案。

print(""" * * * * * * * * * * * * * * * * * """ )
7.題目:輸出9*9口訣。

#題目:輸出9*9口訣。 for i in range(1,10): for j in range(1,10): if i <= j: # print(str(i) + "*" + str(j) + "=" + str(i*j)) # print("{a}*{b}={c}".format(a=i,b=j,c=i*j)) #第二種方法 print("%d*%d=%d"%(i,j,i*j)) #第三種方法

#題目:輸出9*9口訣。 for i in range(1,10): for j in range(1,10): if i <= j: print(str(i) + "+" + str(j) + "=" + str(i*j)) # print("%s+%s=%s"%(i,j,i*j)) #第二種輸出方法
8.題目:斐波那契數列 斐波那契就是從第三個數開始,都是前兩個數的和

#題目:斐波那契數列 斐波那契就是從第三個數開始,都是前兩個數的和 a, b = 1, 1 for i in range(10): a, b = b, a + b print(a) # def cn(n): #輸出指定的第幾個數 # a, b = 1, 1 # for i in range(n-1): # a, b = b, a + b # return a # print(cn(10))
9.題目:將一個列表的數據復制到另一個列表中。

#題目:將一個列表的數據復制到另一個列表中。 a=[1,2,3] # b = a 這種方法不行 # print(b) # a.append(5) # print(b) b = a[:] #這個可以,相當於復制a,也可以a[0:len(a)] print(b) a.append(7) print(b)
10 題目:暫停一秒輸出

#題目:暫停一秒輸出 import time print("開始暫停") time.sleep(1) print("暫停了一秒")
11.題目:暫停一秒輸出,並格式化當前時間。

#題目:暫停一秒輸出,並格式化當前時間。 import time print("暫停一秒") time.sleep(1) a = time.strftime("%Y-%m-%d %H-%M-%S",time.localtime()) #time.localtime()獲取當前時間元組形式,time.strftime()格式化時間 print(a)
12.題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

#題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? #這是斐波那契數列,1,1,2,3,5,8,13 a, b = 1, 1 c=[] print("第一個和第二個月都只有一對兔子") print(a) for i in range(24): a, b = b, a + b print(a)
13.題目:判斷101-200之間有多少個素數,並輸出所有素數

#題目:判斷101-200之間有多少個素數,並輸出所有素數。素數就是大於一的自然數,只能被一和自己整除的數 count = 0 for num in range(101,201): for i in range(2,num): if num%i==0 : break else: count += 1 print("%d是素數"%num) print("一共有%s個素數"%count)
14.題目:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身

#題目:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。 for i in range(100,1000): a = int((str(i)[0]))**3 + int((str(i)[1]))**3 + int((str(i)[2]))**3 if a == i: print(i)
15.題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5

#題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5 target=int(input('輸入一個整數:')) print(target,'= ',end='') if target<0: target=abs(target) print('-1*',end='') flag=0 if target<=1: print(target) flag=1 while True: if flag: break for i in range(2,int(target+1)): if target%i==0: print("%d"%i,end='') if target==i: flag=1 break print('*',end='') target/=i break
16.題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示

#題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示 try: numb_s = int(input("請輸入成績,輸入 q 退出:")) while numb_s != "q": if numb_s >= 90: print("A") elif 60 <= numb_s <=89: print("B") else: print("C") except Exception: print("輸入數據錯誤,請重新輸入或輸入 q 退出")
17.
1