这很难解释,但是我希望编译器将这些值一起识别为一个长数字,而不是将每个数字视为一个单独的数字。
例如,这是我的字符串输出:
42202
47224
44807
51289
58056
51258
48079
16156
38954
9
(9,因为它认为最大的数是9,而这里显然不是)
这是我的代码:
def main():
totalSum = 0
data = open('input.txt', 'r')
elvesList = data.readlines()
for line in elvesList:
line.rstrip()
if (line[0] != 'n'):
totalSum += int(line)
else:
aString = str(totalSum)
print(aString)
totalSum = 0
continue
highestValue(aString)
return str(aString)
def highestValue(aString):
print(max(aString))
main()
因为它是一个字符串,代码将每个数字识别为它自己的数字,所以像'4','2','2','0','2'而不是42202。我怎样才能让它识别数字为42202而不将其转换为int?
我不能将其转换为int类型,因为我想使用max()函数找到最大的数字,并且我不能在int类型上使用max(),因为编译器抱怨'int'对象不可迭代。
我不能将其转换为int类型,因为我想使用max()函数来找到最大的数字,并且我不能在int类型上使用max(),因为编译器抱怨'int'对象不可迭代
是的,你可以做那些事情,如果你用正确的方法去做。
读取文件中的行,将每行转换为整数,将整数放入列表中,并在列表中调用max()
。
with open('input.txt') as data:
numbers = [int(line) for line in data if line.strip()]
print(max(numbers))