Python循环练习【第五周】

Python循环练习

一、数列求和【part one】

在这里插入图片描述

n = eval(input())

t = 1
sum = 0
for i in range(1,n+1):
    sum += i**i*t
    t = t*-1
print(sum)

二、数列求和【part two】

在这里插入图片描述


n = eval(input())

t = 1
sum = 0
i = 1
for k in range(1,n+1):
    if i <= 10:
        sum += k**i*t
    else:
        i = 1
        sum += k**i*t
    i = i+1
    t = t*-1

print(sum)

三、工作日的力量【part one】

在这里插入图片描述

n = eval(input())
cnt = 1.0
for i in range(1,n+1):
    if i % 7 in [6 , 0]:
        cnt = cnt*(1-0.01)
    else:
        cnt = cnt*(1+0.01)
print("{:.2f}".format(cnt))

四、工作日的力量【part two】

在这里插入图片描述

n = eval(input())
def dayup(df):
    dayup = 1
    for i in range(1,365+1) :
        if i%(n+1) in [0]:
            dayup = dayup *(1-0.01)
        else:
            dayup = dayup *(1 + df )
    return dayup
dayfactor = 0.01
while dayup(dayfactor) <37.783:
    dayfactor += 0.0001
print("工作日的努力参数是:{:.3f} ".format(dayfactor))

五、工作日的力量【part three】

在这里插入图片描述

st, ed = eval(input())
x = eval(input())
n = ed - st +1
cnt = 1.0
for i in range(1,n+1):
    if i % 5 in [4 , 0]:
        cnt = cnt*(1-0.001*x)
    else:
        cnt = cnt*(1+0.01*x)
print("努力的成果是:{:.2f}".format(cnt))
if n % 5 in[4,0]:
    print("结束时在休息!")
else:
    print("结束时在工作!")

六、爱因斯坦的阶梯问题

在这里插入图片描述

n = eval(input())
cnt = 0
for i in range(1,n+1):
    if (i%2==1)and(i%3==2)and( i%5==4)and(i%6==5)and(i%7==0) :
        cnt = cnt + 1
print(cnt)
res = 0
for i in range(1,n+1):
    if (i%2==1)and(i%3==2)and( i%5==4)and(i%6==5)and(i%7==0) :
        res = res +1
        if res==cnt:
            print(i,end="")
        else:
            print(i, end=",")

七、打印空心三角形

在这里插入图片描述

n = eval(input())
cnt = 0
for i in range(1, n+1):
    if i == 1:
        print("*")
    elif i == n:
        for j in range(1, n + 1):
            print("*", end="")
    else:
        print("*", end="")
        for j in range(i-2):
            print(" ",end="")
        print("*")
n=eval(input())
for i in range(1,n+1):
    for j in range(1,i+1):
        if j==1 or i==j or i==n:
            print("*",end='')
        else:
            print(end=' ')
    print(end='\n')

八、循环数数

在这里插入图片描述

import math

n = int(input())
sum = 0
for i in range(2,n):
    flag=True
    num=str(i)
    for j in range(len(num)):
        num=num[1:]+num[:1]
        temp=int(num)
        for k in range(2, int(math.sqrt(temp)) + 1):
            if temp % k == 0:
                flag = False
                break
        if flag==False:
            break
    if flag:
        sum += 1
print(sum)

九、查验身份证

在这里插入图片描述

z = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
m = ['1','0','X','9','8','7','6','5','4','3','2']
n = int(input())
t = 0
for i in range(n):
    num = input()
    a = num[:17]
    flag = True
    res = 0
    for j in range(len(a)):
        try:
            res += int(a[j]) * z[j]
        except:
            flag = False
            print(num)
            t = 1
            break
    if flag:
        res = res % 11
        if m[res] != num[-1]:
            print(num)
            t = 1
if t == 0:
    print('All passed')

十、计算日期【part one】

在这里插入图片描述

st = 2007
en = 2022
pt = 1
cnt = 0
s1=[31,28,31,30,31,30,31,31,30,31,30,31]
s2=[31,29,31,30,31,30,31,31,30,31,30,31]
for i in range(st,en+1):
    if i % 4 == 0 and i % 100 != 0 or i % 400 == 0:
        for j in range(12):
            pt += s2[j]
            if pt % 7 == 0 and i > 1900:
                cnt += 1
    else:
        for j in range(12):
            pt += s1[j]
            if pt % 7 == 0 and i > 1900:
                cnt += 1
print(cnt)
print("29")
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值