文章目录
- 1. 判断闰年
- 2. 今年多少天
- 3. 今天是第几天
- 4. 判断奇偶数
- 5. 计算整数 n 的阶乘
- 6. 判断是否直角三角形
- 7. 判断三角形并计算面积
- 8. 出租车计费
- 9. 一元二次方程求根
- 10. 个税计算器
- 11. 分期付款计算器
- 12. 字符大小写转换
1. 判断闰年
描述
- 写一个程序用于判断用户输入的年份是不是闰年,如果是输出“True”,如果不是输出“False”。
year = int(input())
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(True)
else:
print(False)
2. 今年多少天
描述
- 闰年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
用户输入一个正整数,代表年份,输出该年有多少天?
year = int(input())
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(366)
else:
print(365)
3. 今天是第几天
描述
- 输入年/月/日(用斜杠分隔),输出该日期是这一年的第几天?
year, month, day = map(int, input().split('/'))
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
days[1] = 29
sumDay = sum(days[:month - 1]) + day
print('{}年{}月{}日是{}年第{}天'.format(year, month, day, year, sumDay))
4. 判断奇偶数
描述
- 用户输入一个正整数,判断该数是奇数还是偶数,如果奇数输出odd,偶数则输出even。
number = int(input())
print("odd") if number % 2 == 1 else print("even")
5. 计算整数 n 的阶乘
描述
- 输入一个数值,如果输入的数据为浮点数或者负数,输出”ERROR“,否则计算输入的数的阶乘并输出。
import math
n = eval(input())
if n >= 0 and type(n) == int:
# 计算阶乘的内置函数
print(math.factorial(n))
else:
print("ERROR")
6. 判断是否直角三角形
描述
- 输入三个数a,b,c, 判断能否以它们为三个边长构成直角三角形。若能,输出YES,否则输出NO。
a = eval(input())
b = eval(input())
c = eval(input())
longSide = max(a, b, c)
shortSide = min(a, b, c)
mediumSide = sum([a, b, c]) - longSide - shortSide
if shortSide <= 0 or mediumSide + shortSide <= shortSide:
print("NO")
elif pow(longSide, 2) == pow(shortSide, 2) + pow(mediumSide, 2):
print('YES')
else:
print('NO')
7. 判断三角形并计算面积
描述
- 输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。
a = eval(input())
b = eval(input())
c = eval(input())
if a + b > c and a + c > b and b + c > a:
p = (a + b + c) / 2
area = (p * (p-a) * (p-b) * (p-c)) ** (1/2)
print('YES')
print('{:.2f}'.format(area))
else:
print('NO')
8. 出租车计费
描述
- 某城市出租车计费标准如下:
(1)起步里程为3公里(含3公里),起步费13元;
(2)载客里程3~15公里范围的,除起步费外,超过3公里的部分按基本单价2.3元/公里计算;
(3)载客里程超过15公里的,15公里内的按照(2)计算,超过15公里的基本单价加收50%的费用;
(4)时速低于12公里/小时的慢速行驶时间计入等待时间,每等待1分钟加收1元;
请输入乘车里程(整数)、等待时间,输出车费。
distance, wait = map(int, input().split(','))
if distance <= 3: # 如果行驶里程不超过起步里程
fee = 13 + wait * 1 # 收费为起步价与等待费用之和
elif 3 < distance <= 15: # 如果行驶里程超过起步里程但不超过15公里
fee = 13 + (distance - 3) * 2.3 + wait * 1 # 收费为起步费+超过3公里的部分2.3元/公里+等待费用
else: # 如果行驶里程超过15公里,15公里内的按照(2)计算,超过15公里的基本单价加收50%的费用2.3 * (1 + 0.5)
fee = 13 + (15 - 3) * 2.3 + (distance - 15) * 2.3 * (1 + 0.5) + wait * 1
print("{:.0f}".format(fee)) # 保留0位小数
9. 一元二次方程求根
描述
- 一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解,结果保留2位小数;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留2位小数。
a = float(input())
b = float(input())
c = float(input())
delta = b * b - 4 * a * c
if a == 0 and b != 0:
print('{:.2f}'.format(-c / b))
elif a == 0 and b == 0:
print('Data error!')
elif delta < 0:
print('该方程无实数解')
elif delta ==0:
print('{:.2f}'.format(-b / (2 * a)))
else:
x1 = (-b + delta ** 0.5) / (a * 2)
x2 = (-b - delta ** 0.5) / (a * 2)
if x1 < x2:
x1,x2 = x2,x1
print('{:.2f} {:.2f}'.format(x1, x2))
10. 个税计算器
描述
- 目前我国个人所得税计算公式如下:
应纳个人所得税税额= (工资薪金所得 -五险一金 - 个税免征额)×适用税率-速算扣除数
个税免征额为5000元/月,2018年10月1日起调整后,也就是2018年实行的7级超额累进个人所得税税率表如下:
全月应纳税所得额(含税级距) 税率(%) 速算扣除数
不超过3,000元 3 0
超过3,000元至12,000元的部分 10 210
超过12,000元至25,000元的部分 20 1,410
超过25,000元至35,000元的部分 25 2,660
超过35,000元至55,000元的部分 30 4,410
超过55,000元至80,000元的部分 35 7,160
超过80,000元的部分 45 15,160
请编写一个个税计算器,用户输入为应发工资薪金所得扣除五险一金后的金额,输出应缴税款和实发工资,结果保留小数点后两位。当输入数字小于0时,输出“error”。
s = float(input())
if s < 0:
print("error")
else:
salary = s - 5000
if salary <= 0:
fee, num = 0, 0
elif salary <= 3000:
fee, num = 3, 0
elif salary <= 12000:
fee, num = 10, 210
elif salary <= 25000:
fee, num = 20, 1410
elif salary <= 35000:
fee, num = 25, 2660
elif salary <= 55000:
fee, num = 30, 4410
elif salary <= 80000:
fee, num = 35, 7160
else:
fee, num = 45, 15160
tax = abs(salary * fee / 100 - num)
print("应缴税款{:.2f}元,实发工资{:.2f}元。".format(tax, salary + 5000 - tax))
11. 分期付款计算器
描述
- 购买房屋或大宗家电时,很多时候可以分期付款,还款方式分为等额本息和等额本金两种:
等额本息(Average Capital Plus Interest:ACPI)还款公式:
每月还款额=贷款本金月利率(1+月利率)**总还款月数/((1+月利率)**总还款月数-1)
等额本金(Average Capital:AC)还款公式:
每月还款额=贷款本金/总还款月数+(贷款本金-累计已还款本金)*月利率
设计一个程序计算分期付款时每一期的应还款额,还款方式输入错误时,输出“还款方式输入错误”。
price,month,mode,rate = float(input()),int(input()),input(),float(input())
if mode == 'AC':
ls = []
for i in range(month):
repayment = price / month + (price - price / month * i) * rate
ls.append(round(repayment,2))
print(ls)
elif mode == 'ACPI':
repayment = price * rate * (1 + rate) ** month /((1 + rate) ** month - 1)
print(round(repayment,2))
else:
print('还款方式输入错误')
12. 字符大小写转换
描述
- 输入一个字符串,将其中大写字母转为小写,小写字母转为大写,其他字符保持原样,输出转换后的字符串。
s = input()
for c in s:
if c.islower():
print(c.upper(), end='')
elif c.isupper():
print(c.lower(), end='')
else:
print(c, end='')