さあ、Pythonプログラミングの基本をしっかり身につけましょう!このセクションでは、「変数」「データ型」「演算子」など、プログラムの基礎となる重要な概念を学びます。
1. 変数とは?
プログラミングにおける「変数」とは、値を保存する「容器」のようなものです。ゲームのスコアやキャラクターの名前などを保存する「箱」と考えるとわかりやすいでしょう。
変数を使ってみよう!
まずは変数を実際に使ってみましょう!以下のコードをインタラクティブモードやエディタに入力して実行してみてください。
python
score = 100
name = "Hero"
print(score)
print(name)
このコードでは、変数score
に値100
を、変数name
に文字列"Hero"
を代入しています。その後、print()
関数を使って、各変数に保存された値を表示しています。
変数を使うことで、値を再利用したり、後から簡単に変更できます。例えば、ゲームのスコアが増えた場合は、次のように値を更新できます。
python
score = 200
変数名のルール
変数名は自由に決められますが、いくつかのルールがあります:
- アルファベット(大文字または小文字)、数字、**アンダースコア(
_
)**を使用できます。 - 数字で始めることはできません。
- 大文字と小文字は区別されます(例:
score
とScore
は別の変数)。 - 予約語(
if
やfor
などのPythonの特別なキーワード)は使えません。
良い変数名の例:
score
player_name
my_variable
悪い変数名の例:
1st_place
(数字で始まる)my-variable
(ハイフンは使用不可)for
(予約語)
わかりやすい変数名をつけることは、読みやすいコードを書くための重要な一歩です!
2. データ型とは?
変数(「容器」)には、さまざまな種類の値を格納できます。この「種類」をプログラミングでは「データ型」と呼びます。
Pythonにはいくつかの組み込みデータ型があります:
数値型(整数型、浮動小数点型)
数値を表現するデータ型です。
- 整数型(int):
1
、100
、-5
のような整数。 - 浮動小数点型(float):
3.14
、-2.5
、0.0
のような小数点を含む数値。
python
x = 10 # 整数
y = 3.14 # 浮動小数点数
z = -5 # 整数
print(type(x))
print(type(y))
type()
関数を使うと、変数のデータ型を確認できます。この例では、10
はint
、3.14
はfloat
です。
文字列型(str)
文字列を表すデータ型です。文字列は、"Hello, World!"
や'Hero'
のように、ダブルクォートまたはシングルクォートで囲みます。
python
message = "Hello!" # 文字列
name = 'Python' # 文字列
print(type(message))
print(type(name))
type()
関数で文字列のデータ型も確認できます。
真偽値型(bool)
True
またはFalse
のどちらかの値を持つデータ型です。主に条件文で使用されます。
python
is_game_over = False # 真偽値
is_logged_in = True # 真偽値
print(type(is_game_over))
print(type(is_logged_in))
リスト型(list)
リストは、複数の値をまとめて格納できるデータ型です。[]
で値を囲み、カンマで区切って作成します。
python
scores = [80, 95, 70, 60, 85] # リスト
names = ["Alice", "Bob", "Charlie"] # リスト
mixed_list = [1, "apple", True] # リスト
print(type(scores))
print(type(names))
print(type(mixed_list))
リストには、数値、文字列、真偽値など、異なるデータ型を混在させることもできます。
タプル型(tuple)
タプルもリストのように値をまとめて格納しますが、一度作成したら内容を変更できない点が異なります。()
で値を囲んで作成します。
python
coordinates = (10, 20) # タプル
rgb_color = (255, 0, 0) # タプル
print(type(coordinates))
print(type(rgb_color))
辞書型(dict)
辞書型は、「キー」と「値」のペアでデータを格納します。{}
で作成し、キーと値をコロン:
で区切ります。
python
player_info = {"name": "Hero", "level": 30, "hp": 150} # 辞書
scores = {"Alice": 80, "Bob": 95, "Charlie": 70} # 辞書
print(type(player_info))
print(type(scores))
関連する情報を構造的に整理する際に便利です。
None
None
は、値が存在しないことを表す特別なデータ型です。
python
result = None # 値が存在しないことを表す
print(type(result))
意味のある値をまだ持っていない変数を表すためによく使われます。
3. 演算子を使おう
「演算子」とは、+
(加算)や-
(減算)のように計算や比較を行う記号のことです。Pythonにはさまざまな演算子があります。
算術演算子(+, -, *, /, //, %, **)
これらは数学的な計算を行う演算子です。
+
: 加算-
: 減算*
: 乗算/
: 除算(結果は浮動小数点型)//
: 整数除算(小数部分を切り捨てた結果)%
: 剰余(割り算の余り)**
: 累乗
python
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
比較演算子(==, !=, >, <, >=, <=)
これらは2つの値を比較し、結果として真偽値(True
またはFalse
)を返します。
==
: 等しい!=
: 等しくない>
: より大きい<
: より小さい>=
: 以上<=
: 以下
python
x = 10
y = 5
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
print(x >= y) # True
print(x <= y) # False
論理演算子(and, or, not)
これらは、複数の真偽値を組み合わせて、より複雑な条件を作成します。
and
: 両方がTrue
の場合のみTrue
を返すor
: 少なくとも1つがTrue
の場合にTrue
を返すnot
: 真偽値を反転する(True
はFalse
に、False
はTrue
に)
python
age = 20
is_member = True
print(age >= 18 and is_member) # True(年齢が18以上かつ会員)
print(age < 18 or is_member) # True(年齢が18未満または会員)
print(not is_member) # False(会員ではない)
4. 条件分岐で処理を制御する (if文)
プログラムを書く際、特定の条件に基づいて異なるコードを実行したい場面があります。このような場合に役立つのが「条件分岐」です。Pythonでは、if
文を使用して条件に応じた処理を実装します。
if
の基本
if
文の基本的な構文は次の通りです:
python
if 条件式:
# 条件式がTrueの場合に実行されるコード
条件式
は、比較演算子や論理演算子を使用してTrue
またはFalse
のいずれかに評価される式です。
例えば、年齢が20歳以上の場合に「お酒を飲めます」と表示するコードは以下のようになります:
python
age = 25
if age >= 20:
print("お酒を飲めます")
条件が満たされない場合の処理を指定する: else
if
の条件が満たされない場合に何をするかを指定するには、else
を使います:
python
if 条件式:
# 条件式がTrueの場合に実行されるコード
else:
# 条件式がFalseの場合に実行されるコード
例えば、年齢が20歳以上の場合に「お酒を飲めます」、それ以外の場合に「まだお酒を飲めません」と表示するコードは次のようになります:
python
age = 18
if age >= 20:
print("お酒を飲めます")
else:
print("まだお酒を飲めません")
複数の条件をチェックする: elif
if
とelse
の間に、追加の条件をチェックしたい場合にはelif
を使います。elif
は「else if」の略です。
python
if 条件式1:
# 条件式1がTrueの場合に実行されるコード
elif 条件式2:
# 条件式1がFalseかつ条件式2がTrueの場合に実行されるコード
else:
# 全ての条件がFalseの場合に実行されるコード
例えば、年齢が20歳以上の場合に「お酒を飲めます」、18歳以上20歳未満の場合に「大人料金」、それ以外の場合に「子供料金」と表示するコードは以下のようになります:
python
age = 18
if age >= 20:
print("お酒を飲めます")
elif age >= 18:
print("大人料金")
else:
print("子供料金")
必要に応じてelif
は何回でも追加できます。
5. ループで効率的に処理を繰り返す (forループ、whileループ)
プログラムを書く際、同じ処理を何度も繰り返す必要がある場合があります。このような場合に便利なのが「ループ」です。Pythonでは、for
ループとwhile
ループが用意されています。
リストを処理するfor
ループ
for
ループは、リストのようなコレクションの各要素に対して順番に処理を行うのに便利です。
python
for 変数 in リスト:
# リストの各要素に対して実行するコード
例えば、名前のリストに「さん」を付けて表示するコードは以下のようになります:
python
names = ["Alice", "Bob", "Charlie"]
for name in names:
print(name + "さん")
このコードでは、names
リストの各要素が順番にname
に代入され、print(name + "さん")
が実行されます。
特定の回数だけ繰り返すrange()
特定の回数だけ処理を繰り返したい場合は、range()
関数が便利です。
python
for 変数 in range(回数):
# 繰り返すコード
例えば、「Hello」を5回表示するコードは次のようになります:
python
for i in range(5):
print("Hello")
range(5)
は、0から4までの整数の列を生成します。この場合、i
はその各値を順番に取ります(ただし、この例ではi
の値自体は使用していません)。
条件を満たす間繰り返すwhile
ループ
while
ループは、特定の条件がTrue
である間だけ処理を繰り返します。
python
while 条件式:
# 条件式がTrueの間繰り返すコード
例えば、変数の値が10未満である間、その値を表示して1ずつ増加させるコードは次のようになります:
python
count = 0
while count < 10:
print(count)
count += 1
ここでcount += 1
はcount = count + 1
と同じで、count
の値を1増やします。
break
とcontinue
ループ内で処理を制御するために、break
やcontinue
を使うことができます:
break
: ループを即座に終了します。continue
: 現在の繰り返しの残りをスキップし、次の繰り返しに移ります。
例えば、リストの中から特定の名前を探し、見つかったらループを終了するコードは以下のようになります:
python
names = ["Alice", "Bob", "Charlie", "David"]
for name in names:
if name == "Charlie":
print("Charlieを見つけました!")
break
print(name)
また、リストの中の偶数だけを表示するコードは次の通りです:
python
numbers = [1, 2, 3, 4, 5, 6]
for number in numbers:
if number % 2 != 0:
continue
print(number)
ここでは、number
が奇数の場合(つまり2で割った余りが0でない場合)、continue
によってprint(number)
をスキップします。
6. 関数でコードを整理する
関数は、特定のタスクを実行するコードを名前付きでまとめたものです。関数を定義することで、同じコードを簡単に再利用できるようになります。
def
で関数を定義する
関数を定義するには、def
キーワードを使います:
python
def 関数名(引数1, 引数2, ...):
# 実行するコード
return 戻り値
def
: 関数を定義するキーワード。- 関数名: 関数の名前(変数名と同じ命名ルールに従う)。
- 引数: 関数に渡す値(省略可能)。
- 戻り値: 関数が返す値(省略可能)。
例えば、2つの数を足し算して返すadd
という関数を定義するコードは次の通りです:
python
def add(x, y):
result = x + y
return result
引数と戻り値
関数に値を渡すには、関数名の後の括弧内に値を記述します。また、戻り値を得るにはreturn
を使います。
python
# 関数を呼び出す
sum = add(5, 3)
print(sum) # 8
引数や戻り値が不要な関数も定義できます。例えば、単に「Hello」と表示する関数は以下のようになります:
python
def say_hello():
print("Hello")
# 関数を呼び出す
say_hello()
変数のスコープ
関数内で定義した変数は、その関数内でのみアクセス可能です。これを「変数のスコープ」といいます。
python
def my_function():
x = 10 # このxはmy_function内でのみ有効
print(x)
my_function() # 10
print(x) # エラー!xはmy_functionの外では定義されていません
一方、関数外で定義された変数は、関数内でもアクセスできます:
python
y = 20 # yは関数の外で定義
def my_function():
print(y) # yは関数内でアクセス可能
my_function() # 20
ただし、関数内でその変数を変更しようとすると、新たにローカル変数が作られます。