python每日一练

##题目

  1. 任意输入一个年月日,求得并输出这天是该年的第几天?
  2. 任意输入一个正整数,逆序输出,求得并输出它是一个几位数?
  3. 输出10000以内所有的完全数,(所谓完全数是指:它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。)       

##涉及的知识解析

  1.  第一题涉及到了平年和闰年的有关知识                                                                                   

    闰年                                                                                                                                                   通常的解释是说一年有多少天多少小时多少分钟,取整数365天后,还有多余的,累积达到一天(24小时)后,就多加一天,多加一天的这一年就是闰年。这个解释只是告诉大家怎么计算,是人为设置的东西。

    最根本的原因是:地球绕太阳运行的周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365天,比回归年短约0.2422天,所余下的时间约为每四年累积一天,故在第四年的2月末加1天,使当年的时间长度变为366天,这一年就是闰年。现行公历中每400年有97个闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样,每128年就会多算出1天,经过400年就会多算出3天多。因此,每400年中要减少3个闰年。所以公历规定:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的世纪年,即使是4的倍数也不是闰年。

    这就是通常说的:四年一闰,百年不闰,四百年再闰。例如:2000年是闰年,2100年则是平年。 

  2. 因数                                                                                                                                                   约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。在大学之前,"约数"一词所指的一般只限于正约数。约数和倍数都是二元关系的概念,不能孤立地说某个整数是约数或倍数。一个整数的约数是有限的。同时,它可以在特定情况下成为公约数。

##代码

  1. year=int(input("请输入年份:\n"))
    month=int(input("请输入月份:\n"))
    day=int(input("请输入日:\n"))
    rlist=[31,29,31,30,31.30,31,31,30,31,30,31]
    plist=[31,28,31,30,31.30,31,31,30,31,30,31]
    sday=0
    if (year % 4 ==0 and year % 100 != 0) or year %400 == 0:
        for i in range(month):
            sday+=rlist[i]
    else:
         for i in range(month):
            sday+=plist[i]
    print("这天是%d的第%d"%(year,sday))

  2. n_list=input("请输入一个正整数:")
    n=0
    for i in n_list:
        n+=1
    print(n_list[::-1])
    print('输入的是一个%d位数:'%n)
    

  3. a=[]
    for i in range(2,1000):
        for j in range(1,i):
            if i % j == 0:
                a.append(j)
        if sum(a) == i:
            print(f"{i}是完全数,因子包括{a}")#f是格式化字符串的
        a.clear()

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值