python核心编程第5章课后练习题
5-2. 操作符
(a)写一个函数,计算并返回两个数的乘积
(b)写一段代码调用这个函数,并显示它的结果
def twoNumRide(a, b):
'计算并返回两个数的乘积'
c = a * b
return c
if __name__ == '__main__':
cj = twoNumRide(2, 3)
print(cj)
----------------------------------------------------------------------------------------------------------------
5-3. 标准类型操作符,写一段脚本,输入一个测验成绩,根据下面标准,输出他们的评分成绩(A-F)
A:90~100 B:80~89 C:70~79 D:60~69 F<60
def queryScore(num):
"""
5-3. 标准类型操作符,写一段脚本,输入一个测验成绩,根据下面标准,输出他们的评分成绩(A-F)
A:90~100 B:80~89 C:70~79 D:60~69 F<60
:param num:
:return:
"""
if 90<= num <= 100:
print('A')
elif 80<= num <=89:
print('B')
elif 70<= num <=79:
print('C')
elif 60<= num <=69:
print('D')
else:
print('F')
if __name__ == '__main__':
score = input('请输入0~100的分数:')
queryScore(int(score))
--------------------------------------------------------------------------------------
5-4 取余。判定给的年份是否是闰年,使用以下公式。
一个闰年就是指它可以被4整除,但是不能被100整除,或者它既可以被4又可以被100整除。
def isLeapYear(year):
"""5-4 取余。判定给的年份是否是闰年,使用以下公式。
一个闰年就是指它可以被4整除,但是不能被100整除,或者它既可以被4又可以被100整除。
"""
if (year%4 == 0 & year%100 !=0) | year%400 == 0:
print('is leap year')
else:
print('not leap year')
if __name__ == '__main__':
isLeapYear(2400)
--------------------------------------------------------------------------------------------
5-5取余。取任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。1美元=100美分。举例来说,0.76美元换算结果因该是:3枚25美分+1枚1美分。类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分 这样的结果都是不符合要求的。
def dollerToCent(doller):
"""
5-5取余。取任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。1美元=100美分。
举例来说,0.76美元换算结果因该是:3枚25美分+1枚1美分。类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分 这样的结果都是不符合要求的。
:param year:
:return:
"""
cent = int(doller *100)
(N25, lft) = divmod(cent, 25)
print('%s $可以换成:' %doller)
if N25 >0 :
print('25美分有 %d 个' % N25)
(N10,lft) = divmod(lft, 10)
if N10 >0:
print('10美分有 %d 个' % N10)
(N5,lft) = divmod(lft, 5)
if N5 >0:
print('5美分有 %d 个' % N5)
(N1,lft) = divmod(lft, 1)
if N1 >0:
print('1美分有 %d 个' % N1)
if __name__ == '__main__':
dollerToCent(0.76)
5-6. 算数。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2.其中N1和N2为整型或浮点型,操作符可以使+、-、*、/、%、**计算这个表达式结果,然后显示出来。提示:可用字符串split(),但不可使用内建函数eval()
def cal(expstr):
"""
5-6. 算数。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:
N1操作符N2.其中N1和N2为整型或浮点型,操作符可以使+、-、*、/、%、**计算这个表达式结果,然后显示出来。提示:可用字符串split(),但不可使用内建函数eval()
:return:
"""
if '+' in expstr:
[a,b] = expstr.split('+',1)
return float(a) + float(b)
elif '-' in expstr:
[a, b] = expstr.split('-', 1)
return float(a) - float(b)
elif '**' in expstr:
[a, b] = expstr.split('**', 1)
return float(a) ** float(b)
elif '/' in expstr:
[a,b] = expstr.split('/', 1)
return float(a) / float(b)
elif '%' in expstr:
[a,b] = expstr.split('%', 1)
return float(a) % float(b)
elif '*' in expstr:
[a,b] = expstr.split('*', 1)
return float(a) * float(b)
else:
print('wrong expstr')
if __name__ == '__main__':
# dollerToCent(0.1)
print(cal('2%4'))
----------------------------------------------------------------------------------------------------------------------------
5-7. 营业税。随意取一个商品金额,然后根据当地营业税额度计算应该交纳的营业税。
def calSalesTax(amount ,tax=0.1):
"""5-7. 营业税。随意取一个商品金额,然后根据当地营业税额度计算应该交纳的营业税。"""
return amount * tax
if __name__ == '__main__':
print(calSalesTax(100, 0.2))
-------------------------------------------------------------------------------------------------------------------------------
5-8.几何:计算面积和体积
def calSquareAndCube(sl):
"""
几何:计算面积和体积
a、正方形和立方体
b、圆和球
:return:
"""
s = sl **2
v = sl **3
ys = math.pi * (sl **2)
qv =(4/3)*math.pi*(sl**3)
return s,v,ys,qv
if __name__ == '__main__':
print(calSquareAndCube(3))
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5-11 取余
求0~20以内所以的奇偶数
def displayEven(num):
"""5-11 取余
求0~20以内所以的奇偶数
"""
i = 0
while i <=num:
if i % 2 == 0:
print('偶数为%d'%i)
else:
pass
i = i+1
(d)
def displayEven(a,b):系统限制。写一段脚本确认一下你的Python所能处理的整型、长整型、浮点型和复数的范围
"""5-11 取余
是否能整除
"""
if a % b == 0:
print('true')
else:
print('false')
--------------------------------------------------------------------------------------------------------------
5-12.
# 5-12.转换。写一个函数把小时和分钟所表示的时间转换成为只用分钟表示的时间。
# 系统限制。写一段脚本确认一下你的Python所能处理的整型、长整型、浮点型和复数的范围
print(sys.float_info)
-------------------------------------------------------------------------------------------------------------
5-13.
def displayTimeMin():最大公约数和最小公倍数。请计算两个整型的最大公约数和最小公倍数。
"""5-13.
转换。写一个函数把小时和分钟所表示的时间转换成为只用分钟表示的时间。
"""
time = input('请输入一个时间,格式如HH:MM')
[h, m]= time.split(':', 1)
min = int(h) *60 + int(m)
return time, min
----------------------------------------------------------------------------------------------------------------
5-15.
def calMaxCommonDivisor(a,b):
"""
5-15.
最大公约数和最小公倍数。请计算两个整型的最大公约数和最小公倍数。
:return:最大公约数和最小公倍数(用更相减损法求最大公约数)
"""
while(1):
if(a > b):
a = a-b
elif(a < b):
b = b -a
else:
return a