私のコードはPython 2.xバージョンで正常に動作していますが、Python 3.xバージョンで実行しようとするとエラーになります。TypeError:translate()はちょうど1つの引数をとります(2が指定されています)
件名:smsエンコードでメッセージを省略する必要があります。
コード:
def sms_encoding(data):
#start writing your code here
print(data)
data.split(" ")
data_list=data.split(" ")
sms_encd=[]
final_sms=""
for i in range(len(data_list)):
if data_list[i].lower() in ['a','e','i','o','u']:
sms_encd.append(data_list[i])
elif len(data_list[i])>1:
a = data_list[i].translate(None,'aeiouAEIOU')
sms_encd.append(a)
for j in range(len(sms_encd)):
final_sms += str(sms_encd[j])+" "
return final_sms[:-1]
data="I will not repeat mistakes"
print(sms_encoding(data))
出力:
2.xのバージョン:
I will not repeat mistakes
I wll nt rpt mstks
3.xバージョン:なぜtranslate()
動作しない
I will not repeat mistakes
Traceback (most recent call last):
File "python", line 18, in <module>
File "python", line 12, in sms_encoding
TypeError: translate() takes exactly one argument (2 given)
?代わりの回避策はありますか?
謝罪の人々、私は既存の質問を見つけることができませんでした。それを指摘してくれてありがとう。 –