質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

645閲覧

pythonでのファイル書き込みの方法がよくわかりません。

koukousei_1

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/09 17:19

Python、ファイル書き込みの方法について

一日の総摂取たんぱく質量を計算するプログラムを作っています。
計算結果を出力するだけでは簡単なので、書き込みたいと思っています。
しかし、ファイルに書き込む際にエラーが出てしまいました。

発生している問題・エラーメッセージ

今日あなたが摂取したたんぱく質の量(g)を計算します。 卵の個数(卵一つにつき9g):6 プロテイン摂取回数(摂取一回につき17g):4 鶏むね肉(むね肉100gにつき21g):600 どのファイルに保存しますか:tas.txt Traceback (most recent call last): File "C:\Prog1\自由課題2.py", line 24, in <module> protein(e,p,b,filename) File "C:\Prog1\自由課題2.py", line 9, in protein f.write('卵を',str(e),'つ(',str(ex),')、プロテインを') TypeError: write() takes exactly one argument (5 given)

該当のソースコード

python

1def protein(e,p,b,filename): 2 s=0 3 with open(filename, mode='w',encoding='utf-8') as f: 4 ex = e * 9 5 px = p * 17 6 bx = b * 0.21 7 s = ex + px + bx 8 f.write('あなたが今日摂取したたんぱく質は以下の通りです。\n') 9 f.write('卵を',str(e),'つ(',str(ex),')、プロテインを') 10 f.write(str(p),'回(',str(px),')、鶏むね肉を',str(b),'グラム(',str(int(bx)),')\n') 11 f.write('合計で',str(int(s)),'gです。\n') 12 13 14print('今日あなたが摂取したたんぱく質の量(g)を計算します。') 15e = input('卵の個数(卵一つにつき9g):') 16p = input('プロテイン摂取回数(摂取一回につき17g):') 17b = input('鶏むね肉(むね肉100gにつき21g):') 18e = int(e) 19p = int(p) 20b = int(b) 21filename = input('どのファイルに保存しますか:') 22 23 24protein(e,p,b,filename) 25 26 27

試したこと

文字列型しか書き込めないと思ったためstr(e)のように、整数型を文字列型に変換して書き込んだ。それぐらいしか私にはできませんでした。(*- -)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

エラーメッセージは、「writeはちょうど1つだけの引数を取ります(でも5つ引数が指定されました)」という意味です。(英語が全くわからない場合は、Google翻訳サイトの使い方を覚えると良いです)

writeに複数の引数を与えてますが、printとの混同でしょう。
1つにしましょう。

書籍の入門書などで、系統立ててPythonを学びましょう。

投稿2021/12/09 17:34

編集2021/12/09 17:35
otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

TypeError: write() takes exactly one argument (5 given)

Google翻訳

TypeError:write()はちょうど1つの引数を取ります(5が与えられます)

python

1 f.write('あなたが今日摂取したたんぱく質は以下の通りです。\n') 2 f.write('卵を',str(e),'つ(',str(ex),')、プロテインを') 3 f.write(str(p),'回(',str(px),')、鶏むね肉を',str(b),'グラム(',str(int(bx)),')\n') 4 f.write('合計で',str(int(s)),'gです。\n') 5

python

1 f.write('あなたが今日摂取したたんぱく質は以下の通りです。\n') 2 f.write('卵を' + str(e) + 'つ(' + str(ex) + ')、プロテインを') 3 f.write(str(p) + '回(' + str(px) + ')、鶏むね肉を' + str(b) + 'グラム(' + 4 str(int(bx)) + ')\n') 5 f.write('合計で' + str(int(s)) + 'gです。\n') 6

に変更しましょう。

Pythonのf文字列(フォーマット済み文字列リテラル)の使い方を使えばさらに簡単に書けます。

投稿2021/12/09 17:32

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問