我正在编写一个通过 rpm 包执行的脚本,并尝试将包的发布版本与命令行上提供的两个参数--fromVersion 和--toVersion 进行比较。
我以这种方式运行脚本:
python packageSearch.py --package --fromVersion 5.5.0 --toVersion 7.0.0
即使我尝试将命令行参数转换为字符串,我也会得到以下信息:
if ( float(package['version']) >= float(options.fromVersion) and package['version'] <= options.toVersion ):
ValueError: invalid literal for float(): 7.0.21
我搜索了stackoverflow和google,但令我惊讶的是我没有找到任何将int与float进行比较的好例子,或者如果用户输入float,它必须将float与float进行比较。
我也尝试过不转换,然后它可以工作,但比较是错误的。
为什么 python 在这个语句中说无效的语法:
version3 = 5.5.5
File "<stdin>", line 1
version3 = 5.5.5
^
SyntaxError: invalid syntax
但如果我尝试以下操作:
version3 = 5.5
它按预期工作没有问题。这里发生了什么,为什么我不能将 5.5.5 分配给变量,以及将可能是整数或浮点数的值与另一个浮点数进行比较的最佳方法是什么,因为使用 float() 将其转换为浮点数不会似乎工作。