python chapter 5 exercise

.講講Python 普通整型和長整型的區別?
普通整型範圍-231--231-1
長整型是普通整型的超集。
python2.3版本以後 普通整型和長整型已經統一了,普通用戶已經看不到長整型的存在了。
2.5-2 運算符
(a) 寫一個函數,計算並返回兩個數的乘積
(b) 寫一段代碼調用這個函數,並顯示它的結果
def count(a,b):
    return a*b

num1=float(raw_input('number 1:'))
num2=float(raw_input('number 2:'))
c=count(num1,num2)
print c

5-5 取餘。取一個任意小於1 美圓的金額,而後計算能夠換成最少多少枚硬幣。硬幣有1
美分,5 美分,10 美分,25 美分四種。1 美圓等於100 美分。舉例來講,0.76 美圓換算結果
應該是 3 枚25 美分,1 枚1 美分。相似76 枚1 美分,2 枚25 美分+2 枚10 美分+1 枚5美分+1
枚1 美分這樣的結果都是不符合要求的。

from random import randint
coincount=0
while True:
    test=raw_input('inputjudgement:')
    if test=='goon':
       i=randint(1,100)
       print i
       b=divmod(i,25)
       c=divmod(b [1],10)
       d=divmod(c [1],5)
       coincount=b[0]+c[0]+d[0]+d [1]
       print coincount
    else:
       print 'I want to quit.'
       break
   
別人寫的:
def NmuOfdollar(money):
    num=[25,10,5,1]
    count=0
    for i in num:
       result=divmod(money,i)
       count=count+result[0]
       money=result [1]
    return count

if __name__ == "__main__":
    while True:
       money = raw_input("please enter the money(0 toquit):")
       if money == "0":
          break
       else:
           print "thecount is: %d" % NmuOfdollar(int(money))        

5-6 算術。寫一個計算器程序 你的代碼能夠接受這樣的表達式,兩個操做數加一個運算符:
N1 運算符 N2. 其中 N1 和 N2 爲整數或浮點數,運算符能夠是+, -, *, /, %, **分別表示
加法,減法, 乘法, 整數除,取餘和冪運算。計算這個表達式的結果,而後顯示出來。提示:
能夠使用字符串方法 split(),但不能夠使用內建函數 eval_r().
def calexpress(express):
    a=express.split('')
    if a [1]=='+':
       return float(a[0])+float(a [2])
    elif a [1]=='-':
       return float(a[0])-float(a [2])
    elif a [1]=='*':
       return float(a[0])*float(a [2])
    elif a [1]=='/':
       return float(a[0])/float(a [2])
    elif a [1]=='%':
       return float(a[0])%float(a [2])
    elif a [1]=='**':
       return float(a[0])**float(a [2])

if __name__=='__main__': 
    while True:
       expresslist=raw_input('please inputexpress:')
       if expresslist.lower()=='q':
           print 'iwant to quit'
          break
       print '%s result is %f'%(expresslist,calexpress(expresslist))
    
若是使用內建函數的話:
expresslist=raw_input('pleaseinput express:')
printeval_r(expresslist)

5-11 取餘。
(a) 使用循環和算術運算,求出 0-20 之間的全部偶數
(b) 同上,不過此次輸出全部的奇數
(c) 綜合 (a) 和 (b), 請問辨別奇數和偶數的最簡單的方法是什麼?
(d) 使用(c)的成果,寫一個函數,檢測一個整數可否被另外一個整數整除。 先要求用戶輸
入兩個數,而後你的函數判斷二者是否有整除關係,根據判斷結果分別返回 True 和 False;

coding:
evennumber=[]
oddnumber=[]
for i in range(21):
    if i%2==0:
       evennumber.append(i)
    else:
       oddnumber.append(i)

print 'oddnumber is: %s'% oddnumber
print 'evennumber is: %s'% evennumber

d:
def count(num1,num2):
    if num1%num2==0:
       return True
    else:
       return False

num1=int(raw_input('number1:'))
num2=int(raw_input('number2:'))
A=count(num1,num2)
print A
    
5-13 轉換。寫一個函數把由小時和分鐘表示的時間轉換爲只用分鐘表示的時間。
code:


def Tran(settime):
   list=settime.split(':')
   newlist=int(list[0])*60+int(list [1])
    return newlist

if __name__=='__main__':
    while True:
       time=raw_input('please input time:')
       if time.lower()=='q':
           print'want to quit.'
          break
       print 'the time is %dminutes'%(Tran(time))



5-17 隨機數。熟讀隨機數模塊而後解下面的題:
生成一個有 N 個元素的由隨機數 n 組成的列表, 其中 N 和 n 的取值範圍分別爲: (1<</div>
N <= 100), (0 <= n <= 231 -1)。而後再隨機從這個列表中取 N (1 <=N <= 100)個隨機數
出來, 對它們排序,而後顯示這個子集。
code:
from random import randint


def count(N,n):
    b=[]
    for i in range(N):
      b.append(randint(0,n))
    return b

if __name__=='__main__':
    
    N=randint(0,100)
    print 'N:%d'%N
    n=randint(0,231-1)
    print 'n:%d'%n
    c=count(N,n)
    print sorted(c)
相關文章
相關標籤/搜索