Python语言与基础应用(北京大学)07
Python语言与基础应用(北京大学)07
datetimr模块
时间戳
calendar模块
timem模块
time.sleep(),time,localtime()
几个算数模块
shuffle函数接的参数必须是可变序列,相当于洗牌
对象持久化
上机题:
#判断这一天是这一年的第几天
#刚学到了时间库,用上time库,然后我们要将输入的格式转换成计算机能识别# 的格式,time.strptime()。tm_yday可以直接得出是今年的第几天。# 题外话,strptime和strftime傻傻分不清楚,据说,strftime是# str-format-time, 时间字符串格式化,即我们看到的格式;# strptime是str-parse-time,时间字符串语法化,即计算机理解的格式
import time
day =input()
f=time.strptime(day,’%Y%m%d’)
print(f.tm_yday)
#另一种思路:
from datetime import *
d=input()
d1=datetime.strptime(d[:4]+’/1/1’.’%Y%m%d’)
d2=datetime.srptime(d,’%Y%m%d’)
print((d2-d1).days+1)
计算:
import math
x = int(input())
print(round(math.sin(15math.pi/180)+(math.exp(x)-5x)/math.sqrt(x**2+1)-math.log(3*x),10))
#一个特殊的正整数,它加上150后是一个完全平方数,再加上136又是一个完全平方数,求符合条件的最小的一个数。
i = 0
while True:
if pow(int((i + 150) ** 0.5), 2) == i + 150 and pow(int((i + 150 + 136) ** 0.5), 2) == i + 150 + 136:
print(i)
break
else:
i += 1
n = int(input()) - 1 # n=2
lst = [‘X’] * (2 * n + 1) # lst = [‘x’,‘x’,‘x’,‘x’,‘x’]
for i in range(n): # 循环2次,打出前两行
s = ‘+’ * i + ‘X’ + ‘+’ * (n - i - 1) # 打出每一行的前半部分
s = s + ‘+’ + s[::-1] # 把 s 倒过来合并字符串
lst[i] = lst[-1 - i] = s # 循环替换lst[i]的值
lst[n] = “+” * n + ‘X’ + ‘+’ * n # 把中间一行,即第2行进行修改
for l in lst:
print(l) # 遍历lst里的元素,输出
#约瑟夫环问题
题目内容:
已知n个人(以编号0,1,2,3…n-1分别表示)围坐在一张圆桌周围。从编号为0的人开始报数1,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
n=int(input())
m=int(input())
lst=list(range(n))
result=[]
for i in range(n):
for j in range(m-1):
lst.append(lst.pop(0))
result.append(lst.pop(0))
print(result)