【问题标题】:Python : What is the purpose of a colon in an if statement?Python:if 语句中冒号的目的是什么?
【发布时间】:2016-10-16 11:04:55
【问题描述】:

我下面有这段python代码。

def m(list):
    v = list[0]
    for e in list:
        if v < e:
            v = e
        return v

values = [[3, 4, 5, 1], [33, 6, 1, 2]]

for row in values: 
    print(m(row), end=" ")

结果是 5, 33。

有人可以解释一下 if 语句 if v &lt; e: v = e 吗?

【问题讨论】:

  • 如果 v 是 5 而 e 是 3 - 什么也不会发生。如果 v 为 1 且 e 为 3 - 则 v 设置为 3

标签: python if-statement


【解决方案1】:
if v < e: v = e

可以读作:“如果v小于e,则使v为e的值。”

如上所述,您应该换一个新行以使其更易于阅读:

if v < e:
    v = e

【讨论】:

    【解决方案2】:
    In [8]: v = 1
    In [9]: e = 2
    In [10]: if v < e: v = e
    In [11]: v
    Out[11]: 2
    In [12]: e
    Out[12]: 2
    

    等同于:

    In [13]: v = 1
    In [14]: e = 2
    In [15]: if v < e:  # if True execute next statement 
       ....:     v = e
       ....:     
    In [16]: v
    Out[16]: 2
    In [17]: e
    Out[17]: 2
    

    【讨论】:

      【解决方案3】:

      英文叫冒号,不是双冒号或双逗号。

      我强烈建议您阅读 Python 的基本介绍。

      if v < e: v = e
      

      等同于:

      if v < e:
          v = e
      

      【讨论】:

        【解决方案4】:

        另一种编写代码的方法是这样的,仅用于学习目的:

            def max_nest_list(lst):
                max_numbers = []
                for sub_list in lst:
                    max_num = sub_list[0]
                    for num in sub_list[1:]:
                        if num > max_num:
                             max_num = num
                    max_numbers.append(max_num)
                return max_numbers
        
            values = [[3, 4, 5, 1], [33, 6, 1, 2]]
            for item in max_nest_list(values):
                print(item, end = " ")
        
            #Output
            5 33
        

        或者更简洁:

            def max_nest_list2(lst):
                return [max(i) for i in lst]
        
            values = [[3, 4, 5, 1], [33, 6, 1, 2]]
            for item in max_nest_list(values):
                print(item, end = " ")
        

        【讨论】:

        • 但是,正如其他人所说,您的代码是正确的,如果您不将条件 if 语句与执行部分隔开,那么它的可读性就会降低。
        猜你喜欢
        • 2011-09-27
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        • 2021-01-14
        • 1970-01-01
        相关资源
        最近更新 更多