はじめに

Python の基礎へようこそ!誰もがどこかから始める必要があり、この実験(Lab)はそのための完璧な場所です。Python は、エレガントな構文と動的型付けで知られる、習得が容易で強力なプログラミング言語であり、スクリプト作成や迅速なアプリケーション開発に理想的な言語です。

この実験(Lab)では、Python の最も基本的な概念のいくつかについて学びます。以下の内容を扱います。

  • 数学演算子とその優先順位。
  • より簡潔なコードのための複合代入演算子。
  • 式内で変数を代入するためのセイウチ演算子(Walrus Operator, :=)。
  • Python のコアデータ型。
  • 文字列の連結や複製などの基本的な文字列操作。

始めましょう!

算術演算子 (Math Operators)

このステップでは、Python の数学演算子とその優先順位について学習します。演算子の優先順位は、式の中で演算が実行される順序を決定します。

最も優先順位が高いものから低いものまで、一般的な数学演算子は以下の通りです。

演算子 演算 例
** べき乗 (Exponent) 2 ** 3 = 8
% 剰余 (Modulus/Remainder) 22 % 8 = 6
// 整数除算 (Integer division) 22 // 8 = 2
/ 除算 (Division) 22 / 8 = 2.75
* 乗算 (Multiplication) 3 * 3 = 9
- 減算 (Subtraction) 5 - 2 = 3
+ 加算 (Addition) 2 + 2 = 4

注記: WebIDE (VS Code のようなもの) の使用に慣れていない場合は、まずこちらの実験 (this lab)で学習してください。

これらを使ってみましょう。左側のファイルエクスプローラーから main.py ファイルを開きます。既存の内容をすべて消去し、以下のコードを追加します。各式の結果を確認するために print() 関数を使用します。

## 乗算は加算よりも優先順位が高い
## したがって、これは次のように評価されます:2 + (3 * 6) = 2 + 18 = 20
print(2 + 3 * 6)

## 括弧は演算子の優先順位を上書きします
## これは次のように評価されます:5 * 6 = 30
print((2 + 3) * 6)

## べき乗
print(2 ** 8)

## 整数除算
print(23 // 7)

## 剰余
print(23 % 7)

## より複雑な式
print((5 - 1) * ((7 + 1) / (3 - 1)))

次に、ターミナルを開き、以下のコマンドを実行してスクリプトを実行します。

python3 main.py

以下のような出力が、各結果が新しい行に表示される形で表示されるはずです。

20
30
256
3
2
16.0

複合代入演算子 (Augmented Assignment Operators)

このステップでは、複合代入演算子(Augmented Assignment Operators)について探ります。これらは、変数に対して演算を実行し、その新しい値を再び変数に代入するための簡潔な方法を提供します。

これらの演算子とその等価な表現を以下の表に示します。

演算子 等価な表現
var += 1 var = var + 1
var -= 1 var = var - 1
var *= 1 var = var * 1
var /= 1 var = var / 1
var //= 1 var = var // 1
var %= 1 var = var % 1
var **= 1 var = var ** 1

これらを使用する練習をしましょう。main.py ファイルを消去し、文字列、数値、リストでこれらがどのように機能するかを確認するために、以下のコードを追加してください。

## Augmented assignment with a string
greeting = 'Hello'
greeting += ' world!'
print(greeting)

## Increment a number by 1
number = 1
number += 1
print(number)

## Replicate list elements
my_list = ['item']
my_list *= 3
print(my_list)

ターミナルからスクリプトを実行します。

python3 main.py

出力には、複合代入の結果が表示されます。

Hello world!
2
['item', 'item', 'item']

セイウチ演算子 (Walrus Operator)

このステップでは、ウォルラス演算子(:=)、正式名称を代入式演算子(Assignment Expression Operator)について学習します。この演算子は Python 3.8 で導入され、より大きな式の一部として変数に値を代入することを可能にします。

これは、値を計算した直後にその値を使用する必要があるコードを簡略化するのに役立ちます。

実際に見てみましょう。main.py ファイルを消去し、以下のコードを追加してください。

## The walrus operator assigns "Hello World!" to my_var
## and returns the value, which is then printed.
print(my_var := "Hello World!")

## The variable my_var is now available for use
print(my_var)

## You can also use it to re-assign a variable within an expression
print(my_var := "Hello")
print(my_var)

スクリプトを実行します。

python3 main.py

以下の出力が表示され、変数が代入され、その値が同じ式内で返されたことが示されます。

Hello World!
Hello World!
Hello
Hello

データ型 (Data Types)

このステップでは、Python の 9 つの主要な組み込みデータ型について概説します。データ型を理解することは、変数が保持できる値の種類と、その変数に対して実行できる操作を定義するため、非常に重要です。

データ型 例 説明
数値 (Numbers)
int -2, 0, 5 整数
float -1.25, 0.0, 1.0 小数点を持つ数値
complex 2+3j 実部と虚部を持つ数値
テキスト (Text)
str 'a', "Hello!" テキストと文字
ブール値 (Boolean)
bool True, False True または False の値
None
NoneType None 「値がない」または「何もない」ことを表す
コレクション (Collections)
list [1, 2, 3] 順序付けられた変更可能なコレクション
dict {'name': 'Alice', 'age': 30} キーと値のペア
tuple (1, 2, 3) 順序付けられた変更不可能なコレクション
set {1, 2, 3} 一意な要素の順序付けられていないコレクション

これらのデータ型が実際にどのように機能するかを見るために、main.py ファイルを消去し、以下のコードを追加します。異なる型の変数を定義し、組み込みの type() 関数を使用してそれらの型を出力します。

## Numbers
age = 25                    ## int
price = 19.99               ## float
coordinate = 2 + 3j         ## complex

## Text
name = "Alice"              ## str

## Boolean
is_student = True           ## bool

## None
result = None               ## NoneType

## Collections
scores = [85, 92, 78]       ## list
person = {'name': 'Bob', 'age': 30}  ## dict
coordinates = (10, 20)      ## tuple
unique_ids = {1, 2, 3}      ## set

print(type(age))
print(type(price))
print(type(name))
print(type(is_student))
print(type(scores))
print(type(person))
print(type(coordinates))
print(type(unique_ids))

スクリプトを実行して、各変数の型を確認します。

python3 main.py

出力は次のようになります。

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
<class 'tuple'>
<class 'set'>

連結と複製 (Concatenation and Replication)

この最終ステップでは、文字列の基本的な 2 つの操作、連結(concatenation)と複製(replication)について学習します。

文字列の連結は、文字列を結合するプロセスです。Python では、隣接する文字列リテラルは自動的に連結されます。

文字列の複製は、* 演算子を使用して、既存の文字列を複数回繰り返すことで新しい文字列を作成します。

これらの操作を試してみましょう。main.py ファイルを消去し、以下のコードを追加してください。

## String concatenation: adjacent string literals are automatically joined.
## We use print() to display the result.
concatenated_string = 'Alice' 'Bob'
print(concatenated_string)

## String replication: repeat a string multiple times using the * operator.
replicated_string = 'Alice' * 5
print(replicated_string)

次に、ターミナルからスクリプトを実行します。

python3 main.py

2 つの操作の結果が表示されます。

AliceBob
AliceAliceAliceAliceAlice

これにより、Python で文字列をいかに簡単に操作できるかが示されました。

まとめ

この実験(Lab)の完了、おめでとうございます!これで Python プログラミングの世界への第一歩を踏み出しました。

この実験(Lab)では、いくつかの基本的な概念について学びました。

  • 算術演算子 (Math Operators): +、*、/、** などの演算子の使い方を練習し、それらの優先順位を理解しました。
  • 複合代入演算子 (Augmented Assignment Operators): コードをより簡潔に記述するための += や *= のようなショートカットを発見しました。
  • セイウチ演算子 (Walrus Operator): 式の中で変数に代入するための := 演算子について紹介しました。
  • データ型 (Data Types): 数値、文字列、ブール値、コレクションなど、Python の主要なデータ型の概要を把握しました。
  • 文字列の連結と複製 (String Concatenation and Replication): 文字列を結合したり繰り返したりする方法を学びました。

これらの概念は、より複雑で強力な Python プログラムを作成するための構成要素となります。練習を続け、Python が提供するものすべてを探求してください!