6

次のコードは、テキスト ファイルに書き込みます

if classno== '1':
    f = open("class1.txt", "a")
if classno== '2':
    f = open("class2.txt", "a")
if classno== '3':
    f = open("class3.txt", "a")
f.write(name) 
f.write(score)
f.close()

ただし、テキスト ファイルでは、名前とスコアの間にスペースがありません。たとえば、「James14」を「James 14」に変更するにはどうすればよいですか

4

5 に答える 5

10

あなたが試すことができます

f.write(name) 
f.write(' ') 
f.write(score)

または

f.write(name + ' ') 
f.write(score)

または

f.write(name ) 
f.write(' ' +score)

または

f.write("{} {}".format(name,score)) 

または

f.write("%s %s"%(name,score)) 

または

f.write(" ".join([name,score]))
于 2015-01-07T18:32:48.650 に答える
4

そのスペースを書く必要があります:

f.write(name) 
f.write(' ') 
f.write(score)

または文字列フォーマットを使用します:

f.write('{} {}'.format(name, score))

Python 3 または usedを使用している場合は、 functionfrom __future__ import print_functionを使用してスペースを追加することもできます。print()

print(name, score, file=f, end='')

そうしないと、改行文字も取得されるため、空の文字列に設定endします。もちろん、ファイルに複数の名前とスコアを書き込んでいて、各エントリをそれぞれの行に配置する必要がある場合、実際にはその改行文字が必要になる場合があります

于 2015-01-07T18:32:55.237 に答える
4

簡単な方法は、単純にスペース文字と連結することです

f.write(name + ' ' + score)

より堅牢な方法(フォーマットがより複雑になる場合)は、formatメソッドを使用することです

f.write('{} {}'.format(name, score))
于 2015-01-07T18:33:05.260 に答える
0

文字列をフォーマットする必要があります。

output = "%(Name)s %(Score)s" %{'Name': name, 'Score':score}
f.write(output)
f.close()

基本的に、%(Name)s は文字列 (括弧の後の s で示されます) のプレースホルダー (% で示されます) であり、「名前」で参照されます。"" で囲まれたフォーマット文字列に続いて、次の奇妙なことがあります。

%{'名前': 名前, 'スコア':スコア}

これは、「名前」と「スコア」のプレースホルダーを置き換える辞書です。

于 2015-01-07T18:44:51.717 に答える