我在上一年级的计算机科学课,正在学习Python,所以请耐心听我说。任务是使用Python打开一个文件,读取它,并在该文件中找到最大值,而不使用任何内置函数或我们在课堂上没有讨论过的概念。我可以读取文件并获取值,但我的问题是,我的代码会将值“30”改为“3”,并将值“0”改为“30”。到目前为止,我的情况是:
def maxValueInFile(fileName):
inputFile = open(fileName, "r")
currentMax = int(0)
for value in inputFile.read():
if value.isdigit():
value = int(value)
if value > currentMax:
currentMax = value
inputFile.close()
return currentMax
当我运行文件时,它不会返回大于9的数字,可能是因为
您试图在这段代码中做太多的工作(我将对此进行注释,以便您可以看到哪里出错):
将字符串拆分为数字没有好处,所以不要这样做。:)
请注意,如果
line
不能转换为int
,则此代码将引发ValueError
异常!你知道吗几个样式注释(我已经应用于上面的代码):
int(0)
,因为0
已经是一个int
了。你知道吗line
中读取的文本行,以帮助我记住它是一行文本(即astr
),然后我将数值命名为value
,以帮助我记住这是我可以在比较中使用的实际数字(即int
)。你知道吗如果要逐位读取,可以通过将临时结果连续乘以10,然后将读取的最后一个数字的值相加来建立实数。你知道吗
inputFile.read()
返回一个字符串,当您对其进行迭代时,该字符串将被分解为多个字符。假设输入文件的每一个值都在一行中,那么您需要inputFile.read().splitlines()
。你知道吗不过,下面是我的写作方法,并附上注释:
相关问题 更多 >
编程相关推荐