gpt4 book ai didi

python - 使用 float 创建 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:58 25 4
gpt4 key购买 nike

我正在尝试创建一个转换程序,自动将转换后的文本复制到 Windows 剪贴板。我试图做到这一点,以便如果用户输入的数字被取出到小数点后 2 位或更少,它会将取出到 3 位的转换结果复制到剪贴板。如果用户输入的数字被取出到小数点后 3 位或更多位,它会将转换后的结果复制到剪贴板,取出到小数点后 4 位。当我运行代码时,我得到一个 ValueError 但我不知道为什么。这是我得到的错误

line 88, in con
if float_number >= ("%.3f" % float_number):
ValueError: incomplete format

这是给我带来麻烦的代码部分(我在评论中解释了你们可能缺少的东西)

def con():
While True:
print("Return = Main Menu, Surface = RA Conversion")
print(MM_break) #This is defined globally elsewhere
number = (input())
if number in('Return', 'return'):
break
elif number in('Surface', 'surface'):
surf() #I have a def surf() elsewhere in the program
elif number in('help', 'Help'):
help() #I have a def for help() elsewhere
elif number in('end', 'exit', 'quit')
break
else:
try:
float(number)
except ValueError:
print(sys_Error) #I have a global variable for sys_Error elsewhere
break
else:
float_number = float(number)
Convert = float_number/Inches
Results_3 = ("%.3f" % Convert)#converts 3 decimals
Results_4 = ("%.4f" % Convert)#converts to 4 decimals
print(line_break)
print(" ")
print('\t', Results_3)
print('\t', Results_4)
print(line_break)
print(" ")
if float_number >= ("%.3f%" % float_number):
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append(Results_4)#appends Results_4 to clipboard
else:
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append(Results_3)

最佳答案

你的错误表明你在字符串模板中有错误,你缺少一个%:

if float_number >= (".3f" % float_number):

应该是

if float_number >= ("%.3f" % float_number):

悬停,现在您正在尝试将 float 值与字符串进行比较:

if float_number >= ("%.3f" % float_number):

这会抛出一个TypeError:

>>> 0.123 >= '0.123'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: float() >= str()

不要那样做。将 float 与 float 进行比较,使用 round()创建舍入值:

if float_number >= round(float_number, 3):

关于python - 使用 float 创建 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com