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 |