基本文法
本授業では、プログラミングの基礎文法をとして、Pythonを使用します。
バージョンは、3系を使用します。
Pythonの基本文法
Hello World
Hello Worldは、プログラミング言語を学ぶ際に最初に書くプログラムです。
Pythonでは、以下のように書くことができます。
print("Hello World")
実行
まずはAOJにアクセスして、Hello Worldを実行してみましょう。
変数
変数は、データを格納するための箱のようなものです。
Pythonでは、以下のように書くことができます。
x = 10
y = 20
z = x + y
print(z)
変数には、整数や文字列などのデータを格納できます。また、変数名は任意の名前を付けることができます。変数名を付ける際には、わかりやすい名前を付けるようにしましょう。
person_name = "Alice"
age = 20
print(person_name, age)
演算子
演算子は、数値や文字列などのデータを操作するための記号です。
Pythonでは、以下の演算子を使用できます。
+: 加算-: 減算*: 乗算/: 除算//: 整数除算%: 剰余**: 累乗
x = 10
y = 20
print(x + y) # 30
print(x - y) # -10
print(x * y) # 200
print(x / y) # 0.5
print(7 // 3) # 2
print(x % y) # 10
print(x ** y) # 100000000000000000000
データ型
Pythonには、以下のようなデータ型があります。
- int: 整数 - 例: 1, 2, 3
- float: 浮動小数点数
- 例: 1.0, 2.0, 3.0
- str: 文字列
- 例: "Hello", "World"
- bool: 真偽値
- 例: True, False
- list: リスト
- 例: [1, 2, 3]
- tuple: タプル
- 例: (1, 2, 3)
- dict: 辞書
- 例:
{"name": "Alice", "age": 20}
- 例:
データ型に気をつけてプログラムを書く必要があります。
# int
x = 10
# str
y = "10"
print(x + y) # 1010
データ型の注意点
Pythonでは異なるデータ型を直接演算することはできません。例えば、整数型 (int) と文字列型 (str) をそのまま加算しようとするとエラーが発生します。
以下のコードはエラーになります。
# int
x = 10
# str
y = "10"
print(x + y) # TypeError: unsupported operand type(s) for +: 'int' and 'str'
このような場合、データ型を明示的に変換する必要があります。
# 正しい例
x = 10
y = "10"
# 文字列を整数に変換して加算
print(x + int(y)) # 20
# または、整数を文字列に変換して結合
print(str(x) + y) # "1010"
データ型の変換を適切に行うことで、エラーを防ぎ、意図した結果を得ることができます。
Pythonにおける入出力
Pythonにおける入出力について説明します。
Pythonでは、print関数を使用して出力を行います。
print("Hello World")
また、input関数を使用して入力を受け取ることができます。
name = input()
print("こんにちは、" + name + "さん")
int型に変換して受け取ることもできます。
age = int(input())
print("あなたの年齢は" + str(age) + "歳です")
複数の入力を受け取る場合は、split関数を使用してリストとして受け取ることができます。
文字列の場合
x, y = input().split()
整数の場合
x, y = map(int, input().split())
print(x + y)
AOJで問題を解く際には、入力を受け取る際にはinput関数を使用し、出力を行う際にはprint関数を使用します。
条件分岐
条件分岐について詳しく説明します。
条件分岐は、プログラムの中で特定の条件に応じて異なる処理を実行するための仕組みです。Pythonでは、if、elif、elseを使って条件分岐を記述します。
以下に、各部分の詳細を説明します。
if文
if文は、条件が「真(True)」の場合に実行されるコードを指定します。条件が満たされない場合はスキップされます。
x = 10
if x > 5: # xが5より大きい場合
print("xは5より大きいです")
elif文
elifは「else if」の略で、最初のif条件が満たされなかった場合に、次の条件をチェックします。複数の条件を順番に評価したいときに使います。
x = 5
if x > 5: # xが5より大きい場合
print("xは5より大きいです")
elif x == 5: # xが5と等しい場合
print("xは5です")
else文
elseは、すべての条件が満たされなかった場合に実行されるコードを指定します。
x = 4
if x > 5: # xが5より大きい場合
print("xは5より大きいです")
elif x == 5: # xが5と等しい場合
print("xは5です")
else: # それ以外の場合
print("xは5未満です")
比較演算子
比較演算子は、2つの値を比較するための演算子です。Pythonでは、以下の比較演算子を使用できます。
==: 等しい!=: 等しくない>: より大きい<: より小さい>=: 以上<=: 以下
比較演算子を使用して、条件分岐を行うことができます。
x = 10
if x > 5:
print("xは5より大きいです")
論理演算子
論理演算子は、複数の条件を組み合わせるための演算子です。Pythonでは、以下の論理演算子を使用できます。
and: かつor: またはnot: でない
論理演算子を使用して、複数の条件を組み合わせることができます。
x = 10
if x > 5 and x < 20:
print("xは5より大きく、20より小さいです")
繰り返し
繰り返しは、同じ処理を繰り返し行うことができます。
Pythonではforやwhileを使用して、以下のように書くことができます。
for i in range(10):
print(i) # 0, 1, 2, ..., 9
または、特定の範囲を指定して繰り返すこともできます。
for i in range(5,10):
print(i) # 5, 6, 7, 8, 9
i = 0
while i < 10:
print(i) # 0, 1, 2, ..., 9
i += 1
for と while の違いと使い分け
forとwhileはどちらも繰り返し処理を行うための構文ですが、用途や使い方に違いがあります。
forループ
繰り返し回数が決まっている場合や、リストや範囲などのイテラブルオブジェクトを順に処理したい場合に使用します。
# 例: リスト内の要素を順に処理
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
whileループ
繰り返し回数が決まっていない場合や、特定の条件が満たされるまで処理を繰り返したい場合に使用します。
# 例: 条件が満たされるまで繰り返す
count = 0
while count < 5:
print(count)
count += 1
使い分けのポイント:
- 繰り返し回数が明確な場合は
forを使用するのが一般的です。 - 条件に基づいて繰り返しを制御したい場合は
whileを使用します。 - 無限ループを作成する場合は
whileを使用し、適切な条件で終了させる必要があります。 - 可読性を重視して、状況に応じた適切なループを選択しましょう。
BreakとContinue
breakとcontinueは、ループの制御に使用されるキーワードです。
break: ループを強制的に終了します。ループ内で特定の条件が満たされた場合に、ループを抜けるために使用します。
for i in range(10):
if i == 5:
break # iが5になったらループを終了
print(i)
continue: ループの現在の反復をスキップし、次の反復に進みます。ループ内で特定の条件が満たされた場合に、その反復をスキップするために使用します。
for i in range(10):
if i % 2 == 0:
continue # iが偶数の場合はスキップ
print(i) # 奇数のみ出力
breakとcontinueを適切に使用することで、ループの制御を柔軟に行うことができます。
list
リストは、複数の要素を格納するためのデータ構造です。
Pythonでは、以下のように書くことができます。
fruits = ["apple", "banana", "cherry"]
print(fruits)
リストから要素を取り出すには、インデックス(添字)を指定します。 リストのインデックスは0から始まります。例えば、上記のリストから最初の要素を取得するには以下のようにします。
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[1]) # banana
# Pythonでは、負のインデックスを指定することもできます。この場合、リストの末尾からの位置を示します。
print(fruits[-1]) # cherry
またはループを使用して、リストの要素を順に処理することもできます。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
二次元リスト
2次元リストは、リストの中にリストを格納することで、行列を表現できます。
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[0][0]) # 1
print(matrix[1][1]) # 5
print(matrix[2][2]) # 9
これより多次元のリストも作成できます。
コメント
コメントは、プログラムの中に説明を書くためのものです。
Pythonでは、#を使ってコメントを書くことができます。
# これはコメントです
print("Hello World")
コメントを使って、プログラムの中に説明を書くことで、他の人がプログラムを理解しやすくなります。