pythonでの定義時にatai_1のように指定する場合が多いと思うのですがatai_変数で定義するにはどうしたら良いのでしょうか?
for x in range(10):
atai_%s % xで動作しないため、解決策をお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
python
1globals()['atai_1']=1
投稿2017/09/17 02:26
総合スコア6142
0
ベストアンサー
恐らくこのような事がしたいのですかね。
pythonでname0,name1,name2・・・のように変数を宣言したい
上記の回答にもあるように、execやevalを使う事で文字列と組み合わせて変数を代入したり、使用したりする事が出来ます。
python
1#atai_1~10までを定義する。 2for i in range(1, 11): 3 exec("atai_%d = %d" % (i, i)) 4 5#atai_1~10までをprintする。 6for i in range(1, 11): 7 print(eval("atai_" + str(i)))
投稿2017/09/15 17:10
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ひょっとして、連番の変数名を使いたいということですか?
exec
を使えば出来ないことはないんですが...
Python
1>>> for x in range(10): 2... tmp_name = 'atai_%d' % x 3... exec(tmp_name + '= x') 4... 5>>> print(atai_5) 65
これは本当の本当に最終手段です。可能な限り避けてください。
今回の場合、普通にリストを用いればよいのでは?
Python
1>>> atai = [0] * 10 2>>> atai 3[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 4>>> atai[4] = 10 5>>> atai 6[0, 0, 0, 0, 10, 0, 0, 0, 0, 0]
投稿2017/09/15 17:02
編集2017/09/15 17:03総合スコア35660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
かなり意味不明な質問ですが、
Python
1for x in range(10): 2 print("atai_%s" % x)
ということがしたいのでしょうか?
なお、x
は整数なので、%s
じゃなくて%d
が良いでしょう。
投稿2017/09/15 14:14
編集2017/09/16 02:15総合スコア84542
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。