はじめに
初めまして、Qiitaでの初投稿です。
Pythonプログラミングをしている皆さんもご存知の簡単なテクニックを記載します。
初心者向けの説明ですがたまに普通のエンジニアの方でも紛らわしい部分も探っていきます。
(日本人ではないので、日本語の間違いは指摘してください。)
Input(入力)
入力はこれが基本ですよね。
a = input() # Stringで入力
_list = input().split() # string type listで入力
a, b = input().split() # a, bで分けて入力
Q: それならInt型で入力してもらうにはこうすれば良い?
A, B = int(input().split())
A: Int型で入力を受けても、list型にすぐ変換できませんので、このコードは機能しません。
この時はmapを使用します。mapは基本的に適用する関数、使用できる資料のタイプを指定します。
A, B = map(int, input().split())
Q: では、listを生成するなら、このように作成すればいいでしょうね?
_list = [*map(int, input().split())]
_list = list(map(int, input().split()))
A: Pythonはリストを簡単に、短く一行にすることができます。
list comprehensionは反復と条件、宣言と割り当てを一行で解決できるPythonの文法です。
[(変数の活用 "i*2のような")for (変数の名前)in (巡回"range, setのような見つけることができるもの")]
それで、Int型Listはこのように作ることができます。
_list = [int(x) for in input().split()] "Int_list_map.pyと同じです!"
list comprehensionの内容はかなり多いので、後でまとめて他の投稿で説明します。
一方、Pythonは変数を使用するときに独特な使用方法があります。
PackingとUnpackingというものです。
numbers = 1,2,3,4,5 # numbers = (1,2,3,4,5) / Packing
a,b,c,d,e = numbers # Unpacking
皆さんもご存知のようにPacking/Unpackingは、
TupleもParameterも可能で_を通じて除外したり、範囲の指定ができます。
これを少し応用すれば数を入力してもらう時、前と後の入力を別々に受け取ることができます。
First, *Middle, Last = map(int, input().split())
# Input -> 1, 2, 3, 4, 5
# Output -> 1 [2, 3, 4] 5
おわりに
Pythonはライブラリーや文法が簡単で手軽ですが、その分機能が多くテクニックが必要な言語だと思います。
私も初心者なので一緒に成長することが出来たらと思います!