Python3中格式化输出浮点数列的实现问题求助
解决你的浮点数列格式化输出问题
我来帮你搞定这个格式化输出的麻烦!先看看你代码里的几个小问题,然后给你修正后的完整代码:
你的代码里的问题点
- 你用列表推导式
[float(k) for k in D]把输入的字符串转成了浮点数,但没把结果赋值回D,所以D还是原来的字符串列表,后面循环里每次float(i)虽然能运行,但有点多余; - 最后输出计算结果时,没有处理成保留两位小数的格式,这就是你遇到的核心问题。
修正后的完整代码
import math C = 50.0 H = 30.0 # 接收输入并直接转成浮点列表,同时处理输入中可能的空格 D = [float(k.strip()) for k in input("Please input the D-Values\n").split(",")] print("D = {}".format(D)) Q = [] for i in D: j = math.sqrt((2 * C * i) / H) Q.append(j) print("The answers are") # 逐个输出保留两位小数的结果 for num in Q: print("{0:.2f}".format(num)) # 如果需要输出成逗号分隔的一行字符串,用下面这行替换上面的循环: # print(", ".join("{0:.2f}".format(num) for num in Q))
关键修改说明
- 输入处理优化:把输入拆分后直接用列表推导式转成浮点数并存回D,还加了
strip()处理用户输入中可能带的空格(比如10, 20, 30这种带空格的情况); - 格式化输出:用
"{0:.2f}".format(num)来把每个计算结果格式化为保留两位小数的浮点数,两种输出方式可以根据你的需求选择。
内容的提问来源于stack exchange,提问作者new2Ubuntu
相关产品推荐
相关产品推荐

