如何在python中使用join在一行中转换以下代码输出..目前用于两个单词输入我正在两行中输出

时间:2018-09-10 09:04:31

标签: python string

def cat_latin_word(text):
    """ convert the string in another form
    """

    constant = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"

    for word in text.split():
        if word[0] in constant:
            word = (str(word)[-1:] + str(word)[:4] + "eeoow")
        else:
            word = (str(word) + "eeoow")
        print(word)



def main():
    """ converts"""
    text = input("Enter a sentence ")
    cat_latin_word(text)

main()

3 个答案:

答案 0 :(得分:1)

一些指针:

  • 将您的代码转换为“一行”并没有使它变得更好。
  • 无需键入所有辅音,使用string模块,并使用set可以提高O(1)查找的复杂度。
  • 使用格式化的字符串文字(Python 3.6+)获得更易读和有效的代码。
  • 无需在已经为字符串的变量上使用str
  • 对于单行,可以将列表理解与三元语句和' '.join一起使用。

这是一个可行的示例:

from string import ascii_lowercase, ascii_uppercase

def cat_latin_word(text):

    consonants = (set(ascii_lowercase) | set(ascii_uppercase)) - set('aeiouAEIOU')

    print(' '.join([f'{word}eeow' if not word[0] in consonants else \
                    f'{word[-1:]}{word[:4]}eeoow' for word in text.split()]))

text = input("Enter a sentence ")
cat_latin_word(text)

答案 1 :(得分:0)

您可以使用列表放置所有单词,或以其他方式使用print()
示例:

print(word, end="\t")

在这里我使用关键字参数end将其设置为'\t'(默认为'\n'

答案 2 :(得分:0)

只需编辑代码即可以空格分隔的单词形式返回结果。

def cat_latin_word(text):
    constant = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"
    result = []
    for word in text.split():
        if word[0] in constant:
            word = (str(word)[-1:] + str(word)[:4] + "eeoow")
            result.append(word)
        else:
            word = (str(word) + "eeoow")
            result.append(word)

    return ' '.join(result)

def main():
    text = 'ankit jaiswal'
    print(cat_latin_word(text))