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...