| この記事の要点 |
|
連結(+)と反復(*)
s = "Py" + "thon"
print(s) # Python
print("-" * 20) # --------------------
print("ab" * 3) # ababab
# 文字列は不変(immutable)なので、+ は毎回新しい文字列を作る
a = "abc"
b = a
a += "d"
print(a, b) # abcd abc ← b は変わらない
数値との連結はエラーになる
n = 5
# print("個数: " + n)
# TypeError: can only concatenate str (not "int") to str
print("個数: " + str(n)) # 個数: 5
print(f"個数: {n}") # 個数: 5 ← こちらが読みやすい
print("個数:", n) # 個数: 5 ← print はカンマ区切りで空白が入る
JavaScript や PHP のように暗黙で文字列化はされません。Python は型の混在を明示させる設計です。
ループでの連結は join を使う
words = ["a", "b", "c", "d"]
# 遅い書き方:繰り返すたびに新しい文字列を作る
s = ""
for w in words:
s += w
# 速い書き方:まとめて 1 回で作る
s = "".join(words)
print(s) # abcd
print(", ".join(words)) # a, b, c, d
print("\n".join(words)) # 改行区切り
# join の要素は str でなければならない
nums = [1, 2, 3]
print(",".join(str(n) for n in nums)) # 1,2,3
+= は要素数が少なければ実用上問題ありませんが、数千件を超えると差が出ます。「連結したい列があるなら join」と覚えておくと迷いません。
整形(f-string / format / %)
name, price = "りんご", 128
print(f"{name} は {price} 円") # f-string(推奨)
print("{} は {} 円".format(name, price)) # .format()
print("%s は %d 円" % (name, price)) # % 書式(古い)
# 桁揃え・書式指定
print(f"{price:,}") # 128 カンマ区切り
print(f"{3.14159:.2f}") # 3.14 小数 2 桁
print(f"{42:05d}") # 00042 ゼロ埋め
print(f"{name:<10}|") # りんご | 左寄せ 10 幅
print(f"{name:>10}|") # りんご| 右寄せ
# 式や変数名の表示(Python 3.8 以降)
print(f"{price * 2 = }") # price * 2 = 256
リテラルの暗黙連結に注意
# 隣り合った文字列リテラルは自動で連結される
msg = ("エラーが発生しました。"
"設定を確認してください。")
print(msg) # エラーが発生しました。設定を確認してください。
# 便利な一方、リストのカンマを忘れると気づきにくいバグになる
items = [
"apple",
"banana" # ← カンマ忘れ
"cherry",
]
print(items) # ['apple', 'bananacherry'] 要素が 2 個になる
比較にも演算子が使える
print("apple" == "apple") # True
print("apple" < "banana") # True 辞書順(Unicode コードポイント順)
print("Z" < "a") # True 大文字が先
print("py" in "python") # True 部分一致は in
# 大小無視で比べたいとき
print("Apple".casefold() == "apple".casefold()) # True
日本語を含む並び替えはコードポイント順になるため、「あいうえお順」にしたい場合は読み仮名を別に持つか pykakasi のような外部ライブラリが必要です。
関連
- 演算子 — 親カテゴリ
- 比較演算子 — 文字列の大小比較
- 文字列の組み込み関数 / len
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09