[Python] 一つの空白を作って入力してみよう!〜input()を使って〜

Python

突然ですが、数値や文字の入力の時多すぎて縦に長くなってしまい先頭の方が見えなくなって困った経験はないですか?

僕はよくありました!

なので、今回はそれを解決できるような内容の記事を買いていきたいと思います。

input()関数のみを使った場合

まずは、input()関数のみを使った場合はどうなるのでしょうか?

a=[]

for i in range(10):
    a.append(int(input()))

print("配列を出力します")

for i in range(10):
    print("a["+str(i)+"]: ",a[i])

"""実行結果
1
2
3
4
5
6
7
8
9
10
配列を出力します
a[0]:  1
a[1]:  2
a[2]:  3
a[3]:  4
a[4]:  5
a[5]:  6
a[6]:  7
a[7]:  8
a[8]:  9
a[9]:  10
"""

サンプルコードにあるappendは配列aに入力した値を追加するという意味です。

例は1から10までにしましたが、これを横に空白を一個作り、1行で入力を完了できるようにしたいわけです。

どうやるのでしょうかね笑笑?

そうです!

split()関数を使うと空白を一個作り、1行で入力できるようになるのです。

split()関数を使った場合

a=list(map(int,input().split()))

print("配列を出力します")

for i in range(10):
    print("a["+str(i)+"]: ",a[i])

"""実行結果
1 2 3 4 5 6 7 8 9 10
配列を出力します
a[0]:  1
a[1]:  2
a[2]:  3
a[3]:  4
a[4]:  5
a[5]:  6
a[6]:  7
a[7]:  8
a[8]:  9
a[9]:  10
"""

split()関数 : 空白で入力を区切るための関数です。

map()関数 : リストのような連続したオブジェクトをある関数を使って処理をするための関数です。

最初1行目のコードは空白で区切り入力した文字をint型に変換してそれをリストにしたという意味です。

それをfor文で出力をした感じです。

出力は1行ずつ表示していますが、次回は1行で出力方法を記事にしていきたいと思います。

空白ではなく、”,”で区切りたいときはどうすればいいの?

”、”で区切りたいときはinput().split(“,”)とやると区切ることができると思います。

a=list(map(int,input().split(",")))

print("配列を出力します")

for i in range(10):
    print("a["+str(i)+"]: ",a[i])

"""実行結果
1,2,3,4,5,6,7,8,9,10
配列を出力します
a[0]:  1
a[1]:  2
a[2]:  3
a[3]:  4
a[4]:  5
a[5]:  6
a[6]:  7
a[7]:  8
a[8]:  9
a[9]:  10
"""

”、”で区切ることができました。

問題を一つ・・・・・・

長方形の面積と周の長さ

たて a cm よこ b cm の長方形の面積と周の長さを求めるプログラムを作成して下さい。

入力

ab が1つの空白で区切られて与えられます。

出力

面積と周の長さを1つの空白で区切って1行に出力して下さい。

しっかり考えてからどうしてもわからなかったら、答えをみてください。

あくまで参考程度で………………….

答え 一例

a=list(map(int,input().split()))

print(a[0]*a[1], 2*(a[0]+a[1]))

"""実行結果
2 5
10 14
"""

以上で今回は終了となります。

コメント

タイトルとURLをコピーしました