Python-如何初始化随机函数

时间:2012-08-30 16:32:41

标签: python function random python-3.x

我是一名初学蟒蛇学习者。我正在尝试创建一个基本字典,其中单词的随机含义将来临,用户必须输入正确的单词。我使用了以下方法,但随机不起作用。我总是先得到第一个单词,当最后一个单词结束时,我得到无限的“无”,直到我杀了它。使用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不关心天气,输入是大写字母还是没有?

2 个答案:

答案 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
$