Mon code fonctionne, mais je veux supprimer "Aucun" de la sortie. Comment puis-je le faire?

def permutation(a,b):
    c = sorted(a)
    d = sorted(b)

    if c == d :
        return print(a," and ", b ," are permutations")
    else:
        count = 0
        for i in c:
            if c in d:
                d.remove(d.index(c))
            else:
                count = count + 1
        return print(a, " and ", b, " are NOT permutations; no. of differences = ", count)

print(permutation([10, 9, 11, 1] , [9,1,11,10] ))
print(permutation([10, 9, 1, 10] , [8,1,11,10]))

Voici ma sortie:

[10, 9, 11, 1]  and  [9, 1, 11, 10]  are permutations
None
[10, 9, 1, 10]  and  [8, 1, 11, 10]  are NOT permutations; no. of differences =  4
None
0
mehmedbesim 3 nov. 2019 à 18:11

2 réponses

Utilisez cette fonction

def permutation(a,b):
    c = sorted(a)
    d = sorted(b)

    if c == d :
        return (a," and ", b ," are permutations")
    else:
        count = 0
        for i in c:
            if c in d:
                d.remove(d.index(c))
            else:
                count = count + 1
        return (a, " and ", b, " are NOT permutations; no. of differences = ", count)
print(permutation([10, 9, 11, 1] , [9,1,11,10] ))
print(permutation([10, 9, 1, 10] , [8,1,11,10]))

dans la fonction [retour impression (quelque chose)] n'est pas valide

0
Gao Jin 3 nov. 2019 à 15:39

Print envoie des valeurs à la sortie standard du programme, il n'essaie pas de renvoyer de valeur. Toute fonction ou méthode qui ne renvoie pas de valeur entraînera le retour implicite de None. C'est de là que vient le None (vous le renvoyez à print(permutation(...))). Essayez de renvoyer une chaîne formatée à la place:

return f"{a} and {b} are permutations"
...
    return f"{a} and  {b} are NOT permutations; no. of differences = {count}"
0
flakes 3 nov. 2019 à 15:22