Python百日百行代码挑战-day4,写游戏前的预习部分,time,random,copy,keyword,pickle模块
最近一直在提升python基础,感觉写一些小游戏对于提升python大概比较有帮助,这里就对一些游戏中常用的模块进行学习,同时放出自己练习的代码,以后写游戏的时候复习用
time模块
如其名,一个和时间相关的模块,感觉内容啥的还是挺简单的
time函数
返回当前时间(现在是时间减去计算机元年的时间,得到的那个结果)
计算机元年:1970年1月1日0时0分0秒
举例:
def timetake(a):
time1 = time.time()
for i in range(a):
pass
time2 = time.time()
print('{}'.format(time2-time1))
timetake(2000)
# 运行结果为:9.107589721679688e-05,你也可以直接time.time()查看一下
asctime函数
# 函数的作用是显示日期,无参数代表显示当前日期
time.asctime() #不放运行结果了,反正会显示你当前运行的时间,显示的东西为,星期几,月份,日期,具体时间,年份
a = (2022,8,15,16,36,21,4,0,0)
# 参数意义:
# 2022:2022年
# 8:8月
# 15:15日
# 16:16时
# 36:36分
# 21:21秒
# 4:星期5,0代表星期一
# 0:一年中的第几天,0代表占位符
# 0:是否使用夏令时间,0=不是,1=是
time.asctime(a)
#也可以这样加个参数进去,运行结果为:'Fri Aug 15 16:36:21 2022'
localtime函数
这个函数感觉和上面那个函数一样啊,没啥区别啊
time.localtime() #运行出的结果和上面那些个参数一个意思,顺序都一样,也是显示当前日期的意思
b = time.localtime()
b1 = b[0]
b2 = b[1]
b3 = b[2]
print(b1,b2,b3) #这部分就是获取年月日,可以运行着玩一下
sleep函数
让程序在运行的时候延迟一下,举例子:
for i in range(3):
print('德玛西亚!')
time11 = time.time()
time.sleep(1) #延迟1秒
time22 = time.time()
print(time22-time11)
运行结果为:
random模块
randint函数
这个函数的作用是生成随机数,用法是在括号里面加两个参数,生成的数字就在这两个之间,比如
random.randint(1,10)
# 这会生成随机数的范围就是[1,10)
这个东西其实还是挺有意思的,可以玩抖音上面那个数字炸弹(估计现在不火了吧已经)
# 模拟抖音上很火的数字炸弹的游戏
a = random.randint(1,50)
print("数字炸弹游戏开始:请你猜一个1到50之间的数字")
while True:
test = int(input())
if test > a:
print("有点大,往小了猜")
continue
elif test < a:
print("有点小,猜大点")
continue
else:
print("恭喜你,炸弹爆炸,你被炸麻了")
break
# 这个程序运行结果太随机了,自己玩玩就行,不放我的运行结果了
choice函数
如其名,选择函数,太简单了直接举例子吧
gamesetting = ['7 days to die','ARK','cfhd','csgo']
print(random.choice(gamesetting))
# 运行的话就会从这4个里面随便选择一个然后输出
shuffle函数
这个函数我感觉还是很实用的,之前做八皇后问题作业的时候,就用到过这个东西生成八皇后的初始状态。函数的作用是打乱样本,感觉在游戏里面比较常见的就是挖坑或者斗地主的时候洗牌用的,举个例子:
ord = np.zeros((1000,8))
original = [1,2,3,4,5,6,7,8]
for i in range(1000):
random.shuffle(original)
ord[i,:] = original
print(ord)
运行结果:
这里记录一下我的踩坑代码
print(random.shuffle(original)) # 会返回None,这个函数只能用作打乱,不能打印啥的,就直接使用就行,挺好的
copy模块
copy函数
复制的作用。万物皆可复制。
hero1 = {'name':'盖伦','blood':'1000','speed':'347'}
hero2 = copy.copy(hero1)
print(hero2)
结果:
keyword模块
iskeyword函数
这个函数是查看你输入的字符是不是关键词,例子和后面的一起写吧
kwlist函数
这个函数是查看所有的关键词,例子如下:
a = 1
print(keyword.iskeyword('a')) # 结果False
print(keyword.iskeyword('for')) # 结果True
print(keyword.iskeyword('demaxiya')) # 结果False
print(keyword.kwlist)
pickle模块
hero1 = {'name':'盖伦','blood':'1000','speed':'347'}
file1 = open('Gaylen.dat','wb')
pickle.dump(hero1,file1) # 保存文件
file1.close
file2 = open('Gaylen.dat','rb')
test_data = pickle.load(file2) # 读取文件
file2.close()
print(test_data)
可以看到文件已经生成了
读取也十分顺利
结语
今日份的学习就到这里,接下来我会自己练习一部分,凑够百行代码
防火防盗防诈骗