Python 程序循环非常快且无限期?Can';我不明白为什么
我正在为我的编程课用python编写一个Tweet Manager程序。对于这个作业,我应该创建一个Tweet类来存储Tweet的作者、Tweet本身以及创建Tweet的时间。然后,我应该创建一个Twitter程序,为用户提供一系列选项供选择 当我试着运行我的Twitter程序时,它会在没有语法错误的情况下打开,但会一次又一次地快速打印菜单而不会停止。我无法找出我的代码中是什么导致了这个问题 以下是我的推特代码:Python 程序循环非常快且无限期?Can';我不明白为什么,python,class,loops,debugging,twitter,Python,Class,Loops,Debugging,Twitter,我正在为我的编程课用python编写一个Tweet Manager程序。对于这个作业,我应该创建一个Tweet类来存储Tweet的作者、Tweet本身以及创建Tweet的时间。然后,我应该创建一个Twitter程序,为用户提供一系列选项供选择 当我试着运行我的Twitter程序时,它会在没有语法错误的情况下打开,但会一次又一次地快速打印菜单而不会停止。我无法找出我的代码中是什么导致了这个问题 以下是我的推特代码: import Tweet import pickle de
import Tweet
import pickle
def main():
try:
load_file = open('tweets.dat', 'rb')
tweets = pickle.load('tweets.dat')
load_file.close()
except:
tweet_list = []
while (True):
choice = display_menu()
#Make a Tweet
if (choice == 1):
tweet_author = input("\nWhat is your name? ")
tweet_text = input("What would you like to tweet? ")
print()
if len(tweet_text) > 140:
print("Tweets can only be 140 characters!\n")
else:
print(tweet_author, ", your Tweet has been saved.")
age = 0
tweets = tweet.Tweet(tweet_author, tweet_text)
tweet_list.append(tweets)
try:
output_file = open('tweets.dat', 'wb')
pickle.dump(tweets, output_file)
output_file.close()
except:
print("Your tweets could not be saved!")
#View Recent Tweets
elif (choice == 2):
print("Recent Tweets")
print("--------------")
if len(tweet_list) == 0:
print("There are no recent tweets. \n")
for tweets in tweet_list[-5]:
print(tweets.get_author(), "-", tweets.get_age())
print(tweets.get_text(), "\n")
#Search Tweets
elif (choice == 3):
match = 0
tweet_list.reverse()
if tweet_list == []:
print("There are no tweets to search. \n")
search = input("What would you like to search for? ")
for tweets in tweet_list:
if (search in tweets.get_text()):
match = 1
if match = 1:
print("Search Results")
print("--------------")
print(tweets.get_author(), "-", tweets.get_age())
print(tweets.get_text(), "\n")
elif match == 0:
print("No tweets contained", search, "\n")
#Quit
elif (choice == 4):
print("Thank you for using the Tweet Manager!")
exit()
def display_menu():
print("Tweet Menu")
print("------------")
print()
print("1. Make a Tweet")
print("2. View Recent Tweets")
print("3. Search Tweets")
print("4. Quit")
print()
main()
display\u菜单
始终返回None
-如果您不返回任何内容,这是默认设置。没有问题,代码完全按照您的指示执行
display\u menu
完全按照名称的含义:显示菜单。main
函数在循环中调用该函数
在任何情况下,您都不会要求与菜单选项对应的任何输入。您的
显示\u菜单
函数实际上没有给出值
将该函数的最后一行(print()
)更改为
或者如果您使用的是Python2.x
return raw_input()
“显示”菜单未检索到选项中的任何输入。。。只显示菜单。
因此,如果不匹配if,则无限期地循环。
choice=display\u menu
应该是choice=display\u menu()
最小示例?e、 g:3行代码?在实际代码中是这样写的,这里一定打错了。感谢您指出这将返回一个字符串。它将在python 3中使用,我认为他使用的是由于打印的()
。也为python 2编辑过
return raw_input()