Pythonを勉強するため、競技プログラミングを始めました。 まだまだ覚えきれていないことも多く、構文を調べる時間を費やしてしまいます。
そこで、よく使用する標準入力をテンプレートとしてまとめました。
Python3.xで動作します。
2019-04-05追記:当時の記事の内容を残しつつ、読みやすく修正しました。
1行に1入力のとき
# 文字列
"""入力
abc
"""
S = input().strip()
input()
が1行分の標準入力を受け取ります。
strip()
は文字列の前後の空白を取り除きます。(トリム)
# 整数
"""入力
123
"""
N = int(input().strip())
# 浮動小数点数
"""入力
1.23
"""
L = float(input().strip())
input()
は文字列になるので、数値に変換する必要があります。
int()
とfloat()
は文字列からそれぞれ整数と浮動小数点数に変換します。
1行に空白区切りで複数の入力があるとき
2変数を受け取る
入力
Hello World
# 2つの文字列
S1, S2 = input().strip().split()
S1 # Hello
S2 # World
split()
は文字列を半角スペース' '
で分割してリストを返します。
引数を変えてカンマ','
やスラッシュ'/'
も分割できます。
また、pythonではリストの値を各変数に入力できます。
S1にはHello
、S2にはWorld
が入ります。
2つの整数
入力
123 456
# 2つの整数
N, M = input().strip().split()
N, M = [int(N), int(M)]
一度文字列として受け取り、整数への変換してリスト化し代入しています。
一行で表す場合は配列で受け取る方法もあります。
複数の入力を配列で受け取る
# 複数の文字列
"""入力
Hello World python
"""
array = input().strip().split()
# 複数の整数を配列として扱う
"""入力
1 2 3 4 5
"""
array = list(map(int, input().strip().split()))
# 複数の整数を変数に代入
"""入力
3 34 34
"""
x, y, z = list(map(int, input().strip().split()))
map()
は適用関数と対象リストを引数に取ります。
対象リストの要素一つ一つに適用関数で処理します。
適用関数をint
とすると、リストの要素を整数に変換します。
複数行を配列にまとめる
競技プログラミングでは指定の行数の入力を配列にする必要もあります。
N
s1 t1 u1
s2 t2 u2
s3 t3 u3
...
sn tn un
上記のように行数NとN行の入力がある場合。
# 行数
N = int(input().strip())
# 2次元配列
grid = []
for i in range(N):
array = list(map(int, input().strip().split()))
grid.append(array)
for文でN行分入力を受け取り、配列grid
に逐次追加しています。
Python:ファイルダウンロードの進行状況とファイルサイズを表示する方法。urllib
Pythonschedule2024-02-27
【Python】tqdmでforの進捗状況を表示する
PythonColabolatoryschedule2021-02-16
学習済みの日本語単語ベクトルをColabolatoryで試してみる
自然言語処理PythonColabolatoryschedule2021-02-04
Unity ML-Agentsで新しく学習環境を作る
Unity機械学習C#PythonDeepLearningschedule2021-01-22
27. 内部リンクの除去
自然言語処理100本ノックPythonschedule2020-03-17