Que va afficher le print dans le code Python suivant (en considérant que l'utilisateur saisira 7 quand demandé) ?
x = input()
print(x * int(x), sep=x, end=x)

🔘 77777777
🔘 77777777777777
🔘 777777777777
🔘 7 7 7 7 7 7 77
🔘 Une erreur

(Essayez sans tricher :) )

#Python #Quizz #tordu

J’ai oublié de préciser Python 3 of course 😃
Là tu vas comprendre que le typage dynamique et la surcharge d’opérateurs c’est un délire total 😅
Réponse au #Quizz en fait c’est la une, on s’est tous plantés (moi compris) 😅
Pourquoi ?
1. Quand on multiplie un chiffre à une chaîne de caractère #python écrit la chaîne autant de fois que la multiplication...
2. Input() renvoie toujours une chaîne de caractères
3. int(x)*x est traité « comme un seul mot » le séparateur n’est donc jamais utilisé. On accole 7 sept fois d’affilée et on met 7 à la fin 😂

@Roland

sans tricher, la deux ;)

@Roland Je dirais "2", le plus dur après avoir lu l'expression, c'est de compter les "7" ;-)
@r3vlibre J’ai fait la même erreur que toi, c’est la une en fait 😝
@Roland Yep, j'ai tilté en voyant ton toot, le "str * int" donne "une" seule chaîne en fait !

@Roland

Après vérification, et plus de réflexion c'est la 1, c'est logique, il n'y a qu'un str donc sep=x ne s'applique pas ici

@MatthieuBarbu Exactement 😀
Moi aussi j’ai mis la deux. Mais en fait y’a pas de séparateurs parce que Python traite le x*int(x) d’un seul bloc 🤓

@Roland
Pour ceux qui aiment les #Quizz #Python #tordus, que fait ce bout de code :
http://dl.trent.homelinux.org/challenge.gz ?

PS : il est techniquement exécutable mais je doute que vous ayez la quantité de ram nécessaire ^^. Le but est donc de retrouver le code "désobfusquer" dans un premier temps, puis de trouver ce qu'il fait ;-)