我有一个包含数字11 5 3 51的文件,我试图使用扫描仪读取文件,然后打印出该文件中的最小数字。但由于某种原因,当我运行下面的程序时,它一直说"最小的数字是7"大声笑和我喜欢的程序甚至从哪里获得7号?文件或我的程序中的任何地方都没有数字......这可能是什么问题?
from scanner import*
def main():
s = Scanner("data.txt")
items = ("data.txt")
i = s.readint()
ismallest = 0
for i in range(0,len(items),1):
if (items[i] < items[ismallest]):
ismallest = i
print ("the smallest number is", i)
main()
答案 0 :(得分:0)
我在open
而不是Scanner
content = [];
with open("input.txt") as f:
content = f.readline().split()
ismallest = int(content[0])
for i in range(0,len(content),1):
if (int(content[i]) < ismallest):
ismallest = int(content[i])
print ("the smallest number is", ismallest)
编辑:好的,我认为如果您想使用Scanner
,这应该有效:
s = Scanner("data.txt")
items = []
currentInt = s.readint()
while currentInt:
items.append(currentInt)
currentInt = s.readint()
ismallest = items[0]
for i in range(0,len(items),1):
if (items[i]) < ismallest):
ismallest = items[i]
print ("the smallest number is", ismallest)
答案 1 :(得分:0)
在for
循环中,您拨打for i in range...
。您正在将i
重新分配给range()
。
我在调用print i
语句后立即复制了代码并添加了for
,并打印出以下内容:
0
1
2
3
4
5
6
7
('the smallest number is', 7)
所以一开始就不考虑你的i = s.readint()
。我建议重命名你的变量,你的错误应该是:)
此外,您只需阅读文件,拆分内容,然后使用max()
或min()
内置功能进行打印。