是什么导致第一个代码块工作,但第二个代码块返回语法错误?

时间:2019-06-01 01:56:31

标签: python python-3.x

我正在网站上练习Python,但我的程序在第9行返回了语法错误,但是在网站上提供的问题的示例答案中,同一行代码在我的程序中正在正常工作。只是好奇是什么导致了我的程序中的问题?问题的关键是从2个列表中取出数字,从列表1中找到偶数,并从列表2中找到奇数,并使用偶数和奇数创建第三个列表。我将其更改为从两者中找到偶数和奇数,并从列表一和列表二中提取了一个偶数和奇数列表,但是我认为它仍然可以工作...

Python的新手。甚至不确定该尝试什么。

网站提供的代码:

def mergeList(listOne, listTwo):
  thirdList = []
  for num in listOne:
    if(num % 2 != 0):
      thirdList.append(num)
  for num in listTwo:
    if(num % 2 == 0):
      thirdList.append(num)
  return thirdList

print("Merged List is")
listOne = [10, 20, 23, 11, 17]
listTwo = [13, 43, 24, 36, 12]
print(mergeList(listOne, listTwo))

我的代码

list1 = [81, 71, 61, 34, 55]
list2 = [14, 19, 48, 32, 91]

def mergelist(list1, list2):
    mergedlist = list1 + list2
    even = []
    odd = []
    for num in mergedlist:
        if (num % 2 = 0):
            even.append(num)
            else:
            odd.append(num)
print("even: " + even)
print("odd: " + odd)

我的程序应将列表1和2合并为一个列表“ mergedlist”,然后在列表中搜索偶数并将其附加到偶数列表。非偶数,奇数应附加到奇数列表中。然后最后打印偶数和奇数列表。我的程序说第9行出现语法错误。

2 个答案:

答案 0 :(得分:1)

您有一个等号,它是赋值,不能在if语句中完成。

您需要两个等号,如原始号一样。而且您不需要括号:

if num % 2 == 0:

答案 1 :(得分:-2)

list1 = [81, 71, 61, 34, 55]   
list2 = [14, 19, 48, 32, 91] 

def mergelist(list1, list2):
  mergedlist = list1 + list2
  even = []
  odd = []
  for num in mergedlist:
    if num % 2 == 0:
        even.append(num)
    else:
        odd.append(num)
  print("even:", even)
  print("odd:", odd)

调用函数

mergelist(list1, list2)

以上代码是您代码的有效版本,并进行了以下更正
1)如上一个答案所述,您需要在if条件下使用关系/比较运算符“ ==”来代替赋值运算符“ =”。
2)else和以下语句的缩进是错误的。
3)列表无法连接,因此应使用代替+
4)最后,您必须使用参数outside调用函数。