Python核心编程2第五章课后练习
5-1 整型,讲讲python普通整型与长整型区别
python整形一共有三种:布尔型,长整型和标准整型。普通整型与长整型的区别在于标准整形的取值范围是-2^31到2^31-1,长整型所能表达的数值与机器自身的内存有关。
5-2 定义一个函数,用于两个数相乘,并调用这个函数
#!/usr/bin/env python def Multiply(number1,number2): return number1*number2
if __name__=="__main__":
number1 =input("please enter the number1:")
number2 =input("please enter the number2:")
print Multiply(number1,number2)
5-3 标准类型运算符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分
成绩(A-F)。
A: 90–100
B: 80–89
C: 70–79
D: 60–69
F: <60
(以下脚本,最好在增加对输入数据的判断!!!!!)
#!/usr/bin/env python
def score(number):
number=number/10
if number==9|number==10:
return 'A'
if number==8:
return 'B'
if number==7:
return 'C'
if number==6:
return 'D'
else:
return 'F'
if __name__=="__main__":
number=input("please enter the number:")
print score(number)
一个闰年就是指它可以被 4 整除,但不能被 100 整除, 或者它既可以被400整(我觉得既可以被4整除又可以被100整除又问题,这样1900年什么的都是闰年了)
除。比如 1992,1996 和 2000 年是闰年,但 1967 和 1900 则不是闰年。下一个是闰年的整世
纪是 2400 年。
#!/usr/bin/env python
def isleapyear(year):
if (year%4==0 and year%100 !=0)or(year%4==0 and year%400==0):
return "%d is a leap year"%year
else:
return "%d is not a leap year"%year
if __name__=="__main__":
year=input("please enter the year:")
print isleapyear(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/env python
def changecoin(number):
result=[]
meifen=[25,10,5]
for i in meifen:
result.append(number/i)
number=number%i
result.append(number)
return "25 Cent is %d,10 Cent is %d,5 Cent is %d,1 Cent is %d"%(result[0],result[1],result[2],result[3])
if __name__=="__main__":
number=input("please enter the number:")
print changecoin(number)
5-6 算数。写一个计算机程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1 操作符 N2。其中N1和N2为整型或浮点型,操作符可以是+、-、*、/、%、**、分别表示加法、减法、乘法、整型除、取余和幂运算。计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法split(),但不可以使用内建函数eval()。
#!/usr/bin/env python
def calculator(number1,i,number2):
if i=='+':
return number1+number2
if i=='-':
return number1-number2
if i=='*':
return number1*number2
if i=='/':
return number1/number2
if i=='%':
return number1%number2
if i=='**':
return number1**number2
caozuo=['+','-','**','/','%','*']
string =raw_input("please enter the string:")
for obj in caozuo:
if string.find(obj)>-1 and string.count(obj)<2:
number =string.split(obj)
list =[]
for i in number:
list.append(i)
number1=int(list[0])
i=obj
number2=int(list[1])
print calculator(number1,i,number2)
#!/usr/bin/env python
def tax(number):
return number*0.8
if __name__=="__main__":
number=input("Please enter the number:")
print tax(number)
#!/usr/bin/env python
import math
def Square_and_cube(length):
print "The area of the square is %d"%pow(length,2)
print "The volume of a cube is %d"%pow(length,3)
def Circle_and_sphere(length):
print "The area of the Circle is %d"%pow(length,2)*math.pi
print "The volume of a sphere is %d"%pow(length,3)*math.pi*4/3 if __name__=="__main__":
print """
(1)Calculate square and cube
(2)Calculate Circle and sphere
(3)exit()
"""
length=input("please enter the length:")
choice=input("please make the choice number:")
if choice==1:
Square_and_cube(length)
if choice==2:
Circle_and_sphere(length)
if choice==3:
exit
5–9. 数值形式 回答下面关于数值格式的问题:
(a) 为什么下面的例子里 17+32 等于 49, 而 017+32 等于 47, 017+032 等于 41?
17+32均为十进制数值相加:49
017+32为八进制数加十进制数:15+32=47
017+032均为两个八进制数相加:15+26=41
(b)为什么下面这个表达式我们得到的结果是 134L 而不是 1342 ?
两个长整型数相加,l与数字1相似,提倡长整型用大写L
5-10 转换。写一对函数来进行华氏度到摄氏度的转换。转换公式为C=(F-32)*(5/9)应该在这个练习中使用真正的除法,否则你会得到不正确的结果
#!/usr/bin/env python
from __future__ import division
def celcius(F):
C=F-32*(5/9)
return C
if __name__=="__main__":
F=input("please enter the Fahrenheit degree:")
print celcius(F)
#!/usr/bin/env python
for i in range(21):
if i%2==0:
print i
#!/usr/bin/env python
for i in range(21):
if i%2==1:
print i
#!/usr/bin/env python
def div(num1,num2):
if num1%num2==0:
return "True"
else:
return "False"
if __name__=="__main__":
num1=input("please type the num1:")
num2=input("please type the num2:")
print "%d divided %d is %s"%(num1,num2,div(num1,num2))
5-12 系统限制。写一段脚本确认一下你的 Python 所能处理的整数,长整数,浮点数和复数的范围
print sys.maxint
print -sys.maxint-1
print sys.float_info
print sys.long_info
5-13 转换。写一个函数把由小时和分钟表示的时间转换为只用分钟表示的时间
#!/usr/bin/env python
def time(h,t):
h=int(h)
t=int(t)
t=h*60+t
print "The minutes is",t
if __name__=="__main__":
s=raw_input("please input the time in HH:MM...\n")
s=s.split(":")
time(s[0],s[1])
5-14 银行利息。写一个函数,以定期存款利率为参数,假定该账户每日计算复利,请计算返回年回报率。
#!/usr/bin/env python
day_rate=float(raw_input("please type the day rate:\n"))
year_rate=(1+day_rate)**365-1
print "Annual return is %f"%year_rate
5-15 最大公约数和最小公倍数。请计算两个整型的最大公约数和最小公倍数。
#!/usr/bin/env python
def gcd(num1,num2):
i=1
while True:
i+=1
if (i%num1==0)&(i%num2==0):
break
return "the gcd is %d"%i
def lcm(num1,num2):
i=max(num1,num2)
while True:
i-=1
if (num1%i==0)&(num2%i==0):
break
return "the lcm is %d"%i
if __name__=="__main__":
num1=input("please enter the number1:")
num2=input("please enter the number2:")
print gcd(num1,num2)
print lcm(num1,num2)
#!/usr/bin/env python
def pay(paid,balance):
print "Pymt# Paid Balance"
print "----- ----- ------"
i=0
b=balance
while(balance>paid):
balance=balance - paid
i+=1
print " %d $%f $%f"%(i,paid,balance)
i+=1
print" %d $%f $%f"%(i,balance,0) if __name__=="__main__":
balance=raw_input("please enter the balance:")
paid=raw_input("please enter the paid:")
balance=float(balance)
paid=float(paid)
pay(paid,balance)
5-17 随机数。熟读随机数模块然后解下面的题: 生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 < N <= 100), (0 <= n <= 231 -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随 机数出来, 对它们排序,然后显示这个子集。
#!/usr/bin/python
import random
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
Python核心编程2第五章课后练习的更多相关文章
- 《Python核心编程》 第五章 数字 - 课后习题
课后习题 5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5- ...
- Python核心编程2第四章课后练习
4-1 Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下. 身份:对象的唯一标识 类型 :对象的类型决定了该对象可以保存什么类型的值 ...
- 《Python核心编程》第五章:数字
PS:[笔记+代码+图片]在GitHub上持续更新,欢迎star:https://github.com/gdouchufu/Core-Python-Programming 本章大纲 介绍Python支 ...
- Python核心编程2第三章课后练习
1. 标识符.为什么Python 中不需要变量名和变量类型声明? Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程.每个变量在内存中创建,都包括变量的标识,名称和数据这些信息.每 ...
- Python核心编程2第六章课后练习
6-1 字符串 .string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? #!/usr/bin/env python def contain(str1 ...
- python核心编程2 第五章 练习
5-2 运算符(a) 写一个函数,计算并返回两个数的乘积(b) 写一段代码调用这个函数,并显示它的结果 def product(x, y): return x * y if __name__ == ' ...
- 《Python核心编程》 第六章 序列 - 课后习题
课后习题 6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:成员关系操作符(in.not in) import string ...
- 《Python核心编程》 第四章 Python对象- 课后习题
练习 4-1. Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下. 答:身份.类型和值: 身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到. 类型:对象的 ...
- python核心编程2 第十一章 练习
11-2 函数.结合你对练习5-2的解,以便你创建一个带一对相同数字并同时返回它们之和以及产物的结合函数. multiply = lambda x, y: x * y if __name__ == ' ...
随机推荐
- 前端学习-使用JS库Leaflet.js生成世界地图并获取标注地址经纬度。
介绍:Leaflet是一个开源的JavaScript库,对移动端友好且对地图有很好的交互性. 大小仅仅只有 33 KB, 同时具有大多数地图所需要的特点. Leaflet设计的非常简单易懂, 同时具有 ...
- phpstudy配置虚拟主机
配置 phpstudy 虚拟主机 1在httpd.conf中 把#Include conf/extra/httpd-vhosts.conf前面的#去掉 2在站点域名管理 添加 要配置的 虚拟主机 添 ...
- (7/18)重学Standford_iOS7开发_视图、绘制、手势识别_课程笔记
第七课: 1.View 一般来说,视图是一个构造块,代表屏幕上一块矩形区域,定义了一个坐标空间,并在其中绘制及添加触控事件等. ①视图的层级关系 一个视图只能有一个父视图,可以有多个子视图 - ( - ...
- hadoop ssh无密码登陆
VM DHCP蛋疼了,这次整个static... scp
- javamail发送邮件的简单实例(转)
今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 注意:要先导入javamail的mail.jar ...
- typename使用在模板中区分static成员和类型
16.19 编写函数,接受一个容器的引用,打印容器中的元素,使用容器的size_type和size成员来控制打印元素的循环. 16.20 重写上一题的函数,使用begin和end返回的迭代器来控制循环 ...
- LabVIEW系列——错误簇的传递
从以下示例可以得出结论: 1.图一出现的三种错误,分别位于打开/创建/替换文件函数,写入文本文件函数,读取文件文件函数.说明三个函数都被运行了. 2.图二只出现了一种错误,位于打开/创建/替换文件函数 ...
- Qt学习之路(34): 国际化(下)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245063 上次 ...
- UDP 校检和和算法
#include <Winsock2.h> #include <stdio.h> #define IP_HDRINCL 2 // Header is included with ...
- 启动hadoop,报错Error JAVA_HOME is not set and could not be found
报如错误:JAVA_HOME is not set and could not be found,可能是因为JAVA_HOME环境没配置正确,还有一种情况是即使各结点都正确地配置了JAVA_HOME, ...