Python:演算子と文字列操作(f-string)
1学習の目的
- 四則演算・剰余・累乗、比較演算子、and/or/not を正しく使い分けられるようになる。
- f-string(f"...{変数}")で読みやすい整形出力を書けるようになる。現場のログ出力・帳票・メッセージ生成はほぼf-stringで書かれている。
2基礎解説
| 分類 | 演算子 | 例 → 結果 |
|---|---|---|
| 算術 | + - * / // % ** | 7 // 2 → 3, 7 % 2 → 1, 2 ** 3 → 8 |
| 比較 | == != < > <= >= | 5 >= 3 → True |
| 論理 | and or not | True and False → False |
- // は切り捨て除算、% は余り。「偶数判定 n % 2 == 0」は超頻出。
- = は代入、== は比較。混同はエラーやバグの定番。
- f-stringは f"合計は{total}円" のように {} に変数や式を埋め込める。
- f-stringの書式指定:{price:,} で3桁カンマ、{rate:.1%} でパーセント表示。
- and は「両方True」、or は「どちらかTrue」。条件の組み立ての基礎。
現場使用例:ログ出力 f"[{now}] user={uid} status={code}"、帳票の金額表示 f"{sales:,}円"、在庫判定 stock > 0 and is_open。
price = 1234567
rate = 0.083
name = "鈴木"
print(f"{name}さんの売上は{price:,}円です") # 3桁カンマ
print(f"達成率は{rate:.1%}") # 8.3%
print(f"来月目標: {price * 1.1:,.0f}円") # 式も書ける
3基本ドリル(10問)
出力が 3, 2 の順
// と % を使う。
print(17 // 5) print(17 % 5)
// は切り捨て除算。「n個をm人で分けると1人何個で何個余る?」の定番計算。
A. 20 B. 100 C. 1024 D. 12 選択★☆☆無料
解答 == C
** は累乗。
C
2の10乗=1024。データ容量計算(KB/MB)などで登場。
name = "山田"
print(____"こんにちは、{name}さん")
出力 == こんにちは、山田さん
クォートの直前に1文字。
print(f"こんにちは、{name}さん")
f を付け忘れると {name} がそのまま表示される。初心者の定番ミス。
A. True B. False C. エラー D. 10 選択★☆☆無料
解答 == A
== は「値」の比較。
A
int と float でも値が等しければ True。型まで区別したい場合は type() を併用する。
出力 == True
2で割った余りが0なら偶数。
n = 8 print(n % 2 == 0)
偶数判定 n % 2 == 0 は暗記レベルの頻出イディオム。
出力 == 1,980,000円
{price:,} の形。
price = 1980000
print(f"{price:,}円")
金額表示のカンマ整形は帳票・レポート作成で必ず使う。
A. True B. False C. エラー D. None 選択★★☆無料
解答 == A
and が or より先に評価される。
A
(True and False) or True → False or True → True。優先順位に迷ったらカッコを付けるのが実務の作法。
rate = 0.256
print(f"{rate:____}")
出力 == 25.6%
小数1桁のパーセント書式。
print(f"{rate:.1%}")
:.1% は「100倍して%を付け小数1桁」。達成率・進捗率の表示で頻出。
出力 == True
and で2条件をつなぐ。Pythonでは 60 <= score <= 100 とも書ける。
score = 85 print(60 <= score <= 100)
範囲チェックの連鎖比較はPythonならではの簡潔な書き方。入力バリデーションで多用。
A. エラー B. abcabcabc C. abc3 D. 9 選択★★☆無料
解答 == B
文字列に * を使うと?
B
文字列 * 整数 は繰り返し。区切り線 "-" * 30 のような使い方が実務で便利。
4実践シナリオ(5問)
出力が完全一致
f-string内で int(price * 1.1) と計算できる。
item = "会議用モニター"
price = 45800
print(f"{item}:{price:,}円(税込{int(price * 1.1):,}円)")
f-string内での計算+カンマ書式の組み合わせ。帳票系処理の実戦形。
出力 == 8時間20分
時間は // 60、分は % 60。
total_min = 500
print(f"{total_min // 60}時間{total_min % 60}分")
「// と % のペアで単位換算」は時間・金種計算・ページ割りなど応用範囲が広い。
出力が完全一致
{status == 200} と式を直接埋め込める。
user_id = 1024
status = 200
print(f"[INFO] user={user_id} status={status} ok={status == 200}")
実際のアプリログとほぼ同じ形。f-stringに比較式を埋め込むテクは監視ログで多用。
出力 == 1人:2600円/幹事負担:2200円
1人分の素の額 = total // people = 2542 → 100円単位切り上げ 2600。幹事 = total - 2600 * (people - 1)。
total = 17800
people = 7
per = -(-(total // people) // 100) * 100
organizer = total - per * (people - 1)
print(f"1人:{per}円/幹事負担:{organizer}円")
-(-x // n) は切り上げ除算の定番イディオム。演算子だけで実務ロジックが組めることを体感する問題。
「高橋さん:実績2,565,000円/目標比85.5%/達成:False」
目標比は actual / target をパーセント小数1桁で、達成は actual >= target の比較結果。 コーディング★★★無料
出力が完全一致
{actual / target:.1%} と {actual >= target}。
name = "高橋"
target = 3000000
actual = 2565000
print(f"{name}さん:実績{actual:,}円/目標比{actual / target:.1%}/達成:{actual >= target}")
カンマ書式・パーセント書式・比較式の埋め込みを1行に統合。営業レポート自動生成の最小形。
5仕上げ課題
client = "株式会社アオゾラ"/unit_price = 8500/hours = 127/tax_rate = 0.1
出力仕様(4行):
=== 請求サマリー ===
宛先:株式会社アオゾラ 御中
小計:1,079,500円(8,500円 × 127h)
税込合計:1,187,450円(税率10.0%)
条件:金額はすべて3桁カンマ、税率は :.1% 書式、税込は整数に切り捨てること。
出力4行が完全一致
小計 = unit_price * hours。税込 = int(小計 * (1 + tax_rate))。
client = "株式会社アオゾラ"
unit_price = 8500
hours = 127
tax_rate = 0.1
subtotal = unit_price * hours
total = int(subtotal * (1 + tax_rate))
print("=== 請求サマリー ===")
print(f"宛先:{client} 御中")
print(f"小計:{subtotal:,}円({unit_price:,}円 × {hours}h)")
print(f"税込合計:{total:,}円(税率{tax_rate:.1%})")
請求書・見積書の自動生成は事務自動化の最初の成果物になりやすい。書式指定を組み合わせた整形出力ができれば本項目は合格。