ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
int() の基本
Python では文字列を整数に変換するには組み込み関数 int() を使います。引数に文字列を渡すと 10 進整数として解釈されます。
# 基本
int("123") # → 123
int("-42") # → -42
int(" 100 ") # → 100 (前後の空白は無視)
int("+7") # → 7
# 不正な文字列は ValueError
int("abc") # ValueError: invalid literal for int() with base 10: 'abc'
int("3.14") # ValueError (小数点 NG)
int("1,234") # ValueError (カンマ NG)
int("") # ValueError (空文字 NG)
基数指定 (2 進 / 8 進 / 16 進)
# 16 進
int("0x1F", 16) # → 31
int("1F", 16) # → 31 (0x プレフィックスなしでも可)
int("ff", 16) # → 255 (小文字でも可)
# 2 進
int("1010", 2) # → 10
int("0b1010", 2) # → 10
# 8 進
int("777", 8) # → 511
int("0o777", 8) # → 511
# base=0 で自動判定 (プレフィックス必須)
int("0x1F", 0) # → 31
int("0b1010", 0) # → 10
int("0o777", 0) # → 511
int("123", 0) # → 123
例外ハンドリング
def safe_int(s, default=0):
"""変換失敗時はデフォルト値を返す"""
try:
return int(s)
except (ValueError, TypeError):
return default
safe_int("123") # 123
safe_int("abc") # 0
safe_int(None) # 0
safe_int("3.14") # 0
# 用途に応じて Optional でも
from typing import Optional
def to_int(s: str) -> Optional[int]:
try:
return int(s)
except ValueError:
return None
小数点を含む文字列
# 直接 int は不可
int("3.14") # ValueError
# 一度 float を経由
int(float("3.14")) # → 3 (切り捨て)
int(float("3.99")) # → 3 (Python の int(float) はゼロ方向への切り捨て)
int(float("-3.99")) # → -3 (負の数も同様)
# 四捨五入したい
round(float("3.5")) # → 4 (バンカーズ・ラウンディング: 偶数丸め)
round(float("2.5")) # → 2 (← 注意: 0.5 は偶数側に丸まる)
# math.floor / math.ceil でも
import math
math.floor(float("3.7")) # → 3
math.ceil(float("3.2")) # → 4
事前チェック: isdigit() の限界
"123".isdigit() # True
"-123".isdigit() # False (- が NG)
"3.14".isdigit() # False
"123".isdigit() # True (全角数字も True になる!)
"".isdigit() # False
# isdecimal は更に厳しい (10 進数字のみ)
"123".isdecimal() # True
"123".isdecimal() # True
# マイナス含む整数を許可したいなら自前チェック
def is_int_str(s: str) -> bool:
if s.startswith(("-", "+")):
return s[1:].isdigit()
return s.isdigit()
is_int_str("-123") # True
is_int_str("+45") # True
is_int_str("3.14") # False
全角数字対応
# ✗ そのままだと NG
int("123") # ← Python 3.0+ では実は OK だが古い文献では NG
# 注意: 全角数字 1 2 3 は ascii 化される実装が多い
# ✓ 明示的に半角化
import unicodedata
s = "123"
half = unicodedata.normalize("NFKC", s)
int(half) # → 123
# 表変換でも可
zen2han = str.maketrans("0123456789", "0123456789")
int("123".translate(zen2han)) # → 123
# 漢数字は一筋縄ではいかない (専用ライブラリ kanjize 等)
unicodedata.numeric("五") # → 5.0 (1 文字単位のみ)
カンマ区切り数値
# 単純な削除
int("1,234,567".replace(",", "")) # → 1234567
# locale モジュール (推奨だが OS 依存)
import locale
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
locale.atoi("1,234,567") # → 1234567
# 通貨記号や負の括弧記法も対応するなら自前パース
import re
def parse_money(s: str) -> int:
"""$1,234 / ¥1,234 / (1,234) → 整数"""
s = s.strip()
neg = s.startswith("(") and s.endswith(")")
s = re.sub(r"[^\d.\-]", "", s)
n = int(float(s)) if s else 0
return -n if neg else n
parse_money("$1,234") # 1234
parse_money("(¥1,234)") # -1234
Decimal / Fraction との関係
from decimal import Decimal
from fractions import Fraction
# Decimal: 浮動小数誤差なし
Decimal("3.14") # Decimal('3.14')
int(Decimal("3.99")) # → 3 (切り捨て)
# Fraction: 分数
Fraction("3/4") # Fraction(3, 4)
int(Fraction("7/2")) # → 3 (切り捨て)
# 金額計算では float ではなく Decimal を使うのが鉄則
total = Decimal("0.1") + Decimal("0.2") # Decimal('0.3') 正確!
float_total = 0.1 + 0.2 # 0.30000000000000004 誤差
他言語との比較
| 言語 | str → int | 失敗時 |
|---|---|---|
| Python | int("123") | ValueError |
| JavaScript | parseInt("123") / Number("123") | NaN を返す (parseInt は寛容で部分パース) |
| Java | Integer.parseInt("123") | NumberFormatException |
| C# | int.Parse("123") / int.TryParse | FormatException / TryParse は false |
| Go | strconv.Atoi("123") | (int, error) |
| Rust | "123".parse:: | Result |
JavaScript の parseInt が特殊で、parseInt("123abc") が 123 を返す寛容な部分パース動作。Python の int() は厳密で、全体がパース可能でないと例外。
FAQ
Q: バイト列 (bytes) を int に
A: int.from_bytes(b"\\x12\\x34", "big") でバイト列 → 整数。逆は (0x1234).to_bytes(2, "big")。
Q: 16 進文字列の桁数が決まっている
A: int(s, 16) で常に変換可。0x プレフィックスはあっても無くても OK。
Q: 入力が int / str どちらか分からない
A: int(x) は数値型ならそのまま、文字列なら変換。isinstance(x, int) で先に判定するのが安全。
Q: ユーザ入力を整数として受け取りたい
A: n = int(input("数値: ")) のラップを try/except で囲む。失敗時に再入力させる関数化が定番。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- 型の確認
- strからintへの型変換
- 辞書型を文字列に変換する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?