# 以下は直感的に理解できるんですが...
a=[1,2,3,4]
for b in a:
print(b)
1
2
3
4
# 次の場合や、
for b in a:
print(c)
4
4
4
4
# 次の場合など、
#どうして、こうなるのか、しっくり来ないのです。
for b in a:
print('c')
c
c
c
c
a[0]=1
a[1]=2
a[2]=3
a[3]=4
で、aの添字、[0][1][2][3]とprint関数が、なにか関係しているような気もするのですが...
どうぞ、ご教示くださいませ〜
a=[1,2,3,4] # トランプの手札を四枚持ってます for b in a: # 持っている手札を一枚ずつ開きます(開いた札が b print(b) # その札の内容を見せます print('c') # (開いた手札に関係なく)ジョーカーを見せます
他の言語と比べて、for は、条件を達するまでのループという意味合いがなくなってるので、そういった辺りの違いはあるかも。
回数でループしたい、となったら、こんな感じでしたっけ?
for i in range(10): ...
2番目のプログラムを実行すると、うちのPCでは、エラーになります。
NameError: name 'c' is not defined
3番目のプログラムの'c'は文字列だから、当たり前のような気がします。(^_^;
昔のBASICでは、Pythonと違って、文字列変数と数値変数の違いが明確だったからそう感じるのかな。
ちなみに、Pythonのfor文は、他の言語におけるforeach文に相当します。
https://note.nkmk.me/python-for-usage/
for b in a:
(条件判定ライン)
例:試験時間が残っているかチェック
(判定が”真”なら作業実行)
print(c)
(作業実行ライン)※作業内容の指定と実行
例:解いていない試験問題を解く
4
4
4
4
(作業結果の表示)
例:答え1
答え2
答え3
答え4
判定が”真”で 指定作業が print(c) なら
(どこか他の行で入れたはずの)cという容器(定数または変数)の
中身(この場合は整数4)を画面に表示。
判定が”真”で 指定作業が print('c') なら
(この行で指定した)文字列 c を画面に表示。
※この場合はたまたま、容器の名前と指定文字列が
同じだったから、まぎらわしいだけ。
print('d') なら 当然
d
d
d
d
という結果表示に。
a-kuma3さま
2020/03/24 09:51:44いつも、お手数をおかけしております汗
以下の2例について、直感的に分かるんです。
a=[1,2,3,4]
for i in a:
print(i)
1
2
3
4
for i in range(4):
print(i)
0
1
2
3
けれど、以下の例、
a=[1,2,3,4]
for i in a:
print('Jocker')
Jocker
Jocker
Jocker
Jocker
について(慣れてしまい、結果は分かるのですけれど)そのたびに「?」な感じが残ります。
リスト化した数字をaに入れ、それをfor文で回しているのに、なぜJockerが4回出力されるんだろう、といった感じです(このへんが、うまく言えなくって、その分からなさが、お伝えできないかもです。恐縮です)
a[0]=1
a[1]=2
a[2]=3
a[3]=4
といった0から3のインデックスが、Jockerと対応して、順番に出力されているのかな、とも思ったりしておりますが...