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() # => ['文字列が', ' たくさん', 'あっても', '区切れるよ']