第五章习题
5-2 运算符
(a) 写一个函数,计算并返回两个数的乘积
(b) 写一段代码调用这个函数,并显示它的结果
#!encoding:utf-8
def mul(factor1, factor2):
return factor1 * factor2
num1 = int(raw_input("请输入第一个乘数:"))
num2 = int(raw_input("请输入第二个乘数:"))
if __name__ == '__main__':
print "乘积为:",mul(num1, num2)
5-3 标准类型运算符
写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。 A: 90–100 B: 80–89 C: 70–79 D: 60–69 F: <60
#!encoding:utf-8
def get_grade(score):
if 90 <= score <= 100:
return 'A'
elif 80 <= score <= 89:
return 'B'
elif 70 <= score <= 79:
return 'C'
elif 60 <= score <= 69:
return 'D'
else:
return 'F'
if __name__ == '__main__':
score = int(raw_input("请输入得分:"))
print get_grade(score)
5-4 取余
判断给定年份是否是闰年。使用下面的公式:一个闰年就是指它可以被 4 整除,但不能被 100 整除, 或者它既可以被 4 又可以被 100 整除。
#!encoding:utf-8
def is_bissextile(year):
if ((year%4 == 0) and (year%100 != 0)) or (year%400 == 0):
return "%d 年是闰年!"% year
else:
return "%d 年不是闰年!" % year
if __name__ == '__main__':
year = int(raw_input("请输入年份:"))
print is_bissextile(year)
取一个任意小于 1 美元的金额,然后计算可以换成最少多少枚硬币。硬币有 1美分,5 美分,10 美分,25 美分四种。1 美元等于 100 美分。举例来说,0.76 美元换算结果应该是 3 枚 25 美分,1 枚 1 美分。类似 76 枚 1 美分,2 枚 25 美分+2 枚 10 美分+1 枚 5 美分+1枚 1 美分这样的结果都是不符合要求的。
#!encoding:utf-8
def change(money):
num_25 = money/25
money %= 25
num_10 = money/10
money %= 10
num_5 = money/5
money %= 5
num_1 = money
print "%d 枚25美分 + %d 枚10美分 + %d 枚5美分 + %d 枚1美分" % (num_25, num_10, num_5, num_1)
if __name__ == '__main__':
money = 100 * float(raw_input("请输入一个小于1的数字(美元):"))
change(money)
#!encoding:utf-8
def change(money):
coin = [25, 10, 5, 1]
num = []
for item in coin:
num.append(money/item)
money %= item
return num
if __name__ == '__main__':
money = 100 * float(raw_input("请输入一个小于1的数字(美元):"))
num = change(money)
print "%d 枚25美分 + %d 枚10美分 + %d 枚5美分 + %d 枚1美分" % (num[0], num[1], num[2], num[3])
5-13 转换
写一个函数把由小时和分钟表示的时间转换为只用分钟表示的时间。
#!encoding:utf-8
def changeTime(H_time):
hours = int(H_time.split(':')[0])
mints = int(H_time.split(':')[0])
M_time = hours * 60 + mints
return M_time
if __name__ == '__main__':
H_time = raw_input("请输入格式为 小时:分钟 的时间:")
mints = changeTime(H_time)
print "总分钟数为:", mints
5-15 最大公约数和最小公倍数
请计算两个整数的最大公约数和最小公倍数。
#!encoding:utf-8
def get_B_Y(num1, num2):
aList = []
if num1 < num2:
num1, num2 = num2, num1
a, b = num1, num2
while b != 0:
a, b = b, a%b
aList.append(num1*num2 / a)
aList.append(a)
return aList
if __name__ == '__main__':
num1 = int(raw_input("请输入第一个数:"))
num2 = int(raw_input("请输入第二个数:"))
aList = get_B_Y(num1, num2)
print "最小公倍数为:%d " % aList[0]
print "最大公约数为:%d " % aList[1]
5-17 随机数
生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 <N <= 100), (0 <= n <= 231 -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随机数出来, 对它们排序,然后显示这个子集。
#!encoding:utf-8
import random
def random_Number_in_order(N, n):
aList = []
for i in range(N):
aList.append(random.randrange(0, n))
aList.sort()
return aList
if __name__ == '__main__':
N = int(raw_input("请输入随机数的个数N(0<N<100):"))
n = int(raw_input("请输入随机数的范围n(0<n<2**32-1):"))
print random_Number_in_order(N, n)