1.温度转换
题目描述
输入摄氏温度(华氏温度),输出对应的华氏温度(摄氏温度)。这里采用82F表示华氏82度,采用28C表示摄氏28度,实数部分是温度值。
转换算法
C=(F-32)/1.8
F=C*1.8+32
其中,C表示摄氏温度,F表示华氏温度。
代码
#TempConvert.py
TempStr=input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:#根据最后一个字符,判断是否为华氏温度
C=(eval(TempStr[0:-1])-32)/1.8
print("转换后的温度是{:.2f}C".format(C))#输出摄氏温度,保留最后两位小数
elif TempStr[-1] in ['C','c']:#根据最后一个字符,判断是否为摄氏温度
F=1.8*eval(TempStr[0:-1])+32
print("转换后的温度是{:.2f}F".format(F))#输出华氏温度,保留最后两位小数
else:#其他情况
print("输入格式错误")
示例
2.长度转换
题目描述
参考温度转换实例编制一个长度转换程序。
假定1米=3尺
代码
LengthStr = input("请输入带有单位的长度值:")
if LengthStr[-1] == "米":
inch = eval(LengthStr[0:-1])/3.33
print("转换后的长度为:{:.2f}尺".format(inch))
elif LengthStr[-1] == "尺":
meter = eval(LengthStr[0:-1])*3.33
print("转换后的长度为:{:.2f}米".format(meter))
else:
print("输入格式错误")
输出结果:
3.货币间币值转换
题目描述:
人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用¥符号或RMB表示,美元采用$或USD表示,符号和数值之间没有空格。
注意:
人民币和美元间符号在转换中要对等,¥和$相互对应,RMB和USD相互对应。
运行示例:
示例 | 输入 | 输出 |
1 | $128.00 | ¥867.84 |
2 | ¥12.9 | $1.90 |
3 | RMB123 | USD18.14 |
4 | USD20 | RMB135.60 |
代码:
# 货币间币值转换
MoneyStr = input()
if MoneyStr[0:3] == "RMB":
money = eval(MoneyStr[3:])/6.78
print("USD{:.2f}".format(money))
elif MoneyStr[0] == "¥":
money = eval(MoneyStr[1:])/6.78
print("${:.2f}".format(money))
elif MoneyStr[0:3] == "USD":
money = eval(MoneyStr[3:])*6.78
print("RMB{:.2f}".format(money))
elif MoneyStr[0] == "$":
money = eval(MoneyStr[1:])*6.78
print("¥{:.2f}".format(money))
else:
print("输入格式错误")
4.数字组合
题目描述:
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析 :遍历全部可能,找到符合条件的数字。这里使用三重循环和if语句来进行实现。
代码实现:
"""
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
"""
nums = [] # 定义一个空列表,存储符合要求的数字
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and j != k and k != i:
num = i * 100 + j * 10 + k
nums.append(num)
print("共有{}个满足条件的数字.".format(len(nums)))
print("满足条件的数字为:{}".format(nums))
输出结果为:
共有24个满足条件的数字.
满足条件的数字为:[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
5. “个税计算”
题目描述:
企业发放的奖金根据利润提成。
- 利润低于或等于10万元时,奖金可提10%;
- 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
- 20万到40万之间时,高于20万元的部分,可提成5%;
- 40万到60万之间时高于40万元的部分,可提成3%;
- 60万到100万之间时,高于60万元的部分,可提成1.5%;
- 高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润,求应发放奖金总数?
程序分析 :使用多分支结构进行实现。
代码实现:
"""
个税计算。
"""
profit = eval(input("请输入月利润:"))
bonus = 0
if profit <= 10:
bonus = profit * 0.1
elif 10 < profit <= 20:
bonus = 10 * 0.1 + (profit - 10) * 0.075
elif 20 < profit <= 40:
bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05
elif 40 < profit <= 60:
bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03
elif 60 < profit <= 100:
bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015
elif profit > 100:
bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit - 100) * 0.01
print("奖金为:{:.2f}万元".format(bonus))
6. 完全平方数
题目描述:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
完全平方指用一个整数乘以自己例如1×1,2×2,3×3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。完全平方数是非负数,而一个完全平方数的项有两个。
代码实现:
"""
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
"""
def is_perfect_square(n):
"""判断一个数是否为完全平方数"""
root = int(n ** 0.5)
return root * root == n
# 假设整数n的范围,可以根据实际情况调整
n_min = 0 # 可以是任何可能的最小值
n_max = 1000 # 可以是任何可能的最大值
# 遍历可能的整数n
for n in range(n_min, n_max + 1):
# 检查n+100是否为完全平方数
if is_perfect_square(n + 100):
# 检查n+268是否为完全平方数
if is_perfect_square(n + 268):
# 如果都满足,打印结果并退出循环
print(f"满足条件的整数n是:{n}")
break # 假设只有一个解,找到后退出循环
else:
print("在给定范围内没有找到满足条件的整数n。")
输出结果为:
满足条件的整数n是:21
7. 高空抛物
题目描述:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
题目分析:
这个问题可以通过一个循环来解决,其中每次迭代都模拟球的一次落下和反弹。
100+50*2+25*2+12.5*2+...
代码实现:
# 初始化变量
altitude = 100 # 初始高度
total_distance = 100 # 总距离
n = 10 # 总共要计算的落地次数
# 循环计算每次落地和反弹的距离
for i in range(1, n):
# 总距离 = 落地距离(高度) +反弹距离
total_distance += altitude
# 落地距离 = 反弹距离
altitude /= 2
# 第10次落地时,球不会再次反弹,所以不需要再加反弹高度
print(f"第{n}次落地时,球共经过 {total_distance} 米。")
# 第10次反弹的高度是前一次的一半
print(f"第{n}次反弹的高度是 {altitude / 2} 米。")
输出结果为:
8. 比赛对手
题目描述:
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
代码实现:
a = {'x', 'y', 'z'}
b = {'x', 'y', 'z'}
c = {'x', 'y', 'z'}
c -= {'x', 'z'} # c不和 x,z比
a -= set('x') # a不和 x比
for i in a:
for j in b:
for k in c:
if len({i, j, k}) == 3:
print('a:%s,b:%s,c:%s' % (i, j, k))
输出结果为:a:z,b:x,c:y