【问题标题】:Syntax error while creating a new empty list in python3在 python3 中创建新的空列表时出现语法错误
【发布时间】:2020-06-30 13:41:17
【问题描述】:

所以我是一个完整的新手,这是我在 python3 中编写的一个脚本,用于查找小于给定整数且可被 3 和 5 整除的所有数字:

def check_divisible():  
 num=(int(input("Give me a number: "))
 result = [ ]
 for i in range(num):
    if i<= num and num%3==0 and num%5==0:
        result.append(i)
        i+=1
 print("Numbers which are smaller than the given and divisile by both 3 and 5 are: ",result)

每当我执行代码时,我都会在第 3 行收到语法错误。我该如何解决这个问题?任何帮助将不胜感激。

【问题讨论】:

  • 在问题中将完整的回溯显示为格式正确的文本。
  • 计算你在第 2 行有多少 ()。另外请注意,你不需要 i += 1i 将自动递增,因为您循环了 range

标签: python list syntax python-3.7


【解决方案1】:
def check_divisible():  
 num= int(input("Give me a number: "))
 result = []
 for i in range(num):
    if i<= num and num%3==0 and num%5==0:
        result.append(i)
        i+=1
 print("Numbers which are smaller than the given and divisile by both 3 and 5 are: ",result)

只是一些括号问题。修复了代码。

【讨论】:

    【解决方案2】:
    def check_divisible():
        num = int(input("Give me a number: "))
        result = []
        for i in range(1, num):
            if i%3==0 and i%5==0:
                result.append(i)
      print(result)
    

    【讨论】:

    • 你能解释一下为什么我不能从0开始吗?
    • 如果你想要它在列表中,你可以。只是通常认为您不会将 0 放在可整除的数字列表中。
    • 所以我测试了你的代码并修复了错误,但返回的结果是一个空列表。请问这是为什么呢?
    • 你用的是什么号码。 3 和 5 的最小公倍数是 15。因此您至少需要 16 作为输入。
    • 所以这是回溯:python temp.py 给我一个数字:26 给定以下且可被 3 和 5 整除的数字是:[]
    猜你喜欢
    • 2017-01-21
    • 1970-01-01
    • 2012-04-10
    • 2022-01-22
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2021-09-19
    • 2019-05-03
    相关资源
    最近更新 更多