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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1174閲覧

pythonで変数を関数の中でカウントアップして、その後に関数外で出力させたい

fuku-chann

総合スコア82

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/03/11 22:13

いつもお世話になっております。
変数aを関数内でカウントアップさせ、その後に関数外(for)で出力したいのですが、現在のコードではカウントアップされません。(aの出力結果が全て1になってしまいます)
実際には変数aはスプレッドシートの値を読み込んでいるため、forの中に入れると繰り返し読み込みが行われるため、読み込み上限を超えてエラーになる時があります。そのため、関数の中に入れずに実行することを検討しております。
どのように修正したら良いでしょうか?ご存知の方おられましたらご教示お願いいたします。

現在のコード

python

1a = 1 2def b(a): 3 a += 1 4for i in range(5): 5 b(a) 6 print("a", a)

現在の出力結果

zsh

1a 1 2a 1 3a 1 4a 1 5a 1

期待する出力

zsh

1a 1 2a 2 3a 3 4a 4 5a 5

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

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

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

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

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

TakaiY

2023/03/12 05:18

解決済みになっていますが、そもそもの問題である、 「実際には変数aはスプレッドシートの値を読み込んでいるため、forの中に入れると繰り返し読み込みが行われるため、読み込み上限を超えてエラーになる時があります。」 の解決策が必要なのだと思いますが、この質問および回答では解決しないんではないかと思います。 この問題そのものの解決策を質問したほうがいいと思いますよ。
fuku-chann

2023/03/12 10:51

コメントありがとうございます。 読み込み上限エラーの解決策としましては、読み込み回数を極力減らすこととしています。 リクエスト回数の上限を上げることも検討しましたが、リクエストが承認されないことがあるため、前者を対策としています。 それ以上の解決策が他にあるのでしょうか?
TakaiY

2023/03/12 15:08

元の問題が解決しているのであれば特にコメントはありません。 それ以上の解決策と言われても、問題の内容がわからないので回答のしようもありません。
fuku-chann

2023/03/12 18:18

折角コメントをいただいておりますが、私の知識レベルが低いことが原因なのかご質問の意図がわかりません。実際にどのようなことを懸念されておりますでしょうか?改善点がまだあるようでしたらご教示いただきたいです。
guest

回答1

0

ベストアンサー

globalメソッドを使うといいです.
あと引数いらないです.

python

1a = 1 2def b(): 3 global a 4 a += 1 5for i in range(5): 6 print("a", a) 7 b()

投稿2023/03/11 22:44

haday

総合スコア15

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

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

fuku-chann

2023/03/12 00:12

解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問