练习9:复利
tax_rate=0.04
money1=float(input())
money2=money1*(1+tax_rate)
money3=money2*(1+tax_rate)
print("第一年的余额是 %.2f ,第二年的余额是 %.2f ,第三年的余额是 %.2f" % (money1,money2,money3))
练习10:算术
from math import log10
a=10 b=20
print("The base 10 logarithm of",a,"is",log10(a))
print(a,"^",b,"is",a**b)
练习84:抛硬币
import random
randomTime = int(input("请输入模拟次数"))
for i in range(1,randomTime+1):
j=["a","b","c"]
count = 0
while(not(j[0]==j[1] and j[1]==j[2])):
n=count % 3
if(random.randint(0,1)==0):
j[n] = "H"
else:
j[n] = "T"
print(j[n])
count=count+1
else:
print("(%d flips)" % count)
练习91:从公历日期到序数日期 && 练习92:从序数日期到公历日期
days = [31,28,31,30,31,30,31,31,30,31,30,31] #全局变量 记录月份
daysPerYear = 365
def ifRunNian(year): #是否闰年判断 并赋值
if (year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)):
days[1] = 29
return True
else:
days[1] = 28
return False
def ordinalDate(year,month,day): #已知公历求序数
date = 0
ifRunNian(year)
for i in range(0,month-1):
date+=days[i]
date+=day
return date
def lunarDate(year,date): #已知序数求公历
day = date
ifRunNian(year)
for i in range(0, len(days)):
if (day > 0):
day -= days[i]
else:
break
if (day < 0): day += days[i - 1]
month = i
return (month,day)
def main():
#91题
'''year = int(input("输入年份:"))
month = int(input("输入月份:"))
day = int(input("输入日期:"))
date = ordinalDate(year,month,day)
print("%d年%d月%d日对应的序数日期为%d" % (year, month, day, date))'''
#92题
year = int(input("输入年份:"))
date = int(input("输入序数日期:"))
(month,day) = lunarDate(year,date)
print("公历日期为%d年%d月%d日" % (year,month,day))
targetDate = date+int(input("输入保质期:"))
targetDate = targetDate % daysPerYear
if(targetDate % daysPerYear == 1): #目标日期为下一年时 年份+1
targetYear = year+1
else:
targetYear = year
(targetMonth, targetDay) = lunarDate(targetYear, targetDate)
print("预计日期为%d年%d月%d日" % (targetYear, targetMonth, targetDay))