Python编程练习与解答 部分答案

这篇文章包含几个Python编程练习,涉及复利计算,如金钱在税率影响下的增长;算术操作,如对数计算和指数运算;以及日期转换,包括从公历到序数日期和反之的转换,同时考虑了闰年的处理。此外,还有一个模拟抛硬币的随机过程。
摘要由CSDN通过智能技术生成

练习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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考上就吃一百个肉松小贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值