2016-04-12 1 views
-2

ヘルプこれを行うには手がかりを持ってはいけません、どうすれば助けてください!ただ、これに先立ち、コードのビットがあると言うこと 私はちょうど「TypeError:int 'オブジェクトを暗黙的にstrに変換できません」エラーを防止するにはどうすればよいですか?

sent = str(input("Please input a sentence:")) 
splitsent = sent.lower().split() 
deadno = [0] 

for count, v in enumerate(splitsent): 
if splitsent.count(v) < 2: 
    deadno.append(max(deadno) + 1) 
else: 
    deadno.append(splitsent.index(v) +1) 

deadno.remove(0) 
print(deadno) 
ofile = open ("Task2.txt","a+") 
ofile.write("{s!s}\n{d!s}\n").format(s=sent, d=deadno) 
ofile.write(sent + "\n" + deadno + "\n") 
ofile.close() 

それを含めていないEDIT: これは、現在のコードであると私は今取得トレースバックがある:

Traceback (most recent call last): 
    File "H:\.Year 10\Year 10 Computing\A453\Task 2\Test 2.py", line 15, in <module> 
    ofile.write("{s!s}\n{d!s}\n").format(s=sent, d=deadno) 
AttributeError: 'int' object has no attribute 'format' 

事前に感謝の意を表します。

+1

何'sent'と' deadno'の種類は何ですか?おそらくそれらを 'str'にキャストする必要があるでしょう。' str(sent) 'と' str(deadno) ' – EdChum

+2

2つの変数代入を含める必要があります。また、コードを編集する - インデントが間違っています。最後に、完全なトレースバックをコピーして質問に貼り付けます。 @EdChumも参照してください。 –

+0

@joel goldstickあなたは私の赤ちゃんが伝説です! XP –

答えて

2

formatを使用して文字列に変数を挿入することをお勧めします。

ofile.write("{s}\n{d}\n").format(s=sent, d=deadno)) 

senddeadnoのフォーマットを指定するformat examplesを参照してください。最初のコメントで提案されているように、変数の

エラーの同じ種類を取得する場合は、STRのコールを(強制ことは):

ofile.write("{s!s}\n{d!s}\n").format(s=sent, d=deadno)) 

formatは(長いドキュメントに近づくことが少し難しいです、 ...)しかし、強力な書式設定オプションがあり、コードを読みやすく安全にすることができます。

また、ちょうどので、私たちはそこに何があるか知っている、変数の割り当て(あなたがsenddeadnoに値を提供する行)を追加し、多分また彼らのタイプと値を印刷するには、あなたの質問を編集してください:

for var in [send and deadno]: 
    print(type(var)) 
    print(var) 
+0

私はそれを更新しましたが、まだエラーが発生しました –

+0

deadnoはintではなく、intを含むリストです。 –

関連する問題