检查 raw_input 字典
Check raw_input for dictionary
我查看了 Whosebug 来解决我的问题,但是根据所有关于循环和检查的解释,我不明白为什么我的代码不起作用。
所以我想建立一个字典(对 Python btw 来说是全新的),我读到我也可以检查输入是否在 dicitonary 模块中,但这实际上不是我想在这里做的。我只想看看 raw_input 是否在字符串中至少包含一个数字(如果字符串只包含数字则不行)以及输入字符串的长度是否至少为 2。
如果输入通过了这些检查,它应该继续(这本词典的其余部分将在稍后出现。现在我只想了解我的检查做错了什么)
这是我的代码,非常感谢您的帮助!
def check():
if any(char.isdigit() for char in original):
print ("Please avoid entering numbers. Try a word!")
enter_word()
elif len(original)<1:
print ("Oops, you didn't enter anything. Try again!")
enter_word()
else:
print ("Alright, trying to translate:")
print ("%s") %(original)
def enter_word():
original = raw_input("Enter a word:").lower()
check()
enter_word()
编辑:现在可以完美地使用以下代码:
def check(original):
if any(char.isdigit() for char in original):
print "Please avoid entering numbers. Try a word!"
enter_word()
elif len(original) < 1:
print "Oops, you didn't enter anything. Try again!"
enter_word()
else:
print "Alright, trying to translate:"
print "{}".format(original)
def enter_word():
original = raw_input("Enter a word:").lower()
check(original)
enter_word()
您需要将输入 original
传递给您的 check()
函数:
def check(original):
if any(char.isdigit() for char in original):
print("Please avoid entering numbers. Try a word!")
enter_word()
elif len(original) < 1:
print("Oops, you didn't enter anything. Try again!")
enter_word()
else:
print("Alright, trying to translate:")
print("{}".format(original))
def enter_word():
original = input("Enter a word:").lower()
check(original)
enter_word()
除此之外,您的代码中还有一些语法错误。由于您使用 print()
而不是 print
,我假设您使用的是 Python3。但是,要读取用户输入,您使用了 raw_input()
,这是 Python2 中的做法,在 Python3 中变成了 input()
。我修好了这个。我修复的另一件事是 else
分支中 print()
语句的字符串格式。你可以看看 string format mini-language.
我查看了 Whosebug 来解决我的问题,但是根据所有关于循环和检查的解释,我不明白为什么我的代码不起作用。 所以我想建立一个字典(对 Python btw 来说是全新的),我读到我也可以检查输入是否在 dicitonary 模块中,但这实际上不是我想在这里做的。我只想看看 raw_input 是否在字符串中至少包含一个数字(如果字符串只包含数字则不行)以及输入字符串的长度是否至少为 2。 如果输入通过了这些检查,它应该继续(这本词典的其余部分将在稍后出现。现在我只想了解我的检查做错了什么) 这是我的代码,非常感谢您的帮助!
def check():
if any(char.isdigit() for char in original):
print ("Please avoid entering numbers. Try a word!")
enter_word()
elif len(original)<1:
print ("Oops, you didn't enter anything. Try again!")
enter_word()
else:
print ("Alright, trying to translate:")
print ("%s") %(original)
def enter_word():
original = raw_input("Enter a word:").lower()
check()
enter_word()
编辑:现在可以完美地使用以下代码:
def check(original):
if any(char.isdigit() for char in original):
print "Please avoid entering numbers. Try a word!"
enter_word()
elif len(original) < 1:
print "Oops, you didn't enter anything. Try again!"
enter_word()
else:
print "Alright, trying to translate:"
print "{}".format(original)
def enter_word():
original = raw_input("Enter a word:").lower()
check(original)
enter_word()
您需要将输入 original
传递给您的 check()
函数:
def check(original):
if any(char.isdigit() for char in original):
print("Please avoid entering numbers. Try a word!")
enter_word()
elif len(original) < 1:
print("Oops, you didn't enter anything. Try again!")
enter_word()
else:
print("Alright, trying to translate:")
print("{}".format(original))
def enter_word():
original = input("Enter a word:").lower()
check(original)
enter_word()
除此之外,您的代码中还有一些语法错误。由于您使用 print()
而不是 print
,我假设您使用的是 Python3。但是,要读取用户输入,您使用了 raw_input()
,这是 Python2 中的做法,在 Python3 中变成了 input()
。我修好了这个。我修复的另一件事是 else
分支中 print()
语句的字符串格式。你可以看看 string format mini-language.