【问题标题】:Python programming; [duplicate]Python编程; [复制]
【发布时间】:2018-02-01 12:15:20
【问题描述】:
a=[1, 2, 3, -2, -5, -6, 'geo'] 

for I in a:
    if I == star:
        continue
    if I<0:
        print('I=', I) 

我不知道如何让我的程序提取负数并只打印它们以避免字符串。请帮我。

【问题讨论】:

    标签: python python-3.x for-loop if-statement


    【解决方案1】:

    这就是我认为您正在寻找的东西。我修复了几个格式问题。

    a = [1, 2, 3, -2, -5, -6, 'geo'] 
    
    for I in a:
        if I == 'star':
            continue
        try:
            if I < 0:
                print('I=', I) 
        except TypeError:
            continue
    
    # I= -2
    # I= -5
    # I= -6
    

    已更新为仅捕获 TypeError 以外的错误。

    【讨论】:

    【解决方案2】:

    据我了解,您只想打印负整数。
    下面的代码应该做到这一点:

    a=[1, 2, 3, -2, -5, -6, 'geo']
    
    for I in a:
        if type(I) is int:
            if I < 0:
                print('I=', I)
    

    输出:
    我= -2
    我= -5
    我= -6

    【讨论】:

    • 您应该使用isinstance(I, int) 而不是检查显式类型标识。
    • @poke 已经有一个提到 isinstance() 方法的答案,所以我写了一个不同的答案。加上它更容易阅读和理解。 :)
    【解决方案3】:

    isinstance 是要走的路。

        if isinstance(l, int) and l < 0:
            print('l=', l)
    

    【讨论】:

    猜你喜欢
    • 2019-05-16
    • 2017-03-12
    • 2011-05-04
    • 2012-12-20
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多