python核心編程-第五章-習題

1.長整型表示數的範圍比整型更大。在python中,整型、長整型趨於統一,普通用戶不用特別關注二者區別,僅當需引用C語言時須要特別注意。python

2.操做符express

(a)app

def multiply(x,y):
    return x * y

(b)dom

>>> multiply(23,24)
552

3.ide

def result(x):
    if 90 <= x <= 100:
        return "A"
    elif 80 <= x <= 89:
        return "B"
    elif 70 <= x <= 79:
        return "C"
    elif 60 <= x <= 69:
        return "D"
    else:
        return "F"

4.rest

# -*- coding:utf-8 -*-
def year_judge(year):
    if (int(year) % 4 == 0 and int(year) % 100 != 0) or int(year) % 400 == 0:
        return u"該年是閏年!"
    else:
        return u"該年是平年!"

5.code

# -*- coding:utf-8 -*-
def exchange(x):
    divide_25, mod_25 = divmod(x, 25)[0], divmod(x,25)[1]
    if mod_25 == 0:
        return u"%d 美分換算結果是:%d枚25美分。" % (x,divide_25)
    else:
        divide_10, mod_10 = divmod(mod_25, 10)[0], divmod(mod_25, 10)[1]
        if mod_10 == 0:
            return u"%d美分換算結果是:%d枚25美分,%d枚10美分。" % (x, divide_25, divide_10)
        else:
            divide_5, mod_5 = divmod(mod_10, 5)[0],divmod(mod_10, 5)[1]
            if mod_5 == 0:
                return u"%d美分換算結果是:%d枚25美分,%d枚10美分,%d枚5美分。" % (x,divide_25, divide_10, divide_5)
            else:return u"%d美分換算結果是:%d枚25美分,%d枚10美分,%d枚5美分,%d枚1美分。" % (x, divide_25, divide_10, divide_5,mod_5)                
def cents_exchange(x):
    if x < 1:
        x = x * 100
    else:
        x = int(x)
        print exchange(x)

6.ip

# -*- coding:utf-8 -*-

def calculator():
    global expression
    expression = raw_input("請輸入一個表達式,能夠計算加減乘除取餘和冪運算,按Q退出。".decode("utf-8").encode("gbk"))
    
    if expression == "Q":
        return u"程序退出,再見"
        
    else:
        for i in ["+","-","**","/","%","*"]:
    
            if i in expression:
                numbers = expression.split(i)
                if "." in expression:
                    N1 = float(numbers[0])
                    N2 = float(numbers[1])
                else:
                    N1 = int(numbers[0])
                    N2 = int(numbers[1])
            
                if i == "+":
                    return N1 + N2
                elif i == "-":
                    return N1 - N2
                elif i == "*":
                    return N1 * N2
                elif i == "**":
                    return N1 ** N2
                elif i == "%":
                    return N1 % N2
                elif i == "/":
                    return N1 / N2
    
while True:
    print calculator()
    if expression == "Q":
        break

7.utf-8

# -*- coding:utf-8 -*-
sales = float(raw_input("請輸入營業額".decode("utf-8").encode("gbk")))
rate = float(raw_input("請輸入稅率,以兩位小數表示".decode("utf-8").encode("gbk")))
print u"應繳稅額爲:%f 元人民幣。" % (sales * rate)

8.rem

# -*- coding:utf-8 -*-
def geometry():
    prompt = raw_input("計算正方形面積請輸入1,立方體體積請輸入2,圓面積請輸入3,球體積請輸入4".decode("utf-8").encode("gbk"))
    if prompt == "1":
        side = raw_input("請輸入邊長".decode("utf-8").encode("gbk"))
        print u"該正方形的面積是:%d" % (int(side) ** 2)
    elif prompt == "2":
        side = raw_input("請輸入邊長".decode("utf-8").encode("gbk"))
        print u"該正方體的體積是:%d" % (int(side) ** 3)
    elif prompt == "3":
        radius = raw_input("請輸入半徑".decode("utf-8").encode("gbk"))
        print u"該圓的面積是:%s" % (float(radius) ** 2 * 3.14)
    elif prompt == "4":
        radius = raw_input("請輸入半徑".decode("utf-8").encode("gbk"))
        print u"該球的體積是:%s" % (float(radius) ** 3 * 4 * 3.14 / 3)

geometry()

9.

a.進制問題  python中0開頭的數字表示八進制的數字

b.56l + 78l 表明的是長整數的和

10.

# -*- coding:utf-8 -*-

from __future__ import division

def F_to_C(F):
    print u"%.2f°F等於%.2f攝氏度℃"  % (F, (F - 32) * 5 / 9)

11.(1)

#Even number
for i in range(0, 21):
    if not i % 2:
        print i,       
print

#Odd number
for i in range(0,21):
    if i % 2:
        print i,

(2)對2進行取餘運算,餘數0是偶數,不然是奇數

(3)

# -*- coding:utf-8 -*-

def judge_divide(x,y):
    if x % y == 0:
        print u"%d能夠被%d整除!" % (x,y)
    else:
        print u"%d不能被%d整除!" % (x,y)

def judge():
    number1 = int(raw_input("請輸入第一個整數".decode("utf-8").encode("gbk")))
    number2 = int(raw_input("請輸入第二個整數".decode("utf-8").encode("gbk")))
    if number1 < number2:
        judge_divide(number2,number1)
    else:
        judge_divide(number1,number2)

judge()

12.

# -*- coding:utf-8 -*-
import sys
print sys.maxint

print -sys.maxint - 1

print sys.float_info.max

print sys.float_info.min

print sys.long_info

13.

# -*- coding:utf-8 -*-

time = raw_input("請輸入時間,英文冒號:前爲小時數,英文冒號:後爲分鐘數".decode("utf-8").encode("gbk"))
hour = int(time.split(":")[0])
minute = int(time.split(":")[1])

print u"%d:%d等於%d分鐘。" % (hour, minute,hour * 60 + minute)

14.

# -*- coding:utf-8 -*-

def Annual_return_rate(rate):
    per_day_rate = rate / 365.0
    investment = 1
    interest = round(1 * (1 + per_day_rate) ** 365 - 1, 4)
    print u"年回報率爲: ",interest * 100,"%"

15.

# -*- coding:utf-8 -*-

def greatest_common_divisor(x, y):
    divisor = min(x, y)
    while divisor >= 1:
        if not x % divisor and not y % divisor:
            print u"%d和%d的最大公約數是%d。" % (x, y, divisor)
            break
        else:
            divisor -= 1

def least_common_multiple(x, y):
    multiple = max(x, y)
    while multiple <= x * y:
        if multiple % x == 0 and multiple % y == 0:
            print u"%d和%d的最小公倍數是%d。" % (x, y, multiple)
            break
        else:
            multiple += 1

16.

# -*- coding:utf-8 -*-

def Payment(balance = 100, monthly_payment = 16.13):
        
    month, remain = divmod(balance, monthly_payment)
    
    print "\t\tAmount Remaining"
    print "pymt#\t", "Paid\t", "Balance"
    print "-" * 5, "\t", "-" * 5, "\t", "-" * 8
    
    print "0\t$%.2f\t$%.2f" % (0.00, balance)
    for i in range(1, int(month+1)):    
        print i, "\t$%.2f\t$%.2f" % (round(monthly_payment, 2), round(balance - monthly_payment * i, 2))  
    print "%d\t$%.2f\t$0.00" % (month + 1,remain)

17.

# -*- coding:utf-8 -*-

import random

N = random.randint(2,100)
i = 1
random_list1 = []
while i <= N:
    random_list1.append(random.randint(0,2 ** 31 - 1))
    i += 1

h = 1
N2 = random.randint(1,100)
random_list2 = []
while h <= N2:
    random_list2.append(random.choice(random_list1))
    h += 1

print sorted(random_list2)
相關文章
相關標籤/搜索