都是用的基礎的語法,很好理解
前提先爬取一些成語,我爬的搜出來的這些,代碼在
爬取一些成語
爬出來的txt放在同級目錄下面就好了
import random
def get_list():
with open("chengyu.txt", "r+", encoding="utf-8") as f:
content = f.read()
url_list = content[:-1].split(',')
return url_list
def get_first_word(url_list):
randoms=random.choice(url_list)
print('我先說一個:',randoms )
return randoms
def zhurenjie():
zhuren=input('我接:\n')
return zhuren
def jiqijie(url_list,zhuren):
chengyus=[]
for url in url_list:
if url[0]==zhuren[-1]:
chengyus.append(url)
print('俺接:',random.choice(chengyus))
if __name__=='__main__':
print('成語接龍遊戲,請接成語或俗語,接的第一個字要跟上面的成語最後一個字相同哦\n當你不想玩的時候可以輸入"我不玩了"結束\n當你玩不過我的時候可以輸入"我認輸"哈哈哈哈')
url_list=get_list()
randoms=get_first_word(url_list)
while True:
zhuren = zhurenjie()
if zhuren=='我不玩了':
print('切,是不是玩不起!!拜拜')
break
if zhuren=='我認輸':
print('哈哈,我贏了!!')
break
if zhuren not in url_list:
print('耍賴,這不是個成語或俗語,重新說')
elif zhuren[0] != randoms[-1]:
print('耍賴,你沒有接最後一個字,重說')
print('最後一個字是:',randoms[-1])
else:
jiqi = jiqijie(url_list, zhuren)
更新:2019年11月28日
今天想做一個結合pyqt5的桌面應用,用到成語接龍,結果我認真一跑,發現不少問題。
首先一個,上面的代碼只考慮到人會輸,沒考慮程序會輸,結果,當程序接不上來的時候它就會耍賴(報錯)
第二個bug就是,randoms不會改變,導致程序玩不下去
很明顯,當進行完一輪之後,randoms的取值並沒有隨時更新,所以導致它的取值一直不變。
針對以上兩點錯誤,我進行了修改,現在可以愉快地玩耍了、
如果還有哪裏有漏洞我沒有發現,歡迎指正~
import random
def get_list():
with open("chengyu.txt", "r+", encoding="utf-8") as f:
content = f.read()
url_list = content[:-1].split(',')
return url_list
def get_first_word(url_list):
randoms=random.choice(url_list)
print('我先說一個:',randoms )
return randoms
def zhurenjie():
zhuren=input('我接:\n')
return zhuren
def jiqijie(url_list,zhuren):
chengyus=[]
for url in url_list:
if url[0]==zhuren[-1]:
chengyus.append(url)
a=random.choice(chengyus)
print('俺接:',a)
return a
if __name__=='__main__':
print('成語接龍遊戲,請接成語或俗語,接的第一個字要跟上面的成語最後一個字相同哦\n當你不想玩的時候可以輸入"我不玩了"結束\n當你玩不過我的時候可以輸入"我認輸"哈哈哈哈')
url_list=get_list()
randoms = get_first_word(url_list)
while True:
zhuren = zhurenjie()
print('zhuren',zhuren)
print('randoms',randoms)
if zhuren=='我不玩了':
print('切,是不是玩不起!!拜拜')
break
if zhuren=='我認輸':
print('哈哈,我贏了!!')
break
if zhuren not in url_list:
print('耍賴,這不是個成語或俗語,重新說')
elif zhuren[0] != randoms[-1]:
print('耍賴,你沒有接最後一個字,重說')
print('最後一個字是:',randoms[-1])
else:
try:
jiqi = jiqijie(url_list, zhuren)
except:
print('俺接不出來,你贏了!')
break
randoms=jiqi