如何检查随机字是否与用户输入相同?

时间:2017-10-23 18:19:50

标签: python random input

我是初学者,我正在尝试编写基本程序,检查用户输入(条目)是否与所示的随机单词(a)匹配。如果匹配,则应该给出一个新单词,并且应该清除输入字段。

到目前为止,这是我的代码:

import random
import requests
import Tkinter
import requests
from Tkinter import *

point = 0

word_site = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain"
response = requests.get(word_site)
WORDS = response.content.splitlines()
a = random.choice(WORDS)

root = Tkinter.Tk()
root.title("Stopwatch")
root.minsize(width=900, height=600)
root.configure(background='white')

e1 = Entry(root , justify='center')
e1.place(anchor=CENTER , bordermode=OUTSIDE)
e1.config(bg="white" , font="Geneva 30 bold")
e1.pack(expand=False, padx=20 , pady=20, ipadx=10, ipady=10)

label = Tkinter.Label(root, text = "Write this word: " + a , bg="white" , font="Geneva 30 bold")
label.pack()

if e1 == a: #virker ikke!
    print "correct"
    e1.delete(0, END)


root.mainloop()

3 个答案:

答案 0 :(得分:1)

如果您的问题只是标有" virker ikke!"那是因为你正在将字符串值(a)与tkinter.Entry实例进行比较。

使用" get"从条目中获取当前文本的方法:

if e1.get() == a:
  print("correct")
  e1.delete(0, END)

其次,我认为您对UI工具包的工作方式有错误的想法。

您可以创建文本输入实例并正确显示它。但是,之后立即,您检查该值,然后只检查一次。

相反,您需要设置一些信号处理。例如:设置当条目中的文本发生更改时要调用的回调,或者添加一个按钮并将相同的回调附加到其click事件。

此外,您需要让程序进入主循环,然后才能在条目中输入任何输入。

请注意,我不是tkinter的专家,所以这只是一般的想法。

答案 1 :(得分:0)

如果两者都是字符串,则可以使用==运算符,如下所示:

a == b

请注意,这是区分大小写的,如果您希望它不区分大小写,则可以使用字符串的.lower()函数:

a.lower() == b.lower()

如果它们不是字符串,您可以将它们转换为字符串。

答案 2 :(得分:0)

做这样的事情:

import random

def random_word(words):
    return random.choice(words)

def user_choice():
    return raw_input("Enter a random word: ")

def main():
    words = ["and", "that", "this", "is"]
    computer_generated_word = random_word(words)
    user_picked_word = user_choice()
    if computer_generated_word.lower() == user_picked_word.lower():
        print("Word has successfully been guessed '{}'...".format(computer_generated_word))
    else:
        print("That's not the right word...")

if __name__ == "__main__":
    main()

既然你已经说过你了,那就让我为你解决这个问题..

import random

导入random包,可以找到文档here

def random_word(words):
    return random.choice(words)

使用内置list包将random作为参数的单词中的随机单词返回给方法。

def user_choice():
    return raw_input("Enter a random word: ")

通过调用stdout函数创建一个从raw_input获取用户输入的方法(值得一提的是input之后它只是2.7.x

def main():
    words = ["and", "that", "this", "is"]
    computer_generated_word = random_word(words)
    user_picked_word = user_choice()
    if computer_generated_word.lower() == user_picked_word.lower():
        print("Word has successfully been guessed '{}'...".format(computer_generated_word))
    else:
        print("That's not the right word...")

创建一个main方法来比较彼此的两个单词小写版本。如果单词匹配,则输出匹配,如果不输出,则不会。

if __name__ == "__main__":

Python基础练习。主要用于在程序启动时调用所需的方法

    main()

调用main方法。