当前位置:首页 > IT技术 > 编程语言 > 正文

python练习册(三)
2022-05-31 17:19:13

Hi,小编本周又来送练习题了,编程肯定要多多练习啦!

题目:

输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,
闰年且输入月份大于3时需考虑多加一天。

"""
输入某年某月某日,判断这一天是这一年的第几天?
"""
year=input("请输入年")
month=input("请输入月")
day=input("请输入日")
if year.isdigit() and month.isdigit() and day.isdigit() and len(year)==4 and 0<len(month)<=2 and 0<len(day)<=2:
    year=int(year)
    month=int(month)
    day=int(day)
else:
    print("年月日输入有误,必须输入数字")

all_day=0
if month>1:
    all_day+=31
if month>2:
    if year%4==0 and year%100!=0 or year%400==0:
        all_day+=29
    else:
        all_day+=28
if month>3:
    all_day+=31
if month>4:
    all_day+=30
if month>5:
    all_day+=31
if month>6:
    all_day+=30
if month>7:
    all_day+=31
if month>8:
    all_day+=31
if month>9:
    all_day+=30
if month>10:
    all_day+31
if month>11:
    all_day+=30

all_day+=day
print("{0}年{1}月{2}日是今年的第{3}天".format(year,month,day,all_day))

 

题目:斐波那契数列。

程序分析:黄金一类数列,指数列:1、1、2、3、5、8、13、21、34,可以用递归定义一个函数

def fib(n):
    if n==1 or n==2:
        return 1
    return fib(n-1)+fib(n-2) #递归调用,自己调用自己

print("---------斐波那契数列-------------")
num=input("请输入数字:")
if num.isdigit():
    num=int(num)
else:
    print("输入的不是数字")
    
fib_list=[]
i=1
while i<=num:
    fib_list.append(fib(i))
    i+=1
print(fib_list)

 

题目判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:能被1和它自己整除的数是素数,如果能被其他数字整除,则不是素数

rs=0
for i in range(101,201):
    flag=False
    for j in range(2,i):
        if i%j==0:
            flag=True
print(i)
break if not flag: rs+=1 print("%d是素数"%i) print("素数的个数是%d"%rs)

本文摘自 :https://www.cnblogs.com/

开通会员,享受整站包年服务立即开通 >