TypeError:unorderable类型:str()< = int()

时间:2016-08-22 01:34:48

标签: python typeerror python-3.5

我正在尝试获取列表share_list,然后逐个遍历列表并生成针对结果定制的输出。我有两个问题:我不知道如何使用for循环遍历列表,我收到此错误:

Traceback (most recent call last):
  File "C:\Users\Andrew\Documents\Python Projects\DataAnalytics\algorithm.py", line 9, in <module>
    if check_pb_ratio.get_price_book() <= 1:
TypeError: unorderable types: str() <= int()
from yahoo_finance import Share

share_list = ['AAPL', 'GEVO', 'PTX']


for ticker in share_list:
    check_pb_ratio = Share(share_list[0])

    if check_pb_ratio.get_price_book() <= 1:
        print(str(check_pb_ratio.get_price_book()))
    else:
        print("P/B Ratio is too high.")

2 个答案:

答案 0 :(得分:0)

这样做的原因是函数check_pb_ratio.get_price_book()返回一个字符串,而不是一个int。 Python并不想知道&#39; 1&#39;之间的相似性。 1.所以,解决问题的方法是:在int()附近添加float()check_pb_ratio.get_price_book()

答案 1 :(得分:0)

感谢@Rawing

此代码现在可以使用,我只需修复一个NoneType问题。谢谢!

from yahoo_finance import Share

share_list = ['AAPL', 'GEVO', 'PTX']


for ticker in share_list:
    check_pb_ratio = Share(ticker)

    if float(check_pb_ratio.get_price_book()) <= 1:
        print(str(check_pb_ratio.get_price_book()))
    else:
        print("P/B Ratio is too high.")