如何合并这些打印报表?

时间:2018-10-26 14:31:41

标签: python

word = input("Translate a word: ")
for char in word:
    if char in "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz":
        print(char + "o" + char)
    else:
        print(char)

我有将此代码翻译为一种语言,可以在每个辅音之后添加“ o”,然后再添加该辅音。当我运行它并输入例如“ stair”时,它将打印出:

sos
tot
a
i
ror

如果有人对如何在没有间距的情况下将其打印在同一行上有个想法,我将非常感谢!

5 个答案:

答案 0 :(得分:2)

不是每次都打印,而是将结果附加到字符串并打印最终的字符串:

word = input("Translate a word: ")
result = ''
for char in word:
    if char not in "aeiouyAEIOUY":
        result+=char + "o" + char
    else:
        result+=char
print(result)

答案 1 :(得分:1)

一种选择是使用列表推导来创建带有您的值的列表:

[char+'o'+char if char in "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz" else char for char in word]

,然后如果需要将它们粉碎成一个字符串,则只需使用join()

''.join([char+'o'+char if char in "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz" else char for char in word])

答案 2 :(得分:0)

将记录添加到列表中,并将print函数与*一起使用,以在同一行中打印记录。

word = input("Translate a word: ")
data = []  #create a empty list
for char in word:
    if char in "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz":
        data.append(char + "o" + char)  #add elements to list
    else:
        data.append(char)  #add elements to list

print(*data, sep='')  #print list elements in single line without spaces

答案 3 :(得分:0)

如果要像现在一样使用打印语句,只需尝试下面定义打印语句结尾的打印语句选项即可。

word = input("Translate a word: ")
for char in word:
    if char in "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz":
        print(char + "o" + char,end="")
    else:
       print(char,end="")

以上代码在输入“ stair”上的输出将为“ sostotairor”。希望对您有帮助!

答案 4 :(得分:-1)

您可以先将列表中的辅音加倍,然后将字符与o连接起来:

word = input("Translate a word: ")
for char in word.lower():
    print('o'.join([char] * ((char not in 'aeiou') + 1)))

示例输入/输出:

Translate a word: stair
sos
tot
a
i
ror