我正在尝试使用我学到的新单词在Python上编译字典。然后,程序将要求我翻译字典中的随机键,从而测试我对单词的了解。
这是我目前的状态:
import random
witcher_dic = {'bridles' : 'уздцы' , 'hum' : 'гул' , 'to become deserted' : 'опустеть', 'linen' : 'полотяный' , 'apron' : 'фартук' ,
'pockmarked (object)' : 'щербатый' , 'quiver (arrow)' : 'колчан' , 'to take a sip' : 'обхлебнуть' ,
'to grunt' : 'буркнуть' , 'vile/foul' : 'паскудный' , 'pockmarked (person)' : 'рябой' , 'big-man' : 'верзила' ,
'punk' : 'шпана' , 'to bark (person)' : 'гархнуть' , 'bastard, premature child' : 'недосонок' ,
'to mumble' : 'промямлить' , 'to bark (person2)' : 'рявкнуть' , 'to look around oneself' : 'озираться' ,
'oliquely' : 'наискось' , 'a mess/fuss' : 'кутерьма' , 'bolt (sound)' : 'грохот' , 'to blink' : 'шмяхнуться' ,
'dissected' : 'рассеченный' , 'to wriggle' : 'извиваться', 'tender/sensitive' : 'чуткий' , 'to hang to' : 'облепить',
'a clang/clash' : 'лязг' , 'to snuggle up to' : 'прильнуть' , 'boot-leg' : 'голенищ' , 'stuffing' : 'набивки' ,
'cuffs' : 'манжеты' , 'to jump up' : 'вскочить' , 'to dart off' : 'помчаться' , 'to scream' : 'заволить' , 'shrilly' : 'пронзительно',
'to back away' : 'пятиться' , 'loaded (horse)' : 'навьюченный'}
def ranWord():
word = random.choice(list(witcher_dic.keys()))
return word
while True:
print(ranWord())
guess = input('Please enter the translation for this word: ')
if guess == witcher_dic[word]:
print('Well done!')
else:
input(print('Please try again: '))
input('Press any key to exit')
关于格式和缩进的道歉,但是对于stackoverflow还是很新的,仍然在学习中!
我想问题就在网上:如果猜测== witcher_dic [word]
程序应使用户输入与字典值匹配。
答案 0 :(得分:0)
这是我可以看到的问题:
word
,但不会定义它。您应该先做word = ranWord()
,然后再做类似guess = input(f'Please enter the translation for {word}: ')
的事情。break
语句以在打印Well done!
之后终止循环。Please try again
行似乎不必要;当循环重新开始时,它将提示玩家进行新的猜测。删除else
,或用input
替换第二个print(Your guess was incorrect.)
呼叫。答案 1 :(得分:0)
您的代码有一些问题。
1。)要使用非ascii字符,您需要使用“魔术”注释声明编码
2.)ranWord
仅在其自己的范围内定义word
,因此您不能在函数外部使用它。我建议您学习范围
3.)input(print(str))
是无效的语法。使用input(str)
4.)这并不是真正的问题,但是您永远不会退出while循环,因此您将永远翻译单词。您可以决定要如何处理
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#include these!^
import random
witcher_dic = {'bridles' : 'уздцы' , 'hum' : 'гул' , 'to become deserted' : 'опустеть', 'linen' : 'полотяный' , 'apron' : 'фартук' ,
'pockmarked (object)' : 'щербатый' , 'quiver (arrow)' : 'колчан' , 'to take a sip' : 'обхлебнуть' ,
'to grunt' : 'буркнуть' , 'vile/foul' : 'паскудный' , 'pockmarked (person)' : 'рябой' , 'big-man' : 'верзила' ,
'punk' : 'шпана' , 'to bark (person)' : 'гархнуть' , 'bastard, premature child' : 'недосонок' ,
'to mumble' : 'промямлить' , 'to bark (person2)' : 'рявкнуть' , 'to look around oneself' : 'озираться' ,
'oliquely' : 'наискось' , 'a mess/fuss' : 'кутерьма' , 'bolt (sound)' : 'грохот' , 'to blink' : 'шмяхнуться' ,
'dissected' : 'рассеченный' , 'to wriggle' : 'извиваться', 'tender/sensitive' : 'чуткий' , 'to hang to' : 'облепить',
'a clang/clash' : 'лязг' , 'to snuggle up to' : 'прильнуть' , 'boot-leg' : 'голенищ' , 'stuffing' : 'набивки' ,
'cuffs' : 'манжеты' , 'to jump up' : 'вскочить' , 'to dart off' : 'помчаться' , 'to scream' : 'заволить' , 'shrilly' : 'пронзительно',
'to back away' : 'пятиться' , 'loaded (horse)' : 'навьюченный'}
def ranWord():
word = random.choice(list(witcher_dic.keys()))
return word
while True:
wrd = ranWord()
print(wrd)
guess = input('Please enter the translation for this word: ')
if guess == witcher_dic[wrd]:
print('Well done!') # maybe break here after a certain amount correct?
else:
input('Please try again: ') #or instead of trying again you can just lose when you answer incorrectly
input('Press any key to exit')