2016-10-27 9 views
2

私はコーディングが初めてで、この練習問題はPythonの練習問題のWebサイトで見つかりました。命令は次のようになります:Python:条件の結果をすべて1行に印刷する方法

"文字を"rövarspråket "(スウェーデン語:" robber's language ")に翻訳する関数translate()を記述します。つまり、すべての子音を2倍にして、" o " 。。例えば、翻訳の間( "これは楽しいです") "ISOイメージfofunon tothohisos" という文字列を返す必要があります

だから私はこのコードを入力:

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 

どうすればこれらの文字列を1行にまとめることができますか?私はずっと頭を傷つけてきた。助けていただきありがとうございます:)

+0

変数を使用して保存してから、forループの後に出力します。 – Zety

答えて

2

あなたが繰り返し文字列を連結することができます(私はあなたが関数であるprintで、Pythonの3.xを使用していると仮定しました)。空白の間に'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を使用する:あなた場合は、子音でない文字の検索をスピードアップすることができ

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' 
0

印刷機能にはendというパラメータを使用してください。

def translate(string): 
    vowels=['a','e','i','o','u'] 
    for letter in string: 
     if letter in vowels: 
      print(letter, end='') 
     else: 
      print(letter+'o'+letter, end='') 
print(translate('this is fun')) 
+1

"tothohisos o isos o fofunon" - print(translate( 'this is fun'))から 'print'を取り去った後の出力' – Nf4r

0

一時的な文字列でそれを追加すると、最後にそれを印刷してみてください。)

0

印刷あなたは新しい行にのget。連結と新しい文字列を代わりに使用します(ここでは新しい文字列は結果と呼ばれます)。

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'))