Comment brouiller les mots dans une phrase - Python
J'ai créé le code suivant pour brouiller les lettres dans un mot (sauf pour la première et la dernière lettre), mais comment pourrait-on mélanger les lettres des mots dans une phrase; compte tenu de l'entrée en demande une peine à la place d'un mot. Je vous remercie pour votre temps!
import random
def main():
word = input("Please enter a word: ")
print(scramble(word))
def scramble(word):
char1 = random.randint(1, len(word)-2)
char2 = random.randint(1, len(word)-2)
while char1 == char2:
char2 = random.randint(1, len(word)-2)
newWord = ""
for i in range(len(word)):
if i == char1:
newWord = newWord + word[char2]
elif i == char2:
newWord = newWord + word[char1]
else:
newWord = newWord + word[i]
return newWord
main()
- Soupçonné copie de Existe-t-il un moyen de brouillage des chaînes de caractères en Python?.
Vous devez vous connecter pour publier un commentaire.
Diviser la phrase en une liste de mots (et quelques signes de ponctuation) avec le
split
méthode:et ensuite de faire à peu près la même chose que vous faisiez avant, à l'exception d'une liste au lieu d'une chaîne.
Il y a des moyens plus efficaces de faire le swap que ce que tu fais, si:
Si ce que vous voulez vraiment faire, c'est d'appliquer votre word scramble à chaque mot d'une phrase, vous pouvez le faire avec une boucle ou d'une compréhension de liste:
Si vous voulez complètement aléatoire l'ordre du milieu des lettres (ou des mots), plutôt que de simplement la permutation de deux lettres aléatoires (ou des mots), la
aléatoire.shuffle
fonction est susceptible d'être utile.Puis-je suggérer
random.shuffle()
?Pour brouiller l'ordre des mots:
Pour brouiller chaque mot dans une phrase, la préservation de l'ordre:
Si c'est important de conserver la première et la dernière lettre que-est:
shuffle
est impropre à la tâche.