当我使第一个参数小于小数点后三位并尝试将其转换为小数点后三位时,它不会这样做。它只会将其添加到我编写的列表中。如果值为 9.13,则不会在列表中打印为 9.130,它仍然是 9.13。我尝试过
round
函数、格式设置等。此外,当将整数添加到列表中时,它只会打印到小数点后一位。例如,27 只会打印 27.0,而不是 27.000。
import math
def generate_num(LowNum, HighNum):
try:
LowNum = float(LowNum)
HighNum = float(HighNum)
except ValueError:
return False
except KeyboardInterrupt:
quit()
LowNum = round(LowNum, 3)
sequence = [LowNum]
j = sequence[-1]
while j <= HighNum:
i = (math.sqrt((j) ** 3))
i = round(i, 3)
if i <= HighNum:
sequence.append(i)
j = i
else:
break
return sequence
print(generate_num(9, 923))
函数 round() 并不能确定列表打印时的格式。它只是将数字四舍五入到小数点后三位。 9.13 四舍五入至 3 位,仍为 9.13。 如果我理解正确的话,您希望数字的格式全部精确到小数点后 3 位。 为此,您必须使用某种字符串格式表达式。例如,您可以使用它代替 print():
for num in generate_num(9,923):
print(f'{num:.3f}')
根据您的喜好,如果您还手动打印括号和逗号,则可以打印类似列表的内容。