私はプログラミングにかなり新しいです。そして、Pythonは私の最初の言語です。私は自分自身で学習しているので、何かが足りないかもしれません。申し訳ありませんが、私は問題を正しく言えませんでした。Python - 再帰を使用しているときに、後続の空白文字列を削除するにはどうすればよいですか?
私は、0から99までの任意の数を受け入れ、それを辞書に基づいてマンダリンに変換する関数を書いています。
trans = {'0':'ling', '1':'yi', '2':'er', '3':'san', '4': 'si','5':'wu', '6':'liu', '7':'qi', '8':'ba', '9':'jiu', '10': 'shi'}
def convert_to_mandarin(us_num, flag = True):
'''
us_num, a string representing a US number 0 to 99
returns the string mandarin representation of us_num
'''
if len(us_num) == 1:
if us_num != '0':
return trans[us_num]
elif flag:
return trans[us_num]
else:
return '\b'
elif len(us_num) > 1:
if us_num[0] == '1':
return trans['10'] +' '+ convert_to_mandarin(us_num[1:], False)
else:
return trans[us_num[0]] + ' ' + trans['10'] + ' ' + convert_to_mandarin(us_num[1:], False)
else:
return convert_to_mandarin(us_num[:-1], False) + trans[us_num[-1]]
数字が0で終わる場合、文字列は末尾にスペースが返されています。たとえばn = convert_to_mandarin('10 ')なら、n =' shi 'を返す しかし、それはn =' shi 'にしたい それでは、どうやって末尾のスペースを取り除くことができますか?
ありがとう。私はrstripについて知らなかった。私は実際にストリップで同じことを試みましたが、私の代わりに「 '」を返していたので動作しませんでした。 –
'strip'も動作しますが、右側にスペースしかないので不要です。あなたは 'strip/rstrip'で取り除かれていない' \ b'を返していました –
ああ。私はバックスペースの前でそれを試しましたが、空の文字列の代わりにスペースを返していたので動作しませんでした。私の間違った推論。 –