Python基礎習題(一)

2021-07-24 06:10:27 字數 4960 閱讀 6334

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

#先定義乙個判斷乙個三位數是否符合條件的函式

defismynumber

(n):

a=int(n%10)

b=int(n/10%10)

c=int(n/100)

if(a==b)or(b==c)or(c==a):

return

false

else:

return

true

count=0

#百位數

for i in range(1,5):

#十位數

for j in range(1,5):

#個位數

for k in range(1,5):

number=i*100+j*10+k

if ismynumber(number):

count=count+1

print("發現乙個符合條件的數:"+str(number))

else:

print(str(number)+"不符合條件!")

print("總共有"+str(count)+"個符合條件的數字。")

注:如果a,b,c不強制為int,會作為float資料影響條件判斷。

#設定計數器

count=0

#百位數

for i in range(1,5):

#十位數

for j in range(1,5):

if i==j:

continue

#個位數

for k in range(1,5):

if k==i or k==j:

continue

number=i*100+j*10+k

count=count+1

print("找到乙個符合條件的數:"+str(number))

print("總共有"+str(count)+"個符合條件的數字。")

2、乙個整數,加上100後是乙個完全平方數,再加上168又是乙個完全平方數,這個數為多少。

#乙個整數加上100後是乙個完全平方數,再加上168又是乙個完全平方數,這個數為多少

import math

#先定義乙個判斷是否為完全平方數的函式

defiswp

(n):

m=int(math.sqrt(n))

if n==m*m:

return

true

else:

return

false

#只找一萬以內

for i in range(10000):

x=i+100

y=x+168

if iswp(x) and iswp(y):

print("這個數是:"+str(i))

print(math.sqrt(x),math.sqrt(y))

3、輸入某年某月某日,判斷這一天是這一年的第幾天

#輸入某年某月某日,判斷這一天是這一年的第幾天

"""思路

1、定義乙個判斷年份是否為閏年的函式

2、如果年份為閏年,月份小於等於2,則正常計算

3、如果年份為閏年,月份大於2,則閏年天數須加1

"""#判斷閏年的函式

defisleapyear

(year):

if year%400==0

or(year%4==0

and year%100!=0):

return

true

else:

return

false

#提示輸入年月日

year=int(input("請輸入要判斷的年份:"))

month=int(input("請輸入要判斷的月份:"))

date=int(input("請輸入要判斷的日期:"))

#設定乙個固定月天數的元組,設定初始統計值

days_count=0

days=(31,28,31,30,31,30,31,31,30,31,30,31)

for i in range(month):

days_count=days_count+days[i]

#如果年份為閏年,月份小於等於2,則正常計算

if isleapyear(year) and month<=2:

days_count=days_count+1

print("這一天是"+str(year)+"年的第"+str(days_count)+"天。")

基礎不牢固,在提示輸入**時忘記資料型別需要轉換導致執行報錯。

4、輸入三個整數x,y,z,請把這三個數由小到大輸出

#輸入三個整數x,y,z,請把這三個數由小到大輸出

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

y=int(input("請輸入y的數值:"))

z=int(input("請輸入z的數值:"))

if x"從小到大排序分別是x:"+str(x)+"-y:"+str(y)+"-z:"+str(z))

elif x"從小到大排序分別是x:"+str(x)+"-z:"+str(z)+"-y:"+str(y))

elif y"從小到大排序分別是y:"+str(y)+"-x:"+str(x)+"-z:"+str(z))

elif y"從小到大排序分別是y:"+str(y)+"-z:"+str(z)+"-x:"+str(x))

elif z"從小到大排序分別是z:"+str(z)+"-x:"+str(x)+"-y:"+str(y))

elif z"從小到大排序分別是z:"+str(y)+"-y:"+str(z)+"-x:"+str(x))

5、輸出9*9乘法表

#輸出9*9乘法表

for i in range(1,10):

for j in range(1,i+1):

print(str(j)+"*"+str(i)+"="+str(i*j),end=" ")

if i*j<10:

print(" ",end="")

print()

6、判斷101-200之間有多少素數,並輸出

#判斷101-200之間有多少素數,並輸出

import math

defisprime

(n):

if n<2:

return

false

elif n==2:

return

true

else:

m=int(math.sqrt(n))

for i in range(2,m+1):

if n%i==0:

return

false

return

true

for i in range(101,201):

if isprime(i):

print(i,end=" ")

7、列印出所有的「水仙花數」,所謂的水仙花數是指乙個三位數,其各位數字立方和等於該數本身.如153。

"""列印出所有的「水仙花數」,所謂的水仙花數是指乙個三位數,

其各位數字立方和等於該數本身.如153。

"""def

issxh

(n):

if n<100

or n>999:

return

false

else:

b=int(n/100)

s=int(n/10%10)

g=int(n%10)

if ((b*b*b+s*s*s+g*g*g)==n):

return

true

else:

return

false

for i in range(100,1000):

if issxh(i):

print(i,end=" ")

8、將乙個正整數分解質因數,例如:輸入90,列印出90=2×3×3×5。

#將乙個正整數分解質因數,例如:輸入90,列印出90=2×3×3×5。

import math

defisprime

(n):

if n<2:

return

false

elif n==2:

return

true

else:

m=int(math.sqrt(n))

for i in range(2,m+1):

if n%i==0:

return

false

return

true

"""使用遞迴演算法,每次都找出最小的質因數

然後迴圈呼叫

"""def

printnumber

(n):

if isprime(n):

print(n,end="")

else:

for i in range(1,n+1):

if isprime(i) and n%i==0:

print(str(i)+"*",end="")

printnumber(int(n/i))

break

number=int(input("請輸入乙個正整數:"))

print(str(number)+"=",end="")

printnumber(number)

python基礎習題

寫函式f x 2x 1 def f x y 2 x 1 print y 寫函式f x,y,z xyz def a x,y,z b xyz print b 判斷四季 接受使用者輸入的月份 month int input month 定義列表 spring 3,4,5 summer 6,7,8 auto...

python基礎練習題(一)

參考 一 單選題 1.python中 運算子比較兩個物件的值,下列選項中哪乙個是is比較物件的因素 4.0分 a id b sum c max d min id 命令檢視變數的位址。2.在python中,字串s abc 那麼執行表示式s d 之後,s的列印結果是什麼 4.0分 a abc b abc...

python基礎習題訓練

python練習題 習題一 請輸入乙個1 100範圍的數字,根據數字大小 得出 90 100 優秀,80 90 良好,70 80 一般,60 70 及格,0 60 不及格。i input i int i if i 60 i 70 print 及格 elif i 70 i 80 print 一般 el...