提问人:RykerStrike 提问时间:11/4/2023 最后编辑:RykerStrike 更新时间:11/9/2023 访问量:84
如何在 .txt 文件中找到最小的浮点数?
How find the smallest floating point number in a .txt file?
问:
问题来了:
假设您有一个文本文件,其中包含浮点数列表,每行一个数字。编写 Python 程序,该程序将搜索文件并找到最小的数字并将其打印到控制台。
我们不能使用 、 、 、 或 这样的函数。.readlines()
with
try
inf
None
这就是我所拥有的,我被困住了。
in_file = open("floating-point.txt", "r")
def get_smallest_float():
count = 0
for line in in_file:
num = float(line)
if count == 0:
if num > 0:
smallest = num
count = count + 1
elif count == 1:
if num < smallest:
num = smallest
count = count + 1
in_file.close()
return smallest
get_smallest = get_smallest_float(in_file)
print(get_smallest)
答:
0赞
Richard Barber
11/4/2023
#1
有一些逻辑和语法错误,但这似乎有效。 我删除了阳性数字测试。问题说的是最小数,而不是最小的绝对值。新最低限度的分配也被撤销。此解决方案不处理平局的情况。
in_file = open("floating-point.txt", "r")
def get_smallest_float():
count = 0
for line in in_file:
num = float(line)
if count == 0:
smallest = num
count = count + 1
elif count > 0:
if num < smallest:
smallest = num
count = count + 1
in_file.close()
return smallest
get_smallest = get_smallest_float()
print(get_smallest)
和差异:
diff -u before after
--- before 2023-11-03 22:23:58
+++ after 2023-11-03 22:23:19
@@ -6,15 +6,15 @@
for line in in_file:
num = float(line)
if count == 0:
- if num > 0:
smallest = num
count = count + 1
- elif count == 1:
+ elif count > 0:
if num < smallest:
- num = smallest
+ smallest = num
count = count + 1
in_file.close()
return smallest
-get_smallest = get_smallest_float(in_file)
+get_smallest = get_smallest_float()
print(get_smallest)
给定此浮点 .txt:
1.0
1.1
1.2
0.9
-.01
.01
其结果是 :-0.01
给定浮点 .txt 与这些:
1.0
1.1
1.2
0.9
-.01
.01
-.02
-.001
其结果是 :-0.02
0赞
Codist
11/4/2023
#2
这些限制很奇怪。但是,考虑到这些限制,它就很简单:
for i, fv in enumerate(map(float, open("floating-point.txt"))):
lo = min(lo, fv) if i else fv #type: ignore
print(lo) #type: ignore
0赞
chux - Reinstate Monica
#3
我期待更像这样的东西:
for line in in_file:
num = float(line)
if (count == 0) or (num < smallest)
smallest = num
count = count + 1
评论
count
num > 0