gpt4 book ai didi

python - Unorderable Type 错误在 Python 中意味着什么?

转载 作者:太空狗 更新时间:2023-10-29 21:40:41 24 4
gpt4 key购买 nike

from urllib.request import urlopen
page1 = urlopen("http://www.beans-r-us.biz/prices.html")
page2 = urlopen("http://www.beans-r-us.biz/prices-loyalty.html")
text1 = page1.read().decode("utf8")
text2 = page2.read().decode("utf8")
where = text2.find(">$")
start_of_price = where + 2
end_of_price = where + 6
price_loyal = text2[start_of_price:end_of_price]
price = text1[234:238]
password = 5501
p = input("Loyalty Customers Password? : ")
passkey = int(p)

if passkey == password:
while price_loyal > 4.74:
if price_loyal < 4.74:
print("Here is the loyal customers price :) :")
print(price_loyal)
else:
print( "Price is too high to make a profit, come back later :) ")
else:
print("Sorry incorrect password :(, here is the normal price :")
print(price)
input("Thanks for using our humble service, come again :), press enter to close this window.")

我遇到的问题是它一直运行到我得到 4.74 部分。然后它停止并提示无法订购的类型。我完全不明白这是什么意思。

最佳答案

price_loyal 是一个字符串(即使它包含您使用 find 找到的数字),您正试图将其与数值 (4.75) 进行比较?为了您的比较尝试

float (price_loyal)

更新(感谢@agf):

使用 Python v 3.x,您会收到您提到的错误消息。

>>> price_loyal = '555.5'
>>> price_loyal > 5000.0
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
price_loyal > 5000.0
TypeError: unorderable types: str() > float()
>>>

鉴于

>>> float(price_loyal) > 5000.0
False

在这种情况下,Python 的版本会有所不同,因此始终提及正在使用的版本可能是个好主意。 以前 ... 使用 Python v 2.x

如果不首先将 string 转换为 float,您的比较将会关闭。例如,

price_loyal
'555.5'

这个与字符串和 float 的比较给出了 True

price_loyal > 5000.0
True

这个与 float 和 float 的比较给出了 False,因为它应该

float(price_loyal) > 5000.0
False

可能还有其他问题,但这看起来像一个。

关于python - Unorderable Type 错误在 Python 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779187/

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