一.用fraction处理分数
#eg:求1/2+1/4+1/8······
from fractions import Fraction
num=0
x=1
for i in range(1,21):
num=num+Fraction(1,x)
x=2*x
print(num)
二.datetime模块
1.datetime.date:表示日期的类
datetime.date(year, month, day)
from datetime import datetime, timedelta
# 获取当前日期和时间
now = datetime.now()
print(now)
# 获取明天的日期
tomorrow = now + timedelta(days=1)
print(tomorrow)
# 将字符串解析为日期时间
dt = datetime.strptime("2023-10-23 12:34:56", "%Y-%m-%d %H:%M:%S")
print(dt)
三.保留数字
%2d 将数字按宽度为2,右对齐方式输出,若位数不到2位,则左边补空格。
%02d,右对齐方式输出,若不够左边补0
%-2d 将数字按宽度为2,左对齐输出,若数据位数不到2位,则右边补空格
%.2d 输出整形时最少输出2位,若不够前面补0。
%.2f 浮点数保留两位小数
四.利用try/except循环语句捕获异常
#.eg:判断2021年有没有m月d天
import datetime
m=int(input())
d=int(input())
try:
d=datetime.date(2021,m,d)
print('yes')
except:
print('no')
五.输入输出二维数组
n = int(input()) //输入二维数组的行数和列数
line = [[0]*n]*n //初始化二维数组
for i in range(n):
line[i] = input().split(" ") //输入二维数组,同行数字用空格分隔,不同行则用回车换行
line[i] = [int(j) for j in line[i]] //将数组中的每一行转换成整型
print(line) //打印二维数组
#输入n行m列数组
a=[list(map(int,input().split())) for i in range(n)]
#输出n行m列数组
for i in range(n):
for j in range(m):
print(a[i][j])
print('')
#扫雷
n,m=map(int,input().split())
lei=[list(map(int,input().split())) for i in range(n)]
out=[[0 for i in range(m)] for j in range(n)]
dir=[(-1,-1),(0,-1),(-1,0),(0,1),(1,0),(1,1),(1,-1),(-1,1)]
for i in range(0,n):
for j in range(0,m):
if lei[i][j]==1:
out[i][j]=9
else:
un=0
for x in dir:
nx=i+x[0]
ny=j+x[1]
if nx>=0 and ny>=0 and nx<n and ny<m:
un=un+lei[nx][ny]
out[i][j]=un
for i in out:
for j in i:
print(j,end=' ')
print('')