1. 程式人生 > >python練習題——1~5

python練習題——1~5

程式設計多練多看多總結!先練它個一百題

  • 01——有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

    思路:三個位置,四種可能,並且不相同無重複。前者我們可以for迴圈遍歷,最後加上if限制條件輸出

list = [1,2,3,4]
count = 0
for i in list:
    for j in list:
        for k in list:
            if i!=j and i!= k  and j != k:
                count +=1
                #print("{0}{1}{2}".format(i,j,k))
                print(i*100+j*10+k)
print("總計%d個" % count)

# 24個
  • 02——企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?

思路:1.相當於分段函式,我們考慮if-elif-else語句以達到目的;2.構造求利潤公式,再代值進去

法二:
per = float(input("請輸入利潤(萬元):"))
mon = 0
i = [100,60,40,20,10,0]
j = [0.01,0.015,0.03,0.05,0.075,0.1]
for m in range(6):
    if per > i[m]:
        c = per - i[m]
        mon = c*j[m]+mon
        per = i[m]
print("工資(萬元):%s" % mon)
  • 03——一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
#法一:列表表示式
list = [i**2-100 for i in range(1000) for j in range(1000) if (j**2 - i**2) == 168]
print(list)
#法一的等價形式
for i in range(1000):
    for j in range(1000):
        if (j**2 - i**2) == 168:
            print(i**2 - 100)
#利用數量關係構造if限制條件
  • 04——輸入某年某月某日,判斷這一天是這一年的第幾天?

datetime模組是date和time模組的合集

datetime.date:表示日期的類,返回:year-month-day

datetime.timedelta:表示時間間隔,即兩個時間點的間隔

import  datetime
year = int(input("輸入年份:"))
month = int(input("輸入月份:"))
day = int(input("輸入天:"))

targetday = datetime.date(year, month, day)#格式化標準日期def __init__(self, year: int, month: int, day: int)
result = targetday - datetime.date(targetday.year-1, 12, 31)#減去上一年的最後一天
print("%s是%s年的第%s天" % (targetday, year, result.days))
  • 05——輸入三個整數x,y,z,請把這三個數由小到大輸出?
x = int(input("請輸入第一個整數:"))
y = int(input("請輸入第二個整數:"))
z = int(input("請輸入第三個整數:"))
list = [x,y,z]
print("由小到大排序:%s" % sorted(list))

如有錯誤,歡迎指正!