導航:首頁 > 編程語言 > 帶分數python

帶分數python

發布時間:2022-06-13 03:16:37

『壹』 用python帶分數和分數

#!/usr/bin/envpython3
fromrandomimportrandint,choice


defmm(m,n):
"""求兩個整數的最小公倍數"""
ifm>n:
m,n=n,m
ifm==norm==1orn%m==0:
returnn
foriinrange(2,n+1):
ifm*i%n==0:
returnm*i


defmn(m,n):
"""求兩個整數的最小公約數"""
ifm>n:
m,n=n,m
ifm==norm==1orn%m==0:
returnm
r=1
foriinrange(2,m):
ifm%i==0andn%i==0:
r=i
returnr


defrd(t=3):
"""隨機生成一個分數"""
w=randint(1,9)
d=randint(2,9)
n=randint(1,d-1)
m=mn(d,n)
return[w,n//m,d//m]


defshow(a):
"""[1,1,2]-->'11/2'"""
return'{}{}/{}'.format(*a)


defimp(a):
"""11/2-->3/2"""
return[a[0]*a[2]+(a[0]//abs(a[0]))*a[1],a[2]]


defunimp(a):
"""3/2-->11/2"""
m=mn(abs(a[0]),a[1])
n,d=a[0]//m,a[1]//m
return(n//abs(n))*(abs(n)//d),abs(n)%d,d


defadd(a,b,negative=False):
a,b=imp(a),imp(b)
m=mm(a[1],b[1])
sign=-1ifnegativeelse1
r=a[0]*m//a[1]+sign*b[0]*m//b[1],m
returnunimp(r)


defmain():
right=0
foriinrange(20):
print('Question{}:'.format(i+1))
a,s,b=rd(),choice(('+','-')),rd()
result=show(add(a,b,s=='-'))
inp=input('{}{}{}='.format(show(a),s,show(b))).strip()
ifinp==resultorinp==result.lstrip('0'):
right+=1
print('Right.')
else:
print('Wrong!Thecorrectresultis:{}'.format(result.lstrip('0')))
print('Testcomplete.Right:{},wrong:{},Rate:{}%'.format(
right,20-right,right*5))


if__name__=='__main__':
main()

閱讀全文

與帶分數python相關的資料

熱點內容
androidflipboard 瀏覽:878
投資公司投資源碼 瀏覽:74
python語料訓練 瀏覽:338
武夷岩茶產地溯源碼 瀏覽:383
求生組隊用什麼伺服器最好 瀏覽:24
php回調匿名回調函數 瀏覽:107
源碼翻譯軟體哪裡找 瀏覽:523
邪惡程序員解說 瀏覽:600
醫生找程序員 瀏覽:423
cad三維剖切命令 瀏覽:55
壓縮機的氣能流多遠 瀏覽:85
linuxfdiskt 瀏覽:696
iphone沒有id怎麼用app 瀏覽:983
手機淘寶網站源碼 瀏覽:743
小車上的壓縮機怎麼改氣泵 瀏覽:568
免費雲伺服器任務 瀏覽:211
蘋果怎樣在手機上做壓縮文件 瀏覽:644
如何搭建sslvpn伺服器 瀏覽:33
php鏡像程序 瀏覽:7
linux變數命名 瀏覽:157