如何解决如何处理语法错误?
对于我正在做的程序,它会通过调查风格的问题并生成一个CSV文件来存储动漫推荐列表,该CSV文件存储有关动漫的信息(例如流派)。
但是,在运行程序时,我想测试在执行问题时是否会出现语法错误,并在完成所有问题后最终显示错误。我希望它能做的是当输入错误时会弹出语法错误。
这是我所做的:
if adventure == 'yes':
with open("AnimeGenre3.csv",'r',newline='') as f:
for row in csv.reader(f):
if row[4] == 'yes':
anime = str(row[1])
looping = False
if anime not in anime_list:
anime_list.append(anime)
else:
print('''
There seems to be a problem in one of the questions
''')
让我们说“你喜欢动漫”,然后输入6,则会弹出语法错误提示并重做该问题。但是,在完成所有问题并生成动漫列表之后,便会弹出该列表。
另一个问题是,在完成问题并打印推荐的动画后,如何再次启动程序。它询问您是否要重新开始,但最终却不这样做。这就是我所做的。
StartAgain = str(input('Do you like to start again; yes or no: '))
if StartAgain == 'yes':
print('''
Let's begin ''')
break
if StartAgain == 'no':
print('thank you for coming')
else:
print('''
Sorry Man got to do it again''')
# an if statement if the user wants to start again
# this should rerun the program.
现在,这是我到目前为止已完成的完整程序,老实说,需要找到一种使它更简单的方法,希望我的注释足够好。
import csv
anime_list = []
#in the csv AnimeGenre3.csv it contains information such as the animes,the number of
episodes and genres
#printing information about the program.
#has an if statement to identify if it user wants to start the program.
looping1 = True
looping2 = True
print('This is a program that identifies specific anime for you')
while looping1 == True:
begin = str(input('Do you like to start; yes or no: '))
if begin == 'yes':
print('''
Let's begin
''')
break
if begin == 'no':
print('thank you for coming')
else:
print('''
Sorry Man got to do it again
''')
#this section is where the program ask the user questions from there
# it will identify,the genres the user is interested in.
while looping2 == True:
action = str(input('Do you like action; yes or no: '))
adventure = str(input('Do you like adventure; yes or no: '))
print('')
print('recommended anime')
#having to use if statements to find any anime that either say "yes" in the CSV file
# it sorts out all of the sorts that the user said yes to.
# It goes through the rows to identify all of the user genres that say yes
# it should print out the recommend anime
# this prints out a long list of anime
if action == 'yes':
with open("AnimeGenre3.csv",newline='') as f:
for row in csv.reader(f):
if row[3] == 'yes':
anime = str(row[1])
looping = False
if anime not in anime_list:
anime_list.append(anime)
if adventure == 'yes':
with open("AnimeGenre3.csv",newline='') as f:
for row in csv.reader(f):
if row[4] == 'yes':
anime = str(row[1])
looping = False
if anime not in anime_list:
anime_list.append(anime)
else:
print('''
There seems to be a problem in one of the questions
''')
# if there is a syntax error within the program,it should pop up to the user saying this
print(anime_list)
StartAgain = str(input('Do you like to start again; yes or no: '))
if StartAgain == 'yes':
print('''
Let's begin ''')
break
if StartAgain == 'no':
print('thank you for coming')
else:
print('''
Sorry Man got to do it again''')
# an if statement if the user wants to start again
# this should rerun the program.
解决方法
关于再次开始,您唯一的代码将打印一条语句。它不重复功能。您可能需要考虑更多地调制(组织)程序,以便在再次启动时可以调用一个功能。例如,
def main()
//this contains your overall logic,starting/ending the program and/or repeating it
// at some point in time,you call animeselector() to start,and if it needs repeating,you call it again
def animeselector ()
//this controls the in/out and selection process
就确保输入格式正确而言,这可能是另一个功能。它可以仅检查答案是“是”还是“否”,否则,请更改变量(例如badanswer == false变为true)。然后,这会在您需要时触发其他操作(重做)。
我建议您阅读“学习Python困难方式”(后面的章节)以进行功能组织,并且一些PyGame教程也有助于了解如何更好地调制程序(因为制作游戏,您需要一个整体功能来完成)。运行游戏,然后再运行一些较小的功能来处理游戏中的活动)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。