#author("2023-04-27T07:04:09+09:00","external:moriat","moriat")
#author("2023-04-27T07:06:57+09:00","external:moriat","moriat")
#topicpath

** 変数の型と演算子 [#b0b3740a]
*** ChatGPT で予習 [#xf962763]
- Python の変数の型を教えて~
 Pythonには様々な型の変数があります。以下に代表的な型を示します。
 
 1. int(整数型):整数を表すための型です。
 
#code(python){{
x = 5
y = -2
}}
 
 2. float(浮動小数点型):小数点以下の数を表すための型です。
 
#code(python){{
x = 3.14
y = -0.5
}}
 
 3. bool(論理型):True(真)またはFalse(偽)を表すための型です。
 
#code(python){{
x = True
y = False
}}
 
 4. str(文字列型):文字列を表すための型です。文字列はシングル
  クォーテーション(')またはダブルクォーテーション(")で囲まれます。
 
#code(python){{
x = 'Hello, world!'
y = "Python is awesome"
}}
 
 5. list(リスト型):複数の値を順序立てて保存するための型です。リスト
  は角かっこ([])で囲まれ、カンマで区切られた値のリストを含みます。
 
#code(python){{
x = [1, 2, 3, 4, 5]
y = ['apple', 'banana', 'cherry']
}}
 
 6. tuple(タプル型):リストと同様に、複数の値を保存するための型です
  が、一度定義された値は変更できません。タプルは丸かっこ(())で囲ま
  れ、カンマで区切られた値のリストを含みます。
 
#code(python){{
x = (1, 2, 3, 4, 5)
y = ('apple', 'banana', 'cherry')
}}
 
 7. dict(辞書型):キーと値のペアを保存するための型です。辞書は波かっこ
  ({})で囲まれ、キーと値のペアをコロン(:)で区切ったエントリーのリス
  トを含みます。
 
#code(python){{
x = {'name': 'John', 'age': 30, 'city': 'New York'}
y = {'apple': 1, 'banana': 2, 'cherry': 3}
}}
 
 以上がPythonで使用される主要な変数の型の一覧です。Pythonでは、動的型付け
 を採用しているため、変数に格納される値に基づいて自動的に型が割り当てられ
 ます。
- Python で変数の型を宣言しないのはメリット?デメリット?~
 Pythonで変数の型を宣言しないことのメリットとしては、以下のような
 点が挙げられます。
 
 1. 簡単なコーディング:型を宣言しなくても、変数を定義することがで
 きます。これにより、プログラムの開発やメンテナンスが簡単になりま
 す。
 
 2. 動的型付け:Pythonは動的型付けを採用しているため、変数に代入さ
 れた値に応じて自動的に型が割り当てられます。これにより、プログラ
 マーは明示的に型を宣言する必要がなく、コードの柔軟性が向上します。
 
 一方、変数の型を宣言しないことのデメリットとしては、以下のような
 点が挙げられます。
 
 1. プログラムの誤解:型を宣言しないことが原因で、プログラムが誤解
 される可能性があります。これは、予期しない結果をもたらす可能性が
 あるため、プログラムの品質を低下させることがあります。
 
 2. プログラムの実行速度:Pythonは、コードの柔軟性を高めるために動
 的型付けを採用していますが、同時に処理速度が遅くなる可能性もあり
 ます。なぜなら、プログラムが実行されるたびに、変数の型を判断する
 必要があるためです。
 
 Pythonでは、動的型付けを採用することで、プログラマーが素早くプロ
 グラムを作成できるようになり、プログラムの柔軟性が向上する一方で、
 プログラムの実行速度が遅くなる可能性があるというトレードオフがあ
 ります。
- Python の変数の型についての理解を深めるために、プログラミングする課題を提案して~
 以下のような課題を提案します。
 
 課題内容: 
 1. 3つの変数を作成します。1つは文字列、1つは整数、1つは浮動小数点数
  の値を代入します。
 2. 変数の型を調べ、それぞれの変数の型を出力します。
 3. 2つの整数変数を作成し、それぞれに値を代入します。次に、それらの変
  数を加算して、その結果を新しい変数に代入します。
 4. 3つの浮動小数点数の変数を作成し、それぞれに値を代入します。次に、
  それらの変数を乗算して、その結果を新しい変数に代入します。
 5. 2つの文字列変数を作成し、それぞれに値を代入します。次に、それらの
  文字列を連結して、新しい文字列変数に代入します。
#divregion()
#code(python){{
# 1. 変数の作成と代入
string_var = "Hello, World!"
int_var = 10
float_var = 3.14

# 2. 変数の型の調査と出力
print(type(string_var))
print(type(int_var))
print(type(float_var))

# 3. 2つの整数変数の加算
num1 = 5
num2 = 3
sum_num = num1 + num2
print("The sum of", num1, "and", num2, "is", sum_num)

# 4. 3つの浮動小数点数変数の乗算
num3 = 1.5
num4 = 2.5
num5 = 3.5
mul_num = num3 * num4 * num5
print("The result of multiplying", num3, num4, "and", num5, "is", mul_num)

# 5. 2つの文字列変数の連結
str1 = "Hello"
str2 = "World"
concat_str = str1 + " " + str2
print("The concatenated string is:", concat_str)
}}
#enddivregion()
- Python の演算子の一覧を示して~
 以下に Python で使用できる演算子の一覧を示します。
 
 1. 算術演算子
    - 加算 (+)
    - 減算 (-)
    - 乗算 (*)
    - 除算 (/)
    - 切り捨て除算 (//)
    - 剰余算 (余り) (%)
    - べき乗 (**)
 
 2. 比較演算子
    - 等しい (==)
    - 等しくない (!=)
    - より大きい (>), より小さい (<)
    - 以上 (>=), 以下 (<=)
 
 3. 論理演算子
    - 論理積 (and)
    - 論理和 (or)
    - 否定 (not)
 
 4. 代入演算子
    - 等しい (=)
    - 加算して代入 (+=)
    - 減算して代入 (-=)
    - 乗算して代入 (*=)
    - 除算して代入 (/=)
    - 切り捨て除算して代入 (//=)
    - 剰余算して代入 (%=)
    - べき乗して代入 (**=)
 
 5. ビット演算子 (ChatGPT が間違っていたので修正!)
    - ビット単位の論理積 (&)
    - ビット単位の論理和 (|)
    - ビット単位の排他的論理和 (^)
    - ビット単位の否定 (~)
    - 左シフト (<<)
    - 右シフト (>>)
 
 6. 識別演算子
    - 同じオブジェクトであるかどうかを判定する (is)
    - 異なるオブジェクトであるかどうかを判定する (is not)
 
 7. メンバーシップ演算子
    - シーケンスに特定の要素が含まれるかどうかを判定する (in)
    - シーケンスに特定の要素が含まれないかどうかを判定する (not in)
 
 以上が Python で使用できる演算子の一覧です。
** 参考URL [#k4d99201]
- [[[Python入門]Pythonの演算子まとめ(@IT)>https://atmarkit.itmedia.co.jp/ait/articles/1907/23/news010.html]]~
ChatGPT があげたもの以外に三項演算子( 値1 if 条件 else 値2 )、代入演算子( = )、代入式( := )などがある。
- 確認~
Google Colaboratory で試してみた。[[演算子の練習>https://colab.research.google.com/drive/1lIgGwdqoUFtQUylhmLhrmXkKy45IvCPe?usp=sharing]]
- 板書~
https://photos.google.com/direct/AF1QipMYP3RYD6qbYn085L8ujIjbmIeL8sXiYBjgs7w5K8MqviZQCeuTc45FtTbBAvSAsA

&ref(IMG_2991.jpg);

トップ   編集 差分 添付 複製 名前変更 リロード   新規 検索 最終更新   ヘルプ   最終更新のRSS