ぷよぐやみんぐ日記

@nemu_souがお送りするNIT-Ok ict委員会でのぷよぐやみんぐ日記 雑記

pythonでの入力

入力に用いる関数 input()

input関数は入力を文字列で返します.
文字列を別の型にキャストして数値として扱ったりします.
ex. pythonで文字列'14'をint型にキャストすると数値14になります.

# 文字列 str型
s = input()
>>> 入力されるよ
# s => '入力されるよ'

# 整数 int型
i = int(input())
>>> 7
# i => 7

# 実数 float型
f = float(input())
>>> 5.4
# f => 5.4

list内包表記

list型(C言語でいう配列のようなもの)
set型(集合を扱う型, 重複を省いたりする)

a_str = [i for i in input().split()]
>>> 複数の値が 入力 されるよ
# a_str => ['複数の値が', '入力', 'されるよ']
# 文字列の場合 a_str = input().split() で同じことができる

a_int = [int(i) for i in input().split()]
>>> 1 2 3
# a_int => [1, 2, 3]

a, b, c = [int(input()) for i in range(3)]
>>> 3
>>> 5
>>> 7
# a => 3
# b => 5
# c => 7

# set内包表記
a_str = {i for i in input().split()}
>>> わーい すごーい たーのしー すごーい
# a_str => {'すごーい', 'たーのしー', 'わーい'}

a_int = {int(i) for i in input().split()}
>>> 1 1 2 3 5 8 13
# a_int => {1, 2, 3, 5, 8, 13}

map

リスト内包表記を使う以外の方法としてmapを使ったものがあります.  
リスト内包表記より実行速度が速いです.

a_str = list(map(str, input().split()))
a_int = list(map(int, input().split()))

文字列の分割に用いる関数 split()

split()は標準で文字列を空白区切りで分割します.

s1 = '文字列が 区切れるよ'
s2 = 'カンマでも,区切れるよ'
s3 = '2文字以上でも, 区切れるよ'
s4 = '文字列が たくさん あっても 区切れるよ'

# 分割された文字列はlist型で返されます.
s1.split() # => ['文字列が', '区切れるよ']

# 引数で分割する文字を指定することができます.
s2.split(',') # => ['カンマでも', '区切れるよ']

# 2文字以上でも区切ることができます.
s3.split(', ') # => ['2文字以上でも', '区切れるよ']

# 文字列が複数あっても区切ることができます.
s4.split() # => ['文字列が', ' たくさん', 'あっても', '区切れるよ']