📝 Python学習記録 #4|フォーマット文字列・繰り返し処理の応用・エラー対処まで

プログラミング講座の記録

今日は、文字列の操作・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独特の書き方:

#python

if 5 < a < 10: #aの条件を関係演算し2つを用いて表現した形
print("5より大きく10より小さい")

数学の不等号の使い方としては一般的で、馴染みやすい形。Pythonでは使用可能だが、他の言語だと使用できないこともあるとか。


🔸 フォーマット文字列(f文字列)

#python

a = 5
b = 550
print(f"1つ{a}円です。{b}個で{a*b}円です")

#→ 1つ5円です。550個で2750円です
  • f'' の中に、文字列と同じように{変数名}と入力することで、変数を埋め込み表示することが可能
  • int, float でもキャスト不要で表示できる

🔸 float型と型変換

#python

a = 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():文字列やリストの**長さ(要素数)**を返す
#python

word = "Python"
print(len(word)) # → 6
  • リストも len() で要素数を取得可能
  • if文と組み合わせることで、文字数チェックなど行うことができる
#python

mojisuu=len('shiiiiiiiiii') 

if mojisuu > 5:
    print('文字数えらーだよ')

#→文字数えらーだよ

練習問題

実践:年齢に応じたメッセージ表示

問題 1: if文を使った複合条件

ユーザーに年齢を入力してもらい、次の条件に応じてメッセージを表示するプログラムを作成してください。

条件:

  • 年齢が 0歳未満 または 150歳以上 の場合、「無効な年齢です」と表示する。
  • 年齢が 0歳以上かつ12歳以下 の場合、「子供です」と表示する。
  • 年齢が 13歳以上かつ19歳以下 の場合、「ティーンエイジャーです」と表示する。
  • 年齢が 20歳以上 の場合、「大人です」と表示する。
#python

age = int(input("年齢を入力してください: "))

if age < 0 or age >= 150:
print("無効な年齢です。")
elif age <= 12:
print("子供です。")
elif age <= 19:
print("ティーンエイジャーです。")
else:
print("大人です。")
  • orand を組み合わせた条件分岐の実践練習

while文の応用:合計値と終了条件

問題 2: while文と複合条件

ユーザーに数値を繰り返し入力してもらい、次の条件を満たすまで合計を計算して表示するプログラムを作成してください。

条件:

「合計が50以上になる」 か、「ユーザーが負の数を入力する」 のいずれかでループを終了する。

ヒント:

while の条件に and や or を使う。

合計値を追跡し、負の数が入力されたら即座に終了する。

#python

total = 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

#python

import 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)

#python

try:
x = int(input("整数を入力: "))
print(10 / x)
except ZeroDivisionError: #エラー名がわかっていれば、エラー名を指定して処理を指定できる
print("0では割れません!")
except ValueError:
print("整数を入力してください。")
  • エラーが出てもプログラムを止めず、指定した処理を続ける
  • try → 処理
    except → エラー時の代替処理
  • try/exceptを使用すると動作が重くなるので注意

🔸 数当てゲーム(演習)

#python

import random #モジュールのインポート
correct = random.randint(1, 100) #変数correctに、1〜100の整数をランダムに定義
attempt = 1 #解答回数カウント用

print("1〜100の数字を当ててください")

while True:
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 は実務でもよく使う重要な機能。
  • 条件分岐と繰り返しの組み合わせで、ちょっとしたゲームまで作れるようになってきた!
  • ユーザーの入力に、ミスはつきもののように思うので、それを先回りした設計が必要なのだと感じた。

コメント

タイトルとURLをコピーしました