Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在一行中打印所有条件的结果_Python_If Statement_For Loop_Printing_Conditional - Fatal编程技术网

Python:如何在一行中打印所有条件的结果

Python:如何在一行中打印所有条件的结果,python,if-statement,for-loop,printing,conditional,Python,If Statement,For Loop,Printing,Conditional,我不熟悉编码,我在一个Python实践网站上发现了这个练习问题。说明如下: 编写一个函数translate(),将文本翻译成“rövarspråket”(瑞典语表示“robber's language”)。也就是说,将每个辅音加倍,并在两个辅音之间加上一个“o”。例如,translate(“this is fun”)应返回字符串“tothohisos isos fofunon” 所以我输入了这个代码: def translate(string): vowels=['a','e','i',

我不熟悉编码,我在一个Python实践网站上发现了这个练习问题。说明如下:

编写一个函数translate(),将文本翻译成“rövarspråket”(瑞典语表示“robber's language”)。也就是说,将每个辅音加倍,并在两个辅音之间加上一个“o”。例如,translate(“this is fun”)应返回字符串“tothohisos isos fofunon”

所以我输入了这个代码:

def translate(string):
    vowels=['a','e','i','o','u']
    for letter in string:
        if letter in vowels:
            print(letter)
        else:
            print(letter+'o'+letter)
print(translate('this is fun'))
我得到了这个:

tot
hoh
i
sos
 o 
i
sos
 o 
fof
u
non
None

那么,如何将所有这些字符串放在一行中呢?我已经挠头很久了。请帮助并感谢:)

只需在print函数中使用
end
参数即可。(我假设您使用的是python 3.x,其中
print
是一个函数)


您可以迭代连接字符串。您应该在要排除的字符中包含空格,以避免在空格之间插入
'o'

def translate(string):
    notconsonant = ['a','e','i','o','u', ' ']
    s = ''
    for letter in string:
        if letter in notconsonant:
            s += letter
        else:
            s += letter+'o'+letter
    return s
或者将
join
与通过三元运算符返回右字母组合的生成器表达式一起使用:

请注意,如果将列表设置为集合,则可以加快查找非辅音字母的速度,因为集合的成员资格检查相对较快



尝试将其附加到一个临时字符串中,并在结尾处打印;)

print get将您添加到一个新行。改用连接和新字符串(此处新字符串称为result):


使用变量保存它们,然后在
for
循环后打印。“tothohisos o isos o fofunon”-从
打印(翻译(“这很有趣”)中删除
打印后输出
def translate(string):
    notconsonant = ['a','e','i','o','u', ' ']
    s = ''
    for letter in string:
        if letter in notconsonant:
            s += letter
        else:
            s += letter+'o'+letter
    return s
def translate(string):
    notconsonant = {'a','e','i','o','u', ' '}
    return ''.join(letter if letter in notconsonant else letter+'o'+letter for letter in string)
>>> translate('this is fun')
'tothohisos isos fofunon'
def translate(string):
    vowels=['a','e','i','o','u']
    # Use a new variable :
    result = ''
    for letter in string:
        if letter in vowels:
            result = result + letter
        else:
            result = result + letter + 'o' + letter
    return result

print(translate('this is fun'))