我是初学者,我正在尝试编写基本程序,检查用户输入(条目)是否与所示的随机单词(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()
答案 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方法。