Python基础,猜成语小游戏

猜成语
闲的无事,无聊的写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()

嗯,不愧是我,就喜欢写这种没有技术含量的程序

你可能感兴趣的:(Python基础,猜成语小游戏)