我想请大家帮忙。 这个程序必须分析学生的数字,如果他们是正确的,他们写到ons列表,如果没有写到另一个列表,他们是正确的,如果他们有八个数字,只包含数字。
如果有人能帮助我,我将非常感激。
Valid_file = "ValidNumbers.txt"
Invalid_file = "InvalidNumbers.txt"
Data_file = "Data.txt"
def analyse_students(Data_file):
lenth = len(Data_file)
total = 0
try:
except:
return 0
def read(Data_file):
count = 0
student_list = []
try:
open(Data_file)
except:
print("Couldn't append file", Valid_file)
return count, student_list
def write(student, status):
if status:
try:
open(Data_file)
except:
print("Couldn't append file", Invalid_file)
count, student_list = read(Data_file)
print("Number of lines read", count)
for student in student_list:
print("See output files")
Okey,所以有一些事情需要解释的地方。
它是用来捕捉程序引发的错误的。任何容易引发异常的代码都会被插入到一个叫做 try
语句,而在该语句下面,则有任意数量的 except
语句和任何一个你想捕捉的错误。
try:
user_input = int(input('Give me a number: '))
except ValueError:
print('That is not a number!')
使用 "try-except "语句不是一个好的做法。try-except
的每一行代码,因为这可能是其中的一半,或者更多。那么什么时候应该使用它呢?很简单,问这个问题。我是否想在错误发生时做任何自定义操作? 如果答案是 是的,你可以走了。
Exception
或空 except
在您的例子中,我看到您使用的是一个空的 except
. 使用一个空的 except
语句将捕获每一个被包围的代码所引发的错误,这与捕获 Exception
. 该 Exception
类是Python环境中每一个非系统退出的内置异常的超类(读到这里),一般来说,它的做法很不好,要么用所有的例外来抓 except:
或 Exception
与 except Exception:
. 为什么呢? 因为你没有让用户(甚至你这个程序员)知道你在处理什么错误。比如说
fruits = ['apple', 'pear', 'banana']
try:
selection = fruits[int(input('Select a fruit number (0-2): '))]
except Exception:
print('Error!')
# But wait, are you catching ValueError because the user did not input a number,
# or are you catching IndexError because he selected an out of bound array index?
# You don't know
基于前面的例子,您可以使用多个 try-except
语句来区分哪些错误正在被提出。
fruits = ['apple', 'pear', 'banana']
try:
selection = fruits[int(input('Select a fruit number (0-2): '))]
except ValueError:
print('That is not a number')
except IndexError:
print('That fruit number does not exist!')
如果有两个特定的例外情况,你想用于同一个目的,你可以将它们归入一个名为 "例外情况 "的组。tuple
:
fruits = ['apple', 'pear', 'banana']
try:
selection = fruits[int(input('Select a fruit number (0-2): '))]
except (ValueError, IndexError):
print('Invalid selection!')
根据这些信息,添加以下内容 try-except
块,看看在执行过程中可能会出现哪些错误,问之前推荐的问题。我想用这个错误执行一些自定义的动作吗?