Python循环练习
一、数列求和【part one】二、数列求和【part two】三、工作日的力量【part one】四、工作日的力量【part two】五、工作日的力量【part three】六、爱因斯坦的阶梯问题七、打印空心三角形八、循环数数九、查验身份证十、计算日期【part one】
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")



