(guide-intro)= # Pythonをはじめよう Pythonの特徴と基本を紹介します。 ただ紹介するだけではなく、簡単なプログラムを実装しつつ実践的に学んでいきます。 ## Pythonを楽しもう Pythonインタープリタに入力し結果を確認したり、Pythonファイル(.pyファイル)を作り実行しながら、Pythonにふれてみます。 Pythonについてより詳しくは、後述の節で説明します。 つまり、ここで説明したことのすべてをいま理解しようとしなくても大丈夫です。 ### Pythonインタープリタ ターミナル(WindowsではPowerShell)を立ち上げて `python` (macOS、Linuxの場合は `python3`)と入力し、Pythonインタープリタを対話モードで起動します({numref}`python-interpreter`)。 ```{code-block} bash :caption: "Pythonインタープリタの起動" $ python Python 3.12.6 (main, Jun 6 2024, 18:26:44) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ``` 初めにPythonインタープリタの情報と、大なり記号3つ(`>>>`)が表示されます。 この(`>>>`)がPythonの対話モードでの入力をうながすプロンプトです。終了するには {kbd}`Ctrl`-{kbd}`D`または `quit()` を入力します(Windowsでは{kbd}`Ctrl`-{kbd}`Z`+{kbd}`Enter`)。 #### Pythonを電卓にする 電卓のようにPythonを使ってみましょう({numref}`python-calc`)。 (python-calc)= ```{code-block} pycon :caption: "四則演算と代入" >>> 2 + 2 4 >>> 3 - 8 -5 >>> 6 * 9 54 >>> 8 / 2 4.0 >>> 5 % 2 1 >>> width = 60 >>> height = 90 >>> width * height 5400 ``` 初めの4つは整数型(int)での四則演算(`+`、`-`、`*`、`/`)と剰余(`%`)です。 次に等号(`=`)を使って値を代入しています。 `width` (幅)、 `height` (高さ)という変数を作成し、2つを掛け合わせて面積を求めています。 **変数を作成** とは、データ(ここでは60など)にラベル(ここではwidthなど)を付けて、後で使用できるようにすることです。 ### 文字列 数字だけを扱うなら卓上電卓で十分ですね。文字列型(str)を使ってみましょう。 {numref}`string-type` のように、シングルクォート(`'`)かダブルクォート(`"`)の間に文字を入力することで、文字列を定義します。 (string-type)= ```{code-block} pycon :caption: "文字列型" >>> 'Hello,world' 'Hello,world' >>> "Monty Python's Flying Circus" "Monty Python's Flying Circus" ``` 文字列中にシングルクォートを含む場合はダブルクォートを使います ( {ref}`types-str` で説明する文字のエスケープも使えます)。 文字列は順序を持つシーケンス型の1つです。 ```{admonition} コラム: シーケンス型 シーケンス型は順序を持つ型で、Python標準では他にもリスト(`list`)型、タプル(`tuple`)型、レンジ(`range`)型などがあります。 シーケンス型は後ほど説明するインデックスによる取得もサポートしています。 シーケンス型の詳細はPythonの公式ドキュメントを参照してください。 - シーケンス () ``` ### リスト リスト(list)は、複数のデータ型の入れ物として使えます({numref}`list`)。 ```{code-block} pycon :caption: "リスト" >>> ['Hello', 3] ['Hello', 3] ``` リストも文字列と同じで、順序を持つ繰り返し可能な型(シーケンス)の1つです。 複数のデータ型と組み合わせて使えるコレクションの1つでもあります。 ### コメント `#` より右以降の文字列は「コメント」となり、プログラムとして実行されません。 ```{code-block} pycon :caption: "コメントの書き方" >>> # ここはコメント文 >>> a = 1 # コードの右側にも書ける ``` ### 関数 関数とはプログラムの中で処理をひとまとめにしたものです。 Pythonでは関数は、 `def` を使って以下のように書きます。 末尾にはコロン(`:`)が必要です。 ```none def <関数名>(<引数の変数名>): ``` 値を返すには、 `return` を使います。引数を2つ受け取り、合計値を返す関数は {numref}`function-def` になります。 (function-def)= ```{code-block} pycon :caption: "関数定義と呼び出し" >>> def add(a, b): ... return a + b ... >>> add(1, 3) 4 ``` Python はブロック構造を **インデント** (通常は4つのスペース)で書きます。 C言語のように波括弧(`{ }`)で囲む必要はなく、インデント自体が文の構造となります。 `add()` 関数内の1行目のreturn文は関数の中身なので、インデントで字下げします。 関数を書き終わったときにも **改行を入力** してください(最後の入力が文として終了していない場合、プロンプトが3つのドット(`...`)になります)。 関数を呼び出すには関数名に括弧(`( )`)を付けて実行します。 {numref}`function-def` のように引数がある場合は、括弧内に引数を渡します。1と3を足した値、4が返されています。 ```{admonition} コラム: インデントの表示 このドキュメントをWebブラウザで見ている場合、 `def` と `return` が同じレベルにあるように見える事があります。 実際には、 `return` の前に、スペース4つが挿入されて、ブロック構造を表しています。 ``` #### 組み込み関数 Pythonには標準でいくつか関数が提供されています。これを組み込み関数と呼びます。 たとえば、指定された小数点を丸めた値を作成する `round()` 関数は、 このように使います。 ```{code-block} pycon :caption: "組み込み関数round" >>> round(10.4) 10 ``` 組み込み関数の一覧は、次のドキュメントを参照してください。 - 組み込み関数 ### エラーが出たら エラーはつきものです。どんなにPythonに慣れたとしても、エラーを避けることはできません。ですので、エラーとは仲良くなりましょう! **エラーの対処方法** * エラーメッセージは下から読みましょう:長いエラーメッセージでも下までスクロールダウンして最後の行を読みましょう。一般的に一番下に何が起きたのかに関するヒントがあることが多いです。 * 下の行から上へ読み進めると、どのようにしてエラーが発生したのかをトレースすることができます。 * もしエラーメッセージを読んでもわからない場合は、最後の行をコピーしてGoolgeなどで検索してみましょう。Stackoverflowというサイトで直接検索しても良いでしょう。 * 検索はなるべく英語で行いましょう。英語の方が日本語より共有されている情報量が多いので、解決策に辿り着きやすいです。Googleの言語設定を変えると、検索結果の表示順などが変わリます * エラーメッセージをAIに投げてみてください。原因や解決方法のヒントを教えてくます。