1. if-elif-else 文の基本
ans = input("お酒を飲みましたか? (y/n): ")
if ans == 'y':
alcohol = int(input("アルコール度数を入力してください: "))
if alcohol < 20:
print("運転できます")
elif alcohol < 80:
print("飲酒しているため、運転できません")
else:
print("泥酔しているため、運転禁止")
else:
print("運転できます")
2. and を使った複数条件の判定
username = input("ユーザー名を入力してください: ")
password = input("パスワードを入力してください: ")
if username == "admin" and password == "123456":
print("ログイン成功")
else:
print("ユーザー名またはパスワードが間違っています")
3. or を使った複数条件の判定
score = int(input("スコアを入力してください: "))
if score < 0 or score > 100:
print("無効なスコアです。再入力してください。")
else:
print("あなたのスコアは:", score)
4. for ループの使用
# 文字列の文字を1つずつ出力
for ch in "range":
print(ch)
# 10未満の偶数を判定(range(1,10)は1~9)
for num in range(1, 10):
if num % 2 == 0:
print(num, "は偶数です")
# 100~999の水仙花数(各桁の3乗の和が元の数に等しい)
for n in range(100, 1000):
units = n % 10
tens = (n // 10) % 10
hundreds = n // 100
sum_cubes = units**3 + tens**3 + hundreds**3
if n == sum_cubes:
print(n)
5. while ループの使用
# 条件が 'y' の間繰り返し
reply = input("今日は授業がありますか? (y/n): ")
while reply == 'y':
print("授業があります")
reply = input("今日は授業がありますか? (y/n): ")
# 1から100までの合計
total = 0
i = 1
while i <= 100:
total += i
i += 1
print("合計:", total)
6. while ループでユーザーログインをシミュレート
attempts = 0
while attempts < 3:
user = input("ユーザー名を入力: ")
pwd = input("パスワードを入力: ")
if user == "ty" and pwd == "666666":
print("ログイン中...")
attempts = 4 # ループを抜けるための値
else:
remaining = 2 - attempts
print(f"ユーザー名またはパスワードが間違っています。残り {remaining} 回")
attempts += 1
if attempts == 3:
print("3回のログインに失敗しました")
7. ネストループで長方形と三角形を出力
# 3行4列の '*' 行列
for i in range(1, 4):
for j in range(1, 5):
print('*', end='')
print()
# 5行の直角三角形
for i in range(1, 6):
for j in range(1, i + 1):
print('*', end='')
print()
# 逆さの直角三角形(5行)
for i in range(1, 6):
for j in range(1, 7 - i):
print('*', end='')
print()
# 5行の二等辺三角形
for i in range(1, 6):
for j in range(1, 6 - i):
print(' ', end='')
for k in range(1, i * 2):
print('*', end='')
print()
8. ネストループでひし形を出力
rows = int(input("行数を入力(奇数): "))
while rows % 2 == 0:
print("奇数を入力してください")
rows = int(input("行数を入力(奇数): "))
# 上半分
top = (rows + 1) // 2
for i in range(1, top + 1):
for j in range(1, top + 1 - i):
print(' ', end='')
for k in range(1, i * 2):
print('*', end='')
print()
# 下半分
bottom = rows // 2
for i in range(1, bottom + 1):
for j in range(1, i + 1):
print(' ', end='')
for k in range(1, 2 * bottom - i * 2 + 2):
print('*', end='')
print()