python核心编程,第五章练习题

5.1 整型,讲讲python普通整型与长整型区别

    python整形一共有三种:布尔型,长整型和常规整型。普通型和长整型主要的区别是,能表示的数据位数的不同。

5.2 定义一个函数,用于两个数相乘,并调用这个函数

    

>>> def plusTwo(a,b):
return a * b


>>> plusTwo(3,4)
12
>>> plusTwo("adc",4)
'adcadcadcadc'

 5-3 标准类型运算符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分
成绩(A-F)。 
A: 90–100 
B: 80–89 
C: 70–79 
D: 60–69 
F: <60

(以下脚本,最好在增加对输入数据的判断!!!!!)

#!/usr/bin/python


def scoreOut(x):
scoreDic = {9:"A",8:"B",7:"C",6:"D"}
score  = x / 10
for item in sorted(scoreDic.keys(),reverse = True):
    if score >= item:
        out = scoreDic[item]
        break
    else:
        out = "F"
return out


if __name__ == "__main__":
        score = input("Enter your number,Please!")
        print "Your level is: %s" % scoreOut(score)

5-4 取余。判断给定年份是否是闰年。使用下面的公式: 
一个闰年就是指它可以被 4 整除,但不能被 100 整除, 或者它既可以被400整(我觉得既可以被4整除又可以被100整除又问题,这样1900年什么的都是闰年了)
除。比如 1992,1996 和 2000 年是闰年,但 1967 和 1900 则不是闰年。下一个是闰年的整世
纪是 2400 年。

#!/usr/bin/python


def leapYear(x):
        if ((x % 4 == 0 and x % 100 != 0) or (x % 400 == 0)):
                return "Yes"
        else:
                return "No"


if __name__ == "__main__":
        year = input("Enter the year,Please!")
        print "Year %d is leap year: %s" % (year,leapYear(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 美分这样的结果都是不符合要求的。

#!/usr/bin/python


def leastCoin(coinNum):
        #coin 25,10,5,1
        #Get the least coin number
        coin = [25,10,5,1]
        coinN = []
        for item in coin:
                coinN.append(coinNum / item)
                coinNum = coinNum % item
        return coinN


if __name__ == "__main__":
        coin = input("Enter your coin num,Please!")
        coinN = leastCoin(coin)
        print "The least coin for %d is 25:%d,10:%d,5:%d,1:%d" % (coin,coinN[0],coinN[1],coinN[2],coinN[3])


5–9.   数值形式 回答下面关于数值格式的问题: 
 (a) 为什么下面的例子里 17+32 等于 49, 而 017+32 等于 47, 017+032 等于 41? 
>>> 17 + 32 

49

>>> 017+ 32 
47 
>>> 017 + 032 
41 
(b)为什么下面这个表达式我们得到的结果是 134L 而不是 1342 ? 
>>> 56l + 78l (只要有一个数据为长整数,结果均为长整数)
134L

(a)17+32:均为10进制,017+32:八进制017, 017+032:均为8进制

(b)数字类型是长整形而不是字符串


5-12 系统限制。写一段脚本确认一下你的 Python 所能处理的整数,长整数,浮点数和复数的范围

具体可以参见sys+ http://hi.baidu.com/slqbl/item/325325dee0d7a8ee3cc2cbe7


5-17 随机数。熟读随机数模块然后解下面的题: 生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 < N <= 100), (0 <= n <=  231  -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随 机数出来, 对它们排序,然后显示这个子集。

    有关随机数的知识可以参考连接:http://hi.baidu.com/lx58732553/item/a24ef01ee19fc2737b5f2586


#!/usr/bin/python


import random
#random -- the module to generate random number


num = random.randint(1,100)
lst = []
for item in range(num):
        tmp = random.randint(0,(pow(2,31) - 1))
        lst.append(tmp)
lst.sort()
print lst

    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值