Python脚本执行没有任何错误,但不能接受用户输入



我是python新手,这是hangman的代码。随机取一个单词,用户猜单词的字母。这是freeCodeCamp.org视频中的12个初学者python项目中的一个问题。在视频中显示没有问题。但是当我运行这个,我没有得到错误,但没有输出。

import random
from words import words
import string
def get_valid_word(words):
word = random.choice(words)  # randomly chooses something from the list
while '_' in word or ' ' in word:
word = random.choice(words)
return word.upper()
def main():
word = get_valid_word(words)
word_letters = set(word)  # letters in the word
alphabet = set(string.ascii_uppercase)
used_letters = set()  # what user has guessed
# getting user input
while len(word_letters) > 0:
# letters used
# ''. join(['a', 'b', ]) --> 'a b '
print('You have used these letters: ', ' '.join(used_letters))
# what current word is( W _ R D)
word_list = [letter if letter in used_letters else '_' for letter in word]
print('current word: ', ' '.join(word_list))

问题就在这里。我不能给出任何输入

user_letter = input('Guess a letter: ').upper()
if user_letter in alphabet - used_letters:
used_letters.add(user_letter)
if user_letter in word_letters:
word_letters.remove(user_letter)
elif user_letter in used_letters:
print('You have already used that character.Please try again later')
else:
print('Invalid character.Please try again later')

"这是我的第一个项目,我很抱歉,如果这是一个愚蠢的问题。如果有人能帮助我,我将不胜感激。如果有人想看视频的话。这里是链接

什么是错…

您只定义了函数(get_valid_word(words)main()),但没有调用任何函数。不像其他语言(例如java), main()在python中默认不会被调用,所以你需要手动调用它。

一种方法是将def main():内的所有内容都取出,而不将其定义为函数。这样,.py脚本将运行每一行,而不需要显式地调用它。

# def main():
#    print('do something')
print('do something')

然而,最简单的方法是在脚本末尾添加main()来调用它。

def main():
print('do something')
main()

最新更新