Python3入門經典100例

2021-08-17 15:47:57 字數 4180 閱讀 5110

最近由於人工智慧和編譯原理實驗,決定要學python3。不為別的,就是因為自己語言基礎太差,現學現賣只能用python了。網上看了一圈python的例題,都只有python2的,於是自己決定把python2的例題,手寫成python3。希望通過這100道例題,自己能對python3的基礎**能力有一定的掌握。

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

sum=0

for i in range(1,5):

for j in range(1,5):

for k in range(1,5):

if i!=j and j!=k and i!=k:

print(i,j,k)

sum+=1

print("共",sum,"種")

思考與分析:for的巢狀迴圈使用,看一遍,仿寫一遍之後,自己就可以手寫了。

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

# coding=utf-8

i=int(input("輸入你的淨利潤:"))

a=[100,60,40,20,10,0]

b=[0.01,0.015,0.03,0.05,0.075,0.1]

r=0for c in range(0,6):

if i>a[c]:

r+=(i-a[c])*b[c]

print('區間提成:',(i-a[c])*b[c])

i=a[c]

print("您的總提成為",r,"萬元")

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

程式分析:

假設該數為 x。

1、則:x + 100 = n2, x + 100 + 168 = m2

2、計算等式:m2 - n2 = (m + n)(m - n) = 168

3、設定: m + n = i,m - n = j,i * j =168,i 和 j 至少乙個是偶數

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要麼都是偶數,要麼都是奇數。

5、從 3 和 4 推導可知道,i 與 j 均是大於等於 2 的偶數。

6、由於 i * j = 168, j>=2,則 1 < i < 168 / 2 + 1。

for i in range(1,85):

if 168%i==0:

j=168/i

if i>j and (i+j)%2==0:#有的地方會把(i-j)%2==0寫上,是可以省略的。

n=(i-j)/2

x=n*n-100

print(x)

思考與分析:這裡就用到了數學思維,需要去分析怎樣求解並求得最優解,當然也可以思考把**更簡單化。

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

分析過程:

將小於當月的月份日期累加再加上當月的日期即可得到結果。

思路:一種方法是寫乙個字典,通過字典來獲取每個月的天數。

dic = #用字典的方式來對應月份和天數最合適不過了,不用考慮位置的問題。

x = int(input('請輸入月份:',))

y = int(input('請輸入日期:',))

r=0if x in range(1,13) and y in range(1,dic[x]):

for i in range(1, 13):

if i例5:

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

分析:將輸入的數字放置到列表或者元組中,執行排序即可。

**方法1:

a=for i in range(3):

x=int(input("請輸入數字:"))

a.sort()

print(a[0],a[1],a[-1])

**二:

x=int(input('請輸入第乙個數字:',))  

y=int(input('請輸入第二個數字:',))

z=int(input('請輸入第三個數字:',))

a=[x,y,z]

a.sort()

print (a[0],a[1],a[2])

分析思路:當多個元素排序的話,需要寫的**量就多了,所以這就體現了for迴圈的作用。

倒序迴圈:

r=[ ]  

for i in range(3):

x=int(input('請輸入整數:\n'),)

r.sort(reverse=1)

print ('\n',r[0],'\n',r[1],'\n',r[2])

例6:斐波那契數列指的是從0,1開始,第三項為前兩項之和。即:f0=0,f1=1,fn=f[n-1]+f[n-2] (n>=2)

def fib(n):

if n == 1 or n == 2:

return 1

elif n==0:

return 0

return fib(n - 1) + fib(n - 2)

print (fib(10))

或:

def fib(n):

a, b = 0, 1

for i in range(n):

a, b = b, a + b

return a

print(fib(10))

或:

def fib(n):

if n<1:

return none

if n==1:

return [1]

if n==2:

return [1,1]

else:

fibs=[1,1]

for i in range(2,n):

return fibs

print(fib(0))

例7:

把列表a種的元素複製到b

a = [1,2,3,4,5,6,7,8,9]

b = a[:]

print(b)

a=[1,2,3]

b=a.copy()

print(b)

l = [1,2,3,4,5]

p =

for i in range(len(l)):

print (p)

開拓思維:還有好多種方法

例8:輸出99乘法表

for i in range(1,10):

for j in range(1,10):

print(j, "x", i, "=", i * j,"\t",end="")

if i==j:

print("")

break

例9:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

a = 1

b = 1

for i in range(1,21,2): #步長為2,直接輸出a和b的值。

print '%d %d'%(a,b),

a += b

b += a

例10:求1000以內水仙花數, 即乙個三位數等於各位的三次方之和。

for n in range(100,1000):

i = n//100

j = n//10 % 10

k = n % 10

if n == i ** 3 + j ** 3 + k ** 3:

print (n)

python3菜鳥教程100例 Python3

python3 字典 字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字。乙個簡單的字典例項 也可如此建...

python3 練習題100例 (三)

題目三 乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?usr bin env python3 coding utf 8 題目三 乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?author fan lijun im...

python3 練習題100例 (九)

題目九 題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?程式分析 兔子的規律為數列1,1,2,3,5,8,13,21.usr bin env python3 coding utf 8 題目九 題目 古...