【问题标题】:Something wrong with the colon in a for loop (runtime error/ syntax error)for 循环中的冒号有问题(运行时错误/语法错误)
【发布时间】:2023-03-05 01:41:01
【问题描述】:

我是 Leetcode 的一名程序员,它说我在 for 循环中的冒号有误。 这是我的代码:

class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
    strnums = []
    for i in strnums: strnums += str(i)
    for n1 in range(1, len(nums) + 1):
        for n2 in range(1, len(nums)+1):
            if nums[n1] == nums[n2]
                pass
            elif n1 + n2 == target:
                print(nums[n2])
            else:
                pass

第 5 行和第 6 行有问题,

有人会帮助我吗?

【问题讨论】:

  • 两个 for 循环的缩进级别相同,这是错误的。
  • 第 7 行缺少一个冒号。注意“有问题”是含糊的。给我们完整的追溯
  • 第四行也少了一个冒号。第二行没有正确缩进。
  • 第五行的冒号与我手机浏览器中其他冒号的打印方式不同。检查它实际上是一个 ASCII 冒号。

标签: python python-3.x loops for-loop colon


【解决方案1】:

第 4 行

for i in strnums: strnums += str(i)

strnums 为空,此循环不会迭代。

第 7 行

 if nums[n1] == nums[n2]

if 语句末尾缺少冒号。

【讨论】:

    【解决方案2】:

    缺少多个冒号,并且多个位置也缺少缩进。 Python 对缩进很敏感。 for 循环、函数、类等的主体必须从其声明中缩进:

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            strnums = []
            for i in strnums: 
                strnums += str(i)
                for n1 in range(1, len(nums) + 1):
                    for n2 in range(1, len(nums)+1):
                    if nums[n1] == nums[n2]:
                        pass
                    elif n1 + n2 == target:
                        print(nums[n2])
                    else:
                        pass
    

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多