门牌号:str的count函数
自己写的:
if __name__ == '__main__':
n=2020
s=[]
for i in range(1,n+1):
s_n=str(i)
s.append(s_n)
print(s)
new_s="".join(s)
print(new_s)
sum_two=0
for c in new_s:
if c=='2':sum_two +=1
print(sum_two)
看了题解学习到了count函数
import os
import sys
# 请在此输入您的代码
b=0
for i in range (1,2021):
a=str(i).count('2')
b+=a
print(b)
还有这个,多看几次别被绕晕
print("".join([str(i) for i in range(1, 2021)]).count("2"))
0卡片:使用字典计数,sys.exit()函数
# 使用字典来进行计数
a={'0':2021,'1':2021,'2':2021,'3':2021,'4':2021,'5':2021,'6':2021,'7':2021,'8':2021,'9':2021}
for i in range(1,999999):
for j in str(i):
a[j]-=1
if a[j]<0:
print(i-1)
# 程序直接退出,不捕捉异常
sys.exit()
0分数:分数函数Fraction()
from fractions import Fraction
cur = 1
for i in range(1,20):
cur += Fraction(1,2**i)
print(cur)
我还想着先把分子分母先相加最后再整(后遗症) 其实不然
不需要将分子分母分离 只需要设置double型即可->使用cur
fenzi=0
n=20
fenmu=2**(n-1)
for i in range(n):
fenzi += 2**i
print(Fraction(fenzi,fenmu))
不知道如何用python表示分子/分母形式
sum=0
for i in range(20):
sum+=2**i
print("{}/{}".format(sum,2**19))
# 等价于print(f'{sum}/{2**19}')
还可以使用等比求和
# 等比求和,因式分解显然互素
print(f"{pow(2, 20)-1}/{pow(2, 19)}")
0星期一:datetime库 weekday() timedelta()
import os
import sys
from datetime import*
a=0 #用于累加计数
start=date(1901,1,1)
end=date(2000,12,31)
while start<=end:
if start.weekday()==0:
a+=1
start+=timedelta(days=1)
print(a)
import datetime
#设置时间
start = datetime.date(1901,1,2)
end = datetime.date(2000,12,31)
print(end-start)
print(start.weekday())#返回周几
print((36524)//7)
判断第一天是星期几之后再计算 或者直接计算每一天的周几
datetime库的总结:https://zhuanlan.zhihu.com/p/208291869
0顺子日期:字符串in列表
import os
import sys
# 请在此输入您的代码
import datetime
d1 = datetime.date(2022,1,1)
d2 = datetime.date(2022,12,31)
day = datetime.timedelta(days=1)
# print(str(d.year)+str(d.month))
m=['012','123','234','345','456','567','678','789']
c=0
while d1<=d2:
str1 = str(d1).replace('-','')
for i in range(6):
if str1[i:i+3] in m:
c+=1
break #pay attention
d1+=day
print(c)