判断と繰り返し処理
age = 18
if age >= 18:
print("あなたは成人です")
print("投票できます")
else:
print("あなたは未成年です")
print("まだ投票できません")
print("これは常に実行されます")重要ポイント: Pythonではインデントがコードブロックを定義します!
| 演算子 | 意味 | 例 |
|---|---|---|
== |
等しい | x == 5 |
!= |
等しくない | x != 5 |
< |
より小さい | x < 10 |
> |
より大きい | x > 10 |
<= |
以下 | x <= 10 |
>= |
以上 | x >= 10 |
age = 25
has_license = True
has_car = False
# AND演算子 - 両方の条件がTrueである必要
can_drive = age >= 18 and has_license
print(f"運転できる: {can_drive}") # True
# OR演算子 - 少なくとも一つの条件がTrueである必要
can_travel = has_car or age >= 18
print(f"旅行できる: {can_travel}") # True
# NOT演算子 - ブール値を反転
needs_license = not has_license
print(f"免許が必要: {needs_license}") # False
# 複雑な条件
can_rent_car = age >= 21 and has_license and not has_carfruits = ["りんご", "バナナ", "さくらんぼ"]
my_fruit = "りんご"
# メンバーシップ演算子
if my_fruit in fruits:
print(f"{my_fruit}があります!")
if "ぶどう" not in fruits:
print("ぶどうはありません")
# 同一性演算子(注意!)
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(list1 == list2) # True(同じ内容)
print(list1 is list2) # False(異なるオブジェクト)
print(list1 is list3) # True(同じオブジェクト)# リストをループ
fruits = ["りんご", "バナナ", "さくらんぼ"]
for fruit in fruits:
print(f"{fruit}が好きです")
# 文字列をループ
for letter in "Python":
print(letter)
# enumerate でインデックス + 値を取得
for index, fruit in enumerate(fruits):
print(f"{index + 1}. {fruit}")
# 辞書をループ
student = {"名前": "太郎", "年齢": 20, "専攻": "CS"}
for key, value in student.items():
print(f"{key}: {value}")# 従来の方法
squares = []
for x in range(10):
squares.append(x**2)
# リスト内包表記(Pythonic)
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 条件付きリスト内包表記
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]
# 複雑な例
words = ["hello", "world", "python", "programming"]
upper_words = [word.upper() for word in words if len(word) > 5]
print(upper_words) # ['PYTHON', 'PROGRAMMING']# 学生の成績を計算
students = [
{"名前": "太郎", "点数": [85, 92, 78]},
{"名前": "花子", "点数": [90, 88, 95]},
{"名前": "次郎", "点数": [76, 81, 69]}
]
for student in students:
scores = student["点数"]
average = sum(scores) / len(scores)
if average >= 90:
grade = "A"
elif average >= 80:
grade = "B"
elif average >= 70:
grade = "C"
else:
grade = "D"
print(f"{student['名前']}: 平均 {average:.1f}, 成績 {grade}")import random
# 1から100の間の数を選択
secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 7
print("1から100の間の数を当ててください!")
while attempts < max_attempts:
try:
guess = int(input(f"推測 {attempts + 1}/{max_attempts}: "))
attempts += 1
if guess == secret_number:
print(f"正解! {attempts}回で当てました!")
break
elif guess < secret_number:
print("もっと大きい数です")
else:
print("もっと小さい数です")
except ValueError:
print("有効な数値を入力してください")
if attempts == max_attempts:
print(f"ゲームオーバー!答えは {secret_number} でした。")次は 関数 に進みましょう!
リソース: - Python.org - Real Python - Python Tutor
Python チュートリアル