在Python3中创建数字排序系统,但出现错误(“ValueError:invalid literal for int(),以10为基数:“”)

2024-09-28 23:27:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当这个程序打开一个包含数字的文件并按顺序打印它们时,我一直在做的一件事。文件NewFile.txt包含

1
2
3
8
3
6
1
8
3
9
10

它应该做的是去想每一行设置它作为一个变量,然后把它的顺序,但我不断得到的错误

ValueError: invalid literal for int() with base 10: ''

此时输入分数位是无用的。你知道吗

以下是迄今为止的代码:

Test = (input("Enter Score: "))
ffs = open("NewFile.txt", "r+")
p = 0
for i in range(1, 10):# numbers going to fine
    for u in range (1, 10):#lines Going to read
       p = (p+1)
       a = int(ffs.readline())
       if a == i:
           print (a)

Tags: 文件toin程序txtfor顺序错误
1条回答
网友
1楼 · 发布于 2024-09-28 23:27:56

file.readline()完成读取时返回空字符串。空字符串不能转换为整数。你知道吗

到达文件末尾是因为您正试图读取81次;外循环运行9次,内循环运行9次,从而得到9*9==81次迭代。你的文件里没有那么多行。你知道吗

您可以将文件读入一个列表:

with open("NewFile.txt", "r+") as ffs:
    numbers = [int(line) for line in ffs]

或者在输入文件的所有行中循环一次并在读取时处理数字:

with open("NewFile.txt", "r+") as ffs:
    for line in ffs:
        number = int(line)

您仍然可以在这里遇到一个的行;您可以用if line.strip():测试它。你知道吗

相关问题 更多 >