5-1 整形 讲讲 Python 普通整型和长整型的区别
略
5-2 运算符
(a) 写一个函数,计算并返回两个数的乘积
(b) 写一段代码调用这个函数,并显示它的结果
"""计算并返回两个数的乘积"""
def product(num1,num2):
return num1 * num2
if __name__ == '__main__':
print(product(1,2))
5-3 标准类型运算符.
写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分
成绩(A-F)。
A: 90–100
B: 80–89
C: 70–79
D: 60–69
F: <60
"""根据用户输入的分数判断分数等级"""
def grade(score):
if score < 60:
return "F"
elif score < 70:
return "D"
elif score < 80:
return "C"
elif score < 90:
return "B"
else:
return "A"
if __name__ == '__main__':
score = int(input("请输入您的分数:"))
print(grade(score))
5-4 取余。
判断给定年份是否是闰年。使用下面的公式: 一个闰年就是指它可以被 4 整除,但不能被 100 整除, 或者它既可以被 4 又可以被 100 整 除。比如 1992,1996 和 2000 年是闰年,但 1967 和 1900 则不是闰年。下一个是闰年的整世 纪是 2400 年。
"""判断用户给定的年份是否是闰年"""
def leap(year):
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return "闰年"
else:
return "平年"
if __name__ == '__main__':
year_in = int(input("请输入年份"))
print(leap(year_in))
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 美分这样的结果都是不符合要求的。
while True:
money = float(input("请输入你的钱数"))
if money < 1 or money > 99:
break
m25 = money / 25
money = money - 25 * m25
m10 = money / 10
money = money - 10 * m10
m5 = money / 5
money = money - 5 * m5
m1 = money
print("25美分:%d \n 10美分:%d \n 5美分:%d \n 1美分:%d"%(m25,m10,m5,m1))
break
5-6 算术。
写一个计算器程序 你的代码可以接受这样的表达式,两个操作数加一个运算符: N1 运算符 N2. 其中 N1 和 N2 为整数或浮点数,运算符可以是+, -, *, /, %, ** 分别表示 加法,减法, 乘法, 整数除,取余和幂运算。计算这个表达式的结果,然后显示出来。提示: 可以使用字符串方法 split(),但不可以使用内建函数 eval().
def counter(num1,num2,operator):
if operator == '+':
return num1 + num2
elif operator == '-':
return num1 - num2
elif operator == '*':
return num1 * num2
elif operator == '/':
return num1 / num2
elif operator == '%':
return num1 % num2
if __name__ == '__main__':
inNum1 = float(input("请输入第一个数字:"))
inNum2 = float(input("请输入第二个数字:"))
inOper = input("请输入操作符:")
print(counter(inNum1,inNum2,inOper))
5-7 营业税。
随意取一个商品金额,然后根据当地营业税额度计算应该交纳的营业税。
"""计算营业额"""
price = float(input("请输入您的营业收入:"))
print("你需要缴纳的营业税为%10.2f"%round(price * 0.2,2))
5-8 几何。
计算面积和体积:
(a) 正方形 和 立方体 (b) 圆 和 球
"""计算营业额"""
price = float(input("请输入您的营业收入:"))
print("你需要缴纳的营业税为%10.2f"%round(price * 0.2,2))
5–9. 数值形式 回答下面关于数值格式的问题:
(a) 为什么下面的例子里 17+32 等于 49, 而 017+32 等于 47, 017+032 等于 41?
>>> 17 + 32
49
>>> 017+ 32
47
>>> 017 + 032
41
017和032为8进制形式转换成十进制分别为26和5
(b)为什么下面这个表达式我们得到的结果是 134L 而不是 1342 ?
>>> 56l + 78l
134L
因为这两数字都是长整型
5-10 转换。写一对函数来进行华氏度到摄氏度的转换。转换公式为 C = (F - 32) * (5 / 9) 应该在这个练习中使用真正的除法, 否则你会得到不正确的结果。
"""华氏度转换成摄氏度"""
def tran(fahre):
degree = (fahre - 32) * (5 / 9)
return degree
if __name__ == '__main__':
userIn = float(input("请输入一个华氏度:"))
print("转换成摄氏度为:%.1f" % tran(userIn))
5-11 取余。
(a) 使用循环和算术运算,求出 0-20 之间的所有偶数
(b) 同上,不过这次输出所有的奇数
(c) 综合 (a) 和 (b), 请问辨别奇数和偶数的简单的方法是什么?
(d) 使用(c)的成果,写一个函数,检测一个整数能否被另一个整数整除。 先要求用户输 入两个数,然后你的函数判断两者是否有整除关系,根据判断结果分别返回 True 和 False;
def even_number(num):
"""接受一个参数,返回从1到这个参数的所有偶数"""
for x in range(1, num + 1):
if x % 2 == 0:
print(x)
def odd_number(num):
"""接收一个参数,返回从0到这个数的所有奇数"""
for x in range(0, num + 1):
if x % 2 != 0:
print(x)
def exact(num1, num2):
"""判断两参数是否能被整除,可以被整除返回True,不可以返回False"""
if num1 % num2 == 0:
return True
else:
return False
if __name__ == '__main__':
even_number(20)
odd_number(20)
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
print(exact(num1,num2))
5-12 系统限制。
写一段脚本确认一下你的 Python 所能处理的整数,长整数,浮点数和复 数的范围。
import sys
print(sys.maxsize) # 整型的取值范围
"""Python3中不存在sys.maxint了,因为int的大小在Python3的版本中不在受限制
"""
print(sys.float_info) # 浮点型的取值范围
"""
int最大值在sys.maxint.
超过这个值会自动转换成long
(只有2里有,3里已经没了,因为这个值并没什么用,超过的反正会自动转换,
还有一个maxsize是collection的最大size还有点用)
long没有范围,仅取决于内存大小
float信息在sys.float_info里complex就是两个float
"""
5-13 转换。
写一个函数把由小时和分钟表示的时间转换为只用分钟表示的时间。
def tranTime(time):
HH,MM = time.split(':',1)
print("转换成分钟为%d"%(int(HH) * 60 + int(MM)))
if __name__ == '__main__':
print("时间格式为,小时:分钟")
time = input("请输入时间:")
tranTime(time)
5-14 银行利息。
写一个函数,以定期存款利率为参数, 假定该账户每日计算复利,请计 算并返回年回报率。
略
5–15. 大公约数和小公倍数。
请计算两个整数的大公约数和小公倍数。
def gcd(num1, num2):
"""求出两个整数的最大公约数"""
# 非递归求法
while (num1 > 0):
num = int(num1)
num1 = int(num2) % num1
num2 = num
return num2
# 递归求法
# if(num1%num2 == 0):
# return num2
# return gcd(num2,num1%num2)
def lcm(num1, num2):
return int(num1) * int(num2) / gcd(num1, num2)
if __name__ == '__main__':
print("最大公约数:",gcd(24, 60))
print("最小公倍数",lcm(10,20))
5-16 家庭财务。
给定一个初始金额和月开销数, 使用循环,确定剩下的金额和当月的支 出数, 包括后的支出数。 Payment() 函数会用到初始金额和月额度, 输出结果应该类似下 面的格式(例子中的数字仅用于演示):
Enter opening balance:100.00
Enter monthly payment: 16.13
Amount Remaining
Pymt# Paid Balance
----- ------ ---------
0 $ 0.00 $100.00
1 $16.13 $ 83.87
2 $16.13 $ 67.74
3 $16.13 $ 51.61
4 $16.13 $ 35.48
5 $16.13 $ 19.35
6 $16.13 $ 3.22
7 $ 3.22 $ 0.0
def payment(balance,paid):
print("剩下的金额")
print("付款# 已付款 余额")
print("----- ---- ------")
b = balance
m = int(b / paid)
b = b - m * paid
while (b > 0):
m += 1
b -= paid
print("%d%11.2f%8.2f"%(0,0.00,balance))
for month in range(1,m):
print("%d%11.2f%8.2f"%(month,paid,balance-month*paid))
print("%d%11.2f%8.2f"%(m,(balance-paid * (m - 1)),0))
if __name__ == '__main__':
balance = float(input("请输入月初金额"))
paid = float(input("请输入月开销数"))
payment(balance,paid)
友情链接