第24回【Python】配列の入力 1、配列の入力 2、配列の入力 3

現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

Python をゼロから勉強してみよう、のコーナー 24 回目です。

内容は簡単ですが、基礎の基礎なので、しっかり学習したいと思っています。基礎がぐらぐらな家には住めないですものねぇ。

それでは、今日も頑張ってみようと思います。

配列の入力 1

以下の数列の全要素を改行区切りで出力してください。

8 1 3 3 8 1 1 3 8 8

ん? 前回も同じような問題に挑戦したような。

Python
L = [8, 1, 3, 3, 8, 1, 1, 3, 8, 8]
print(*L,sep="\n")

で、きちんと配列を扱う学習を行うのであれば、ループで回した方が良いのだろうか、ということで、書き直した。

L = [8, 1, 3, 3, 8, 1, 1, 3, 8, 8]
for l in L:
    print(l)
VBA
L = Array(8, 1, 3, 3, 8, 1, 1, 3, 8, 8)
For Each ele In L
    Debug.Print ele
Next

配列の入力 2

10 個の整数 a_i (1 ≤ i ≤ 10) が半角スペース区切りで与えられます。
この数列の全要素を改行区切りで出力してください。

ようやく、少しだけ応用編に進んだ模様。

Python
A = input().split()
for a in A:
    print(a)
VBA
A = Split(Cells(1, 1), " ")
For Each ele In A
    Debug.Print ele
Next

配列の入力 3

1 行目に整数 N が与えられます。
2 行目に、N 個の整数 a_i (1 ≤ i ≤ N) が半角スペース区切りで与えられます。
この数列の全要素を改行区切りで出力してください。

問題文の意味を考えよう。ここまでの学習で、要素数がなくても全要素を出力することが可能であることを学んだ。それでも、要素数が与えられているということはどういうことだろう。

Python
N = int(input())
A = input().split()
for a in A:
    print(a)

これだと、与えられた要素数 N を利用していない。

Python
N = int(input())
A = input().split()
for i in range(N):
    print(A[i])

少し煩わしさを感じるけれど、こっちの方が問題の趣旨に合ってそう?

VBA
N = Cells(1, 1)
A = Split(Cells(2, 1), " ")
For i = 0 To N - 1
    Debug.Print A(i)
Next

最後に

問題の趣旨を捉えて、与えられた情報をきちんと利用する。そうすることで、今まで知らなかったやり方を知ることができるかもしれない。

まぁ、まだそこまで深い部分まで学習が進んでいないので、考えすぎかもしれないけれど。

いろいろな書き方があることを知って、利用する場面を的確に選択することができるようになれば、プログラミングの幅が広がると思う。こんな書き方は? こんな書き方は? っていう疑問を大切にしたいと思った。

引き続き、よろしくお願いいたします!

PythonPython,paiza,学習

Posted by LeoSaki