【问题标题】:Loops through a whole list循环遍历整个列表
【发布时间】:2021-09-09 13:09:09
【问题描述】:

我有一个非常简单的功能,要求用户输入一个数字列表,然后再输入第二个数字。如果第一个参数中的任何单个数字大于第二个参数,那么它将返回 True,如果第一个参数中的数字都不大,它应该返回 false。看起来很简单,但我正在努力让它在返回布尔值之前遍历整个列表。我遇到的一个新问题引发了一个错误,并说我正在尝试使用 > 运算符将 int 与列表进行比较。

def num_gt(list_num, single_num):

    #breakpoint()
    for i in list_num :
        if i > single_num :
            return True
        else:
             return False


list_num = (input("Please enter list numbers: "))

single_num = (input("Please enter single number: "))

list_num = list(map(int, list_num))

single_num = list(map(int, single_num))

不知道我在哪里出错了。输入被转换为整数列表,并逐步显示它的返回列表。任何帮助表示赞赏

【问题讨论】:

  • 如果single_num 应该是一个单个 数字,你为什么要把它做成一个列表
  • 使用single_num = int(single_num) 代替最后一行。现在它是一个列表,有了这一行,它变成了一个 int,我认为这是最初的意图

标签: python list for-loop


【解决方案1】:

您不需要将单个 num 转换为列表,因为它是单个值。

删除线。

single_num = list(map(int, single_num))

并替换为:

single_num = int(single_num)

你的函数也有点错误,因为它只会检查一个值然后总是返回。相反,它应该检查所有值,并且只有当它们都较小时才返回 false。

def num_gt(list_num, single_num):

    #breakpoint()
    for i in list_num :
        if i > single_num :
            return True
    return False

现在您的函数将检查所有值,然后如果它们都没有返回 True,它将在最后返回 False。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    相关资源
    最近更新 更多