python核心编程第五章课后习题

答案自己做的,如果有问题欢迎大家提出来。


5-1   整型。讲讲python普通整型和长整型的区别。

长整型是普通整型的超集,python中的长整型类型能表达的数值仅仅与你机器支持的虚拟内存大小有关。


5-2  操作符。a)写一个函数计算并返回两个数的和。b)写一段代码调用这个函数,并显示他的结果。

def pro(a, b) :
    return a * b

a = eval(input('a ='))
b = eval(input('b ='))

print(pro(a, b))

5-3 标准类型操作符。写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)

result = input("input your grade:")

if result>90 and result < 100:
    print "A"
elif result>80 and result<89:
    print "B"
elif result>70 and result<79:
    print "C"
elif result>60 and result<69:
    print "D"
else:
    print "F"

5-4 取余。判断给定年份是否是闰年。使用下面公式:

一个闰年就是指它可以被4整除,但不能被100整除,或者它既可以被4又可以被100整除。比如1992年、1996年和2000年是闰年,但1967年和1900年则不是闰年。下一个是闰年的整世纪是2400年。

year = int(input('input your year:'))

if year % 4 == 0 and year % 100 != 0 :
    print('%d is leap year'%year)
elif year % 400 == 0 :
    print('%d is leap year'%year)
else:
    print('%d is not leap year'%year)


5-5 取余。取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分,5美分,10美分,25美分4中,1美元等于100美分。举例来说, 76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都是不符合要求的。
if a > 1 :
    print('money is too large')
if 0 < a <1 :
    temp = int(a * 100)
    (cent25, temp) = divmod(temp, 25)
    print('%d 25 coins'% cent25)
if temp > 0 :
    (cent10, temp) = divmod(temp, 10)
    print('%d 10 coins'% cent10)
if temp > 0 :
    (cent5, temp) = divmod(temp, 5)
    print('%d 5 coins'% cent5)
if temp > 0 :
    (cent, temp) = divmod(temp, 1)
    print('%d 1 coins'% cent)

5-6 算术。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2。其中N1和N2为整型或浮点型,操作符可以是+、 -、*、/、%、**,分别表示加法、减法、乘法、整型除、取余和幂运算。计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法 split(),但不可以使用内建函数eval()。

def operator(str) :
    if str.find('+') >= 0:
        return '+'
    elif str.find('-') >= 0:
        return '-'
    elif str.find('**') >= 0:
        return '**'
    elif str.find('/') >= 0:
        return '/'
    elif str.find('%') >= 0:
        return '%'
    elif str.find('*') >= 0:
        return '*'
    else :
        return

epr = input('expression:')
op = operator(epr)
num = epr.split(op)
num1 = float(num[0])
num2 = float(num[1])
del num

if op == '+' :
    print(num1 + num2)
elif op == '-' :
    print(num1 - num2)
elif op == '*' :
    print(num1 * num2)
elif op == '/' :
    print(num1 / num2)
elif op == '%' :
    print(num1 % num2)
elif op == '**' :
    print(num1 ** num2)
else :
    print('error')

5-7 营业税。随意取一个商品的金额,然后根据当地营业税额度计算应该缴纳的营业税。

to = input('turnver :')
rate = input('rate :')
sum = to * rate
print(sum)
自己理解应该是这样 2333333333333.。。。


5-8 几何计算面积和体积。

a)正方形和立方体

b)圆和球

def mianji(a):
    s=a*a
    return s
bianchang = input('请输入边长:')
res = mianji(bianchang)
print'面积:%d'%res
#正方形体积
def tiji(b):
    t=b*b*b
    return t
bianchang2 = float(input('请输入边长:'))
res2 = tiji(bianchang2)
print '体积:%f'%res2
#圆面积
import math
def yuanT(r):
    y = math.pi*r*r
    return y
bianchang3 = float(input('请输入边长:'))
res3  = yuanT(bianchang3)
print '圆的面积:%f'%res3

#球体积
import math
def qiuT(r2):
    y = math.pi*r*r*r*3/4
    return y
bianchang4 = float(input('请输入边长:'))
res4 = yuanT(bianchang4)
print '球的体积:%f'%res4


5-9 (a) 为什么下面的例子里 17+32 等于 49, 而 017+32 等于 47, 017+032 等于 41? 
>>> 17 + 32 
Edit By Vheavens 
Edit By Vheavens 
49 
>>> 017+ 32 
47 
>>> 017 + 032 
41
答:17 + 32 都是10进制

017 + 032 都是八进制 python解释器默认十进制

017是八进制 32是10进制

(b)为什么下面这个表达式我们得到的结果是 134L 而不是 1342 ? 
>>> 56l + 78l 
134L


 答:已经加了后缀L,会强制类型转换

先写这么多 以后补。。。。。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值