我正在编写一个小Python程序,它应该找到两个数字之间的最大公约数。到目前为止,一切都很顺利,但我无法让程序在程序提供的两个列表中找到正确的公共元素。 您还可以看到列表“combines_prime_lst”在“common_member()”函数中分配,但当代码返回“ggT()”函数时显示为空。该变量在代码顶部被分配为空列表。
我检查了,列表实际上是列表,我尝试使用 junction() 函数和 & 方法。我得到的输出总是错误的。
combined_prime_lst = common_member(prime_number_lst_1, prime_number_lst_2)
print("Common elements 2:", combined_prime_lst)
print("Der ggT von", number_1, "und", number_2, "ist:", combined_prime_lst)
def common_member(lst_1, lst_2):
lst1 = set(lst_1)
lst2 = set(lst_2)
combined_prime_lst = list(set(lst1).intersection(lst2))
print("Common elements:", combined_prime_lst)
if combined_prime_lst == []:
print("Keine gemeinsamen Elemente.")
最后这是我运行程序时得到的输出。
Was ist deine erste Zahl? 36
Wie lautet deine zweite Zahl? 66
Fist list: [2, 2, 3, 3]
Second list: [2, 3, 11]
Common elements 2: []
Der ggT von 36 und 66 ist: []
您遇到的问题是因为您将 common_member(lst_1, lst_2); 的结果分配给“combined_prime_lst”;但这个函数实际上并没有返回任何东西。因此,在函数“combined_prime_lst”内部有一个值,但在其外部您要为其分配“None”
这是我修改代码的方法:
prime_number_lst_1 = [2, 2, 3, 3]
prime_number_lst_2 = [2, 3, 11]
def common_member(lst_1, lst_2):
lst1 = set(lst_1)
lst2 = set(lst_2)
combined_prime_lst = list(set(lst1).intersection(lst2))
print("Common elements:", combined_prime_lst)
if combined_prime_lst == []:
print("Keine gemeinsamen Elemente.")
return combined_prime_lst
combined_prime_lst = common_member(prime_number_lst_1, prime_number_lst_2)
print("Common elements 2:", combined_prime_lst)
number_1, number_2 = combined_prime_lst
print("Der ggT von", number_1, "und", number_2, "ist:", combined_prime_lst)
输出:
Common elements: [2, 3]
Common elements 2: [2, 3]
Der ggT von 2 und 3 ist: [2, 3]