猜成语
闲的无事,无聊的写bug,突然觉得可以随便写个猜成语小游戏,正好可以解闷
Python随机库,random
random是Python的随机库,有这样几个简单的用法
在使用random前要用import关键字导入
import random
print(random.random())
print(random.randint(1,100))
print(random.choice([1,2,3,4,5]))
结果
0.10290569225899504
69
1
你的结果可能不一样,毕竟是随机模块,自然是随机的
接下来简单写写
from random import *
idioms=['无中生有','不知所措','光明正大','山清水秀']
idiom=choice(idioms)
print(idiom.replace(idiom[0], '_',1))
inputidiom = input("请输入完整的成语>>>")
if inputidiom==idiom:
print("你答对了")
else:
print("你答错了,正确的为 %s"%idiom)
玩了几下,感到没什么意思,便打算隐藏随机位置,并且加循环,答对继续,答错退出
from random import *
idioms=['无中生有','不知所措','光明正大','山清水秀']
a=0
while True:
idiom=idioms[a]
print(idiom.replace(idiom[randint(1, len(idiom) - 1)], '_', 1))
inputidiom = input("请输入完整的成语>>>")
if inputidiom==idiom:
print("你答对了")
a+=1
continue
else:
print("你答错了,正确的为 %s"%idiom)
break
加一个分数
from random import *
idioms=['无中生有','不知所措','光明正大','山清水秀']
score=0
a=0
while True:
idiom=idioms[a]
print(idiom.replace(idiom[randint(1, len(idiom) - 1)], '_', 1))
inputidiom = input("请输入完整的成语>>>")
if inputidiom==idiom:
a += 1
score += 10
print("你答对了,你的分数为 %d"%score)
continue
else:
print("你答错了,正确的为 %s, 你的分数为%d"%(idiom,score))
break
可是这成语太少了,只有四个,不如去写个成语获取模块
get_idioms.py
import requests
from json import loads
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.random}
proxies = {
'HTTPS': '171.35.63.57:8118'
}
def make_url():
return [
'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=28204&from_mid=1&&format=json&ie=utf-8&oe=utf-8&query=%E6%88%90%E8%AF%AD&sort_key=&sort_type=1&stat0=&stat1=&stat2=&stat3=&pn=' + str(
x * 30) + '&rn=30&cb=jQuery110202483093793465747_1586585380666&_=1586585380669' for x in range(300)]
def run(url):
try:
r = requests.get(url, headers=headers, proxies=proxies, timeout=3).content.decode()
result = loads(r[r.index('(') + 1:r.index(')')])['data'][0]['result']
for item in result:
file.write(item['ename'] + '\n')
print(item['ename'])
except:
pass
if __name__ == '__main__':
file = open('idioms.txt', 'w', encoding='utf-8')
for item in make_url():
run(item)
然后运行,就可以快速保存成语了
再将主程序简单更改一下
猜成语.py
from random import *
file = open('idioms.txt', 'r', encoding='utf-8')
idioms = file.readlines()
def play():
print("*" * 21 + '猜成语' + "*" * 21)
score = 0
a = randint(1,100)
while True:
idiom = idioms[a].strip().replace(',',',')
outidiom = idiom.replace(idiom[randint(1,len(idiom)-1)], '_',1)
print("\n", outidiom)
inputidiom = input("请输入完整的成语>>>").replace(',',',')
if inputidiom == idiom:
a += 1
score += 10
print("你猜对了,你的分数为%d" % score)
continue
else:
print("你猜错了,正确的是 %s" % idiom)
print("你的得分为%d" % score)
break
play()
嗯,不愧是我,就喜欢写这种没有技术含量的程序