Funkcja "wyrzuca" none.

0

Muszę napisać prosty program który łączy dwie listy oraz usuwa powtarzające się elementy. Napisałem coś takiego :

lista1=[]
x=int(input("Podaj ilość elementów listy pierwszej:"))
for i in range(int(x)):
    y=int(input("Podaj wartość liczby "))
    lista1.append(y)

lista2=[]
x=int(input("Podaj ilość elementów listy drugiej:"))
for i in range(int(x)):
    y=int(input("Podaj wartość liczby "))
    lista2.append(y)
print ("Twoja pierwsza lista to: " + str(lista1))
print ("Twoja druga lista to: " + str(lista2))
lista3= lista1+lista2
print("Połączenie dwóch list daje:",lista3)
print("Po uporządkowaniu", list(set(lista3)))

Generalnie wszystko ładnie, ale można też napisać prostą funkcję :

   lista3=lista1+lista2
   print(set(lista3))
print("Po połączeniu mamy",laczenie((1,2,3,4),(5,4,3,1)))

Jedna owa funkcja robi co ma robić ale otrzymuję :
screenshot-20190322140510.png
Jak pisać tego typu funckje?

0

Pewnie twoja funkcja laczenie nic nie zwraca. Musisz użyć return żeby zwrócić wartość z funkcji http://book.pythontips.com/en/latest/global_&_return.html

0

Napisać prostą funkcję(?!?):

    lista3=lista1+lista2
    print(set(lista3))

To nie jest funkcja, funkcja ma definicję, i tak dalej:

def concat_without_repetition(xs, ys):
    return set(xs + ys)

I teraz Możesz:

print(concat_without_repetition(lst1, lst2))
0
lion137 napisał(a):

Napisać prostą funkcję(?!?):

    lista3=lista1+lista2
    print(set(lista3))

To nie jest funkcja, funkcja ma definicję, i tak dalej:

def concat_without_repetition(xs, ys):
    return set(xs + ys)

I teraz Możesz:

print(concat_without_repetition(lst1, lst2))

Aj, zapomniałem skopiować jednej linijki. Oczywiście była powyżej zdefiniowana funkcja.
Dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1