Python核心编程学习笔记(八)——第五章习题

第五章习题

        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)


        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 美分这样的结果都是不符合要求的。

#!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)




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值