今日は、文字列の操作・float型・繰り返し処理の演習に加えて、モジュールの利用と**エラー処理(try/except)**についても学びました。
✅ 今日の主な内容
- 演算子の復習
- フォーマット文字列 f’{}’
- モジュールの利用:math・random
- エラー処理(try / except)
Python講座4日目
🔸 関係演算子・論理演算子の復習
==
等しい!=
等しくない<
,<=
,>=
より小さい/以下/以上
#python
#「3で割り切れる」といった条件の表現方法if a % 3 == 0:
print("3で割り切れます")
算術演算子「%」は、余りを返す。「a % 3」 は「aを3で割ったときのあまり数値」なので、「==0」とすると、あまりが0→aは割り切れる、となる
関係演算子のPython独特の書き方:
#pythonif 5 < a < 10: #aの条件を関係演算し2つを用いて表現した形
print("5より大きく10より小さい")
数学の不等号の使い方としては一般的で、馴染みやすい形。Pythonでは使用可能だが、他の言語だと使用できないこともあるとか。
🔸 フォーマット文字列(f文字列)
#pythona = 5
b = 550
print(f"1つ{a}円です。{b}個で{a*b}円です")
#→ 1つ5円です。550個で2750円です
f''
の中に、文字列と同じように{変数名}
と入力することで、変数を埋め込み表示することが可能int
,float
でもキャスト不要で表示できる
🔸 float型と型変換
#pythona = 9.7
b = 1.3
c = 5
print(a + b) # → 11.0 (float型)
print(int(a) + int(b)) # → 10 (int型
)
print(a + c) # → 14.7 (float型
)
float()
→ 浮動小数点型に変換int()
→ 小数点以下を切り捨て
🔸 len() 関数_文字列の文字数やリストの要素数を取得できる
len()
:文字列やリストの**長さ(要素数)**を返す
#pythonword = "Python"
print(len(word)) # → 6
- リストも
len()
で要素数を取得可能 - if文と組み合わせることで、文字数チェックなど行うことができる
#python
mojisuu=len('shiiiiiiiiii')
if mojisuu > 5:
print('文字数えらーだよ')
#→文字数えらーだよ
練習問題
実践:年齢に応じたメッセージ表示
問題 1: if文を使った複合条件
ユーザーに年齢を入力してもらい、次の条件に応じてメッセージを表示するプログラムを作成してください。
条件:
- 年齢が 0歳未満 または 150歳以上 の場合、「無効な年齢です」と表示する。
- 年齢が 0歳以上かつ12歳以下 の場合、「子供です」と表示する。
- 年齢が 13歳以上かつ19歳以下 の場合、「ティーンエイジャーです」と表示する。
- 年齢が 20歳以上 の場合、「大人です」と表示する。
#pythonage = int(input("年齢を入力してください: "))
if age < 0 or age >= 150:
print("無効な年齢です。")
elif age <= 12:
print("子供です。")
elif age <= 19:
print("ティーンエイジャーです。")
else:
print("大人です。")
or
やand
を組み合わせた条件分岐の実践練習
while文の応用:合計値と終了条件
問題 2: while文と複合条件
ユーザーに数値を繰り返し入力してもらい、次の条件を満たすまで合計を計算して表示するプログラムを作成してください。
条件:
「合計が50以上になる」 か、「ユーザーが負の数を入力する」 のいずれかでループを終了する。
ヒント:
while の条件に and や or を使う。
合計値を追跡し、負の数が入力されたら即座に終了する。
#pythontotal = 0
while total < 50:
number = int(input("数値を入力してください (負の数を入力すると終了します): "))
if number < 0:
break
total += number
print(f"現在の合計: {total}")
print("最終的な合計:", total)
or
,and
,break
などの使い所を学習- while の条件に and を使うことも可能
- while True:として、無限ループを開始し、ブロック内で、totalが50以上でbreakといった書き方も可能
🔸 モジュールの利用:math・random
#pythonimport math
print(math.pi) # 円周率
print(math.sqrt(16)) # 4.0
import random
print(random.choice(["A", "B", "C"])) # リスト内の要素を、ランダムに返す
#ゲームなどで使用される
import モジュール名 as 略称
でエイリアスも可能:
#python
import math as m #mathモジュールを「m.」の記載に省略できるprint(m.pi)
#→3.141592653589793(円周率)
🔸 エラー処理(try / except)
#pythontry:
x = int(input("整数を入力: "))
print(10 / x)
except ZeroDivisionError: #エラー名がわかっていれば、エラー名を指定して処理を指定できる
print("0では割れません!")
except ValueError:
print("整数を入力してください。")
- エラーが出てもプログラムを止めず、指定した処理を続ける
try
→ 処理except
→ エラー時の代替処理- try/exceptを使用すると動作が重くなるので注意
🔸 数当てゲーム(演習)
#pythonimport random #モジュールのインポート
while True:
correct = random.randint(1, 100) #変数correctに、1〜100の整数をランダムに定義
attempt = 1 #解答回数カウント用
print("1〜100の数字を当ててください")
try:
guess = int(input(f"{attempt}回目の予想: "))
if guess == correct:
print(f"正解!{attempt}回で当たりました!")
break
elif guess < correct:
print("もっと大きいです")
else:
print("もっと小さいです")
attempt += 1
except ValueError:
# 整数に変換できない場合のエラーメッセージ
print("エラー: 数字を入力してください。")
- ランダム・ループ・条件分岐・エラー処理を活用したミニアプリ
🌱 所感メモ
f文字列
やtry / except
は実務でもよく使う重要な機能。- 条件分岐と繰り返しの組み合わせで、ちょっとしたゲームまで作れるようになってきた!
- ユーザーの入力に、ミスはつきもののように思うので、それを先回りした設計が必要なのだと感じた。
コメント