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)

可以看到文件已经生成了
在这里插入图片描述
读取也十分顺利
在这里插入图片描述

结语

今日份的学习就到这里,接下来我会自己练习一部分,凑够百行代码

防火防盗防诈骗

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 Selenium 的 Python 脚本,用于在大麦网抢票: ```python import os import time import pickle from selenium import webdriver # 设置 Chrome 驱动程序路径 chrome_driver_path = "/path/to/chromedriver" # 设置票务信息 ticket_url = "https://www.damai.cn/" ticket_page_url = "https://detail.damai.cn/item.htm?id=123456" # 替换为你要购买的票务页面链接 # 设置订单信息 buyer_name = "张三" # 替换为你的姓名 buyer_id = "123456789012345678" # 替换为你的身份证号码 buyer_phone = "13812345678" # 替换为你的手机号码 # 设置自动填写表单选项 auto_fill_form = True # 是否自动填写表单 auto_select_seat = True # 是否自动选择座位 auto_submit_order = True # 是否自动提交订单 auto_pay_order = False # 是否自动支付订单 # 设置等待时间 wait_for_login = 60 # 等待手动登录的时间,单位:秒 wait_for_buy = 10 # 等待购买按钮出现的时间,单位:秒 wait_for_order = 60 # 等待订单提交的时间,单位:秒 # 加载 Chrome 驱动程序 browser = webdriver.Chrome(chrome_driver_path) # 打开大麦网首页 browser.get(ticket_url) # 等待手动登录 print("请手动登录大麦网,并在 {} 秒内完成操作。".format(wait_for_login)) time.sleep(wait_for_login) # 打开票务页面 browser.get(ticket_page_url) # 等待购买按钮出现 print("等待购买按钮出现...") while True: try: buy_button = browser.find_element_by_css_selector(".buybtn") break except: time.sleep(1) continue # 自动填写表单 if auto_fill_form: # 填写购票人信息 browser.find_element_by_css_selector(".buyers input[name='name']").send_keys(buyer_name) browser.find_element_by_css_selector(".buyers input[name='mobile']").send_keys(buyer_phone) browser.find_element_by_css_selector(".buyers input[name='idcard']").send_keys(buyer_id) # 选择配送方式 browser.find_element_by_css_selector(".perform__delivery__item:nth-child(3)").click() # 自动选择座位 if auto_select_seat: # 点击选座按钮 browser.find_element_by_css_selector(".perform__btn__selectseat").click() # 等待座位图加载完成 print("等待座位图加载完成...") while True: try: browser.find_element_by_css_selector(".seatmap__body") break except: time.sleep(1) continue # 选择座位 browser.find_element_by_css_selector(".seatmap__body .seat").click() # 自动提交订单 if auto_submit_order: # 点击提交订单按钮 browser.find_element_by_css_selector(".buybtn").click() # 等待订单提交完成 print("等待订单提交完成...") while True: try: browser.find_element_by_css_selector(".order__success__tips") break except: time.sleep(1) continue # 自动支付订单 if auto_pay_order: # 点击支付按钮 browser.find_element_by_css_selector(".order__success__btns__btn").click() # 等待二维码加载完成 print("等待二维码加载完成...") while True: try: browser.find_element_by_css_selector(".qr__code") break except: time.sleep(1) continue # 关闭浏览器 browser.quit() ``` 注意:这个脚本是用于演示目的,实际使用时,需要根据实际情况进行修改。另外,使用自动化脚本参与抢票行为可能会违反大麦网的相关规定,建议谨慎使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值