我是一名初学蟒蛇学习者。我正在尝试创建一个基本字典,其中单词的随机含义将来临,用户必须输入正确的单词。我使用了以下方法,但随机不起作用。我总是先得到第一个单词,当最后一个单词结束时,我得到无限的“无”,直到我杀了它。使用python 3.2
from random import choice
print("Welcome , let's get started")
input()
def word():
print('Humiliate')
a = input(':')
while a == 'abasement':
break
else:
word()
# --------------------------------------------------------- #
def word1():
print('Swelling')
a = input(':')
while a == 'billowing':
break
else:
word()
# ------------------------------------------------------------ #
wooo = [word(),word1()]
while 1==1:
print(choice(wooo))
有没有更快的方法来做到这一点,并得到真正的随机?我尝试过课程,但似乎比这更难。另外,有什么方法可以让python不关心天气,输入是大写字母还是没有?
答案 0 :(得分:2)
wooo = [word, word1]
while 1:
print(choice(wooo)())
但无论如何它都会打印给你None
,因为你的两个函数都没有返回任何内容(None
)。
答案 1 :(得分:2)
回答你问题的一部分(“有什么方法我可以让python不关心天气输入是否是大写字母?”):使用some_string.lower()
:
>>> "foo".lower() == "foo"
True
>>> "FOO".lower() == "foo"
True
这是为了帮助您改进代码结构:
import sys
from random import choice
WORDPAIRS = [('Humiliate', 'abasement'), ('Swelling', 'billowing')]
def ask():
pair = choice(WORDPAIRS)
while True:
answer = raw_input("%s: " % pair[0]).lower()
if answer == pair[1]:
print "well done!"
return
def main():
try:
while True:
ask()
except KeyboardInterrupt:
sys.exit(0)
if __name__ == "__main__":
main()
它的工作原理如下:
$ python lulu.py
Swelling: lol
Swelling: rofl
Swelling: billowing
well done!
Humiliate: rofl
Humiliate: Abasement
well done!
Swelling: BILLOWING
well done!
Humiliate: ^C
$