python学习积累二

一.用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('')


                        
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值