1

ユーザーから文を取得し、その単語の真ん中の文字をごちゃまぜにするプログラムをPythonで作成しようとしていますが、他の文字はそのままにしています...現在、すべてのユーザー入力を再配置し、忘れるだけのコードがありますスペース...自分のコードに自分で話させます..ITは1つの単語の入力でうまく機能します.要約するだけだと思います...ユーザーが入力する各単語をランダム化し、後で他の単語をそのままにしておく必要があります..

import random


words = input("Enter a word or sentence") #Gets user input

words.split()

for i in list(words.split()): #Runs the code for how many words there are

    first_letter = words[0] #Takes the first letter out and defines it

    last_letter = words[-1] #Takes the last letter out and defines it

    letters = list(words[1:-1]) #Takes the rest and puts them into a list

    random.shuffle(letters) #shuffles the list above

    middle_letters = "".join(letters) #Joins the shuffled list

    final_word_uncombined = (first_letter, middle_letters, last_letter)                       #Puts final word all back  in place as a list

final_word = "".join(final_word_uncombined) #Puts the list back together again

print(final_word) #Prints out the final word all back together again
4

3 に答える 3

2

あなたのコードはほぼ正しいです。修正版は次のようになります。

import random

words = raw_input("Enter a word or sentence: ")
jumbled = []

for word in words.split(): #Runs the code for how many words there are
    if len(word) > 2:       # Only need to change long words
        first_letter = word[0] #Takes the first letter out and defines it
        last_letter = word[-1] #Takes the last letter out and defines it
        letters = list(word[1:-1]) #Takes the rest and puts them into a list
        random.shuffle(letters) #shuffles the list above
        middle_letters = "".join(letters) #Joins the shuffled list
        word = ''.join([first_letter, middle_letters, last_letter])

    jumbled.append(word)

jumbled_string = ' '.join(jumbled)
print jumbled_string
于 2012-10-24T16:06:51.677 に答える
0

それで、私はこの質問を読んで、アパートで昼食をとっていたとき、交通を通り抜けなければなりませんでした。とにかく、ここに私の1行の貢献があります。真剣にアレクセイの答えはそれがどこにあるかです。

sentence = input("Enter a word or sentence")
print " ".join([word[0] + ''.join(random.sample(list(word[1:-1]), len(list(word[1:-1])))) + word[-1] for word in sentence.split()])
于 2012-10-24T16:28:37.297 に答える
0

私があなたの質問を正しく理解していれば、あなたは順調に進んでいるように見えます。これをすべての単語に拡張する必要があります

randomized_words = []
for word in words.split():
   #perform your word jumbling
   radomized_words.append(jumbled_word)

print ' '.join(randomized_words)

これにより、別の乱雑な単語リストが作成されます。ユーザーの単語入力の各単語は、順序を保持するためにごちゃまぜになってリストに追加されます。最後に、ごちゃごちゃした単語のリストが出力されます。各単語はユーザーが入力した順序と同じですが、文字がごちゃ混ぜになっています。

于 2012-10-24T15:54:04.673 に答える