随机化一个单词中的字母

时间:2013-12-15 23:58:13

标签: python

问题要求用户输入一个单词字符串,然后随机化单词中字母的位置,例如,“hello”可以变成“elhlo”

import random

def word_jumble():
    word = raw_input("Enter a word: ")
    new_word = ""
    for ch in range(len(word)):
        r = random.randint(0,len(word)-1)
        new_word += word[r]
        word = word.replace(word[r],"",1)
    print new_word

def main():
    word_jumble()

main()

我从其他人那里得到了该程序,但不知道它是如何工作的。有人可以向我解释一下吗?

之前我了解一切
new_word += word[r]

3 个答案:

答案 0 :(得分:2)

代码不必要地复杂,也许这会更容易理解:

import random
word = raw_input("Enter a word: ")

charlst = list(word)        # convert the string into a list of characters
random.shuffle(charlst)     # shuffle the list of characters randomly
new_word = ''.join(charlst) # convert the list of characters back into a string

答案 1 :(得分:1)

r是单词中随机选择的索引,因此word[r]是单词中随机选择的字符。代码的作用是从word中选择一个随机字符并将其附加到new_wordnew_word += word[r])。下一行将删除原始单词中的字符。

答案 2 :(得分:0)

如果您使用bytearray,则可以直接使用random.shuffle

import random
word = bytearray(raw_input("Enter a word: "))
random.shuffle(word)