Python - 翻转句子中每个单词的 2 个字符



我的函数随机翻转一个单词的 2 个字符,除了第一个和最后一个字符。我想使用这个函数编写另一个函数build_sentence(string)该函数使用我的函数翻转句子中每个单词的 2 个字符。函数 build_sentence(string) 应返回一个包含完整句子的字符串,其中每个单词的字母已被 scrambled(word) 打乱。

例如:

I dn'ot gvie a dman for a man taht can olny sepll a wrod one way. (Mrak Taiwn)

import random 
def scramble(word):
    i = random.randint(1, len(word) - 2)
    j = random.randint(1, len(word) - 3)
    if j >= i:
        j += 1
    if j < i:
        i, j = j, i
    return word[:i] + word[j] + word[i + 1:j] + word[i] + word[j + 1:]
def main():
    word = scramble(raw_input("Please enter a word: "))
    print (word)
    
main()

你试过吗:

' '.join(scramble(word) for word in phrase.split(' '))

假设您对当前的单词加扰功能感到满意(稍作更改,因此不会在包含 3 个或更少字母的单词上出错):

import random
def Scramble(word):
    if len(word) > 3:
        i = random.randint(1, len(word) - 2)
        j = random.randint(1, len(word) - 3)
        if j >= i:
            j += 1
        if j < i:
            i, j = j, i
        return word[:i] + word[j] + word[i + 1:j] + word[i] + word[j + 1:]
    else:
        return word
def ScrambleSentence(sentence):
    scrambledSentence = ""
    for word in str.split(sentence):
        print(scrambledSentence + "n")
        scrambledSentence += Scramble(word) + " "
    return scrambledSentence.strip()
def main():
    sentence = ScrambleSentence(input("Please enter a sentence: "))
    print (sentence)
main()

最新更新