Python学んでみた　第１回（環境準備〜リテラル）

# はじめに
初めまして！
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい！自分が学んだ足跡を残していきたい！と思い記事を書きました！
最終的には自在に開発できるようになりたいと思っています。:triumph:
いろいろな記事を参考にさせてもらっています。:bow_tone2:
その中でもこれってどういう意味？とかつまづいたところを念入りに書いていこうかと思います。:fist:

# 今回の目的
Python初歩レベルまでになろうと思います！:hushed:

# 使用したものや事前準備
・Macbook Pro
・Python
・Anaconda
・jupyter notebook

# 概要

## なぜPythonが人気なのか
・習得が非常に簡単。スクリプトをコピペするだけで動く。
・コードが読みやすい。
・Pythonのパッケージは３０万を超える。容易に複雑な処理が書ける。

## Pythonはどこで使用されているのか
・クラウド環境、マイクロコントローラ、web開発（サーバーサイド）など、特に数値を扱うところで使用される。

# 環境準備

## condaインストール
コマンドでやりなさいということでcondaコマンドをインストール。GUIもセットだから問題なし。
インストールの手順通り進めれば使えるようになります。

https://www.anaconda.com/download

コマンドが入ったか確認しましょう。

```
conda --version
```

## 仮想環境の作成
プロジェクトの管理と同義でいいのではと思っています。プロジェクトごとに依存関係を分離できるようになります。
現在はPython3.12まで出ていますがチュートリアルは3.9なのでとりあえずそのまま進めます。
condaenvはプロジェクト名です。

```
conda create --name condaenv python=3.9
```

実行後にGUIのAnaconda NavigatorにあるEnvironmentsを確認すると同じ名前のものが作成されているはずです。

![スクリーンショット 2024-03-03 11.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/943982/6bf442a4-7bf6-6faa-116d-0529fb6efc98.png)

環境を切り替えます。成功するとコマンドの左端の名前が変わります。

```
conda activate condaenv
```

![スクリーンショット 2024-03-03 11.21.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/943982/a2ee522f-0be4-616e-ccd3-cd117ff4b08f.png)

ライブラリをインストールします。
**Jupyter Notebook:** データを探索したり、アルゴリズムを試したり、何かを視覚化したする時に最適なウェブアプリケーション。Jupyterの由来は「Julia」「Pyton」「R」の組み合わせから来ているようです。VSCODEとも連携可能。
**NumPy:** 数値計算を効率的に行うためのPythonライブラリ
**Matplotlib:** Pythonでグラフやチャートを作成するためのライブラリ

```
conda install notebook numpy matplotlib
```

jupyter notebookが実行できるか確認します。ブラウザで下記の画像が開けばOK。
```
jupyter notebook
```

![スクリーンショット 2024-03-03 11.26.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/943982/d228f889-5e77-61a3-debb-759535f29e06.png)

# jupyter notebook
適当な場所にフォルダを配置し、右側の「New」からPython3を選択しましょう。

![スクリーンショット 2024-03-03 12.17.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/943982/e1877d4b-f355-fed5-56ff-149c36d7276f.png)

画面が開いたことを確認し、下記のコマンドを実行(command+Enter)すると出力結果を確認できます。

```python
print('hello world')
```

![スクリーンショット 2024-03-03 12.19.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/943982/573030fd-0a54-ecd6-82c0-85cc96a345d5.png)

import thisを実行すると「心得的な」ものを見ることができます。

```python
import this
```
# Python
・標準出力
```python
print('hello world')
```

## オブジェクト
**重要：** 変数は型ではなく全てオブジェクトで表現される。数値も。
オブジェクトは下記の情報を持っています。
### ID
メモリ内のどこに存在するか
```python
a = 'test'
id(a) # 1398.....
```
### タイプ
オブジェクトのタイプ
```python
a = 'test'
type(a) # str
```
### 値
保持している情報
```python
a # test
```

### 参照カウント
オブジェクトを使用している数。0になるとガベージコレクタが働いてクリーンアップされます。
```python
import sys
sys.getrefcount(a) # 2 上記例のidとtypeのみを実行した場合（値を確認すると数が変わる・・・）
```

## リテラル
### 文字列（str)
ユニコード文字で絵文字も対応している。文字数で定義も可能。
```Python
name = 'matt \N{GRINNING FACE}'
new_str = str(10)
```
### 数値
int、float、complex（複素数）対応

complexの例（c = 3 + 4jの場合）
**実数部の取得:** c.real は3を返します。
**虚数部の取得:** c.imag は4を返します。
**共役複素数（conjugate）:** c.conjugate() は3 - 4jを返します。
**絶対値（複素数の大きさ、またはモジュラス）:** abs(c) は5を返します（√(3² + 4²) = 5）。

### 配列
数値文字の混在は可能。
list()は文字列を文字として扱うので注意
```python
test = [1,'2'] 
test[0] // 1
test2 = list('ae')
test2 //'a','e'
```
### 辞書配列
```python
types = {'name':'string'}
ages = dict(zip(['taro'],[20]) // 'taro':20
types2 = dict(name='str') // 'name':'str'
```

# 続き
https://qiita.com/mr_noppo/items/df6678efd0c92acded86