1. 程式人生 > >python3 100例 一碼人學習筆記(1-10)

python3 100例 一碼人學習筆記(1-10)

不逼逼,撂乾貨

題目1有四個數字:1、2、3、4,能組成多少個互不相同且無重複數字的三位數?各是多少?

程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。

for i in range(1,5):  
  for j in range(1,5):    
    for k in range(1,5):    
        if( i != k ) and (i != j) and (j != k):   
             print (i,j,k)

題目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,求應發放獎金總數?

i = int(input('淨利潤:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
    if i>arr[idx]:
        r+=(i-arr[idx])*rat[idx])
        print ((i-arr[idx])*rat[idx])
        i=arr[idx]
print (r)

執行結果:

題目3:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

for i in range(1,85):
    if 168 % i == 0:
        j = 168 / i;
        if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
            m = (i + j) / 2
            n = (i - j) / 2
            x = n * n - 100
            print(x)

執行結果:

題目4:輸入某年某月某日,判斷這一天是這一年的第幾天?

程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於2時需考慮多加一天:

year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
 
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 < month <= 12:
    sum = months[month - 1]
else:
    print('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
    leap = 1
if (leap == 1) and (month > 2):
    sum += 1
print( 'it is the %dth day.' % sum)

執行結果

題目5:輸入三個整數x,y,z,請把這三個數由小到大輸出。

l = []
for i in range(3):
    x = int(input('integer:\n'))
    l.append(x)
l.sort()
print (l)

執行結果

題目6:斐波那契數列。

程式分析:斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……。

def fib(n):
    a,b = 1,1
    for i in range(n-1):
        a,b = b,a+b
    return a
k=int(input('你需要第幾個菲波那契數列:'))
print( fib(k))

執行結果:

如果要顯示出全部結果:

def fib(n):
    if n == 1:
        return [1]
    if n == 2:
        return [1, 1]
    fibs = [1, 1]
    for i in range(2, n):
        fibs.append(fibs[-1] + fibs[-2])
    return fibs
k=int(input('你需要顯示幾個菲波那契數列:'))
print( fib(k))

執行結果:

題目7:從一個列表複製到另外一個列表裡

a = [1, 2, 3]
b = a[:]
c = a[1:]
d = a[:1]
print (b,c,d)

執行結果:

題目9:輸出乘法口訣表

for i in range(1, 10):
    print 
    for j in range(1, i+1):
      print ("%dx%d=%d" % (i, j, i*j))

執行結果:

題目10:輸出當前時間

import time
 
print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
 
# 暫停一秒
time.sleep(1)
 
print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

輸出結果: