首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -在一个句子中翻转每个单词的两个字符

Python -在一个句子中翻转每个单词的两个字符
EN

Stack Overflow用户
提问于 2016-07-15 16:23:21
回答 2查看 237关注 0票数 0

除了第一个和最后一个字符外,我的函数还随机地翻转一个单词的两个字符。我想使用这个函数来编写另一个函数build_sentence(string),它使用我的函数翻转句子中每个单词的两个字符。函数build_sentence(string)应该返回一个字符串,其中包含scrambled(word)对每个单词的字母进行置乱的完整句子。

例如:

代码语言:javascript
复制
I dn'ot gvie a dman for a man taht can olny sepll a wrod one way. (Mrak Taiwn)

代码语言:javascript
复制
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()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-15 16:32:47

假设您对当前的单词置乱功能感到满意(只需稍加改动,这样就不会对3个或更少字母的单词产生错误):

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2016-07-15 16:36:09

你试过:

代码语言:javascript
复制
' '.join(scramble(word) for word in phrase.split(' '))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38400913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档