Python ascii() 関数

Python3 内置函数Python3 組み込み関数


ascii()Python でオブジェクトの ASCII 表現を返すために使用される組み込み関数です。

ascii()文字列を返します。これはrepr()に似ていますが、非 ASCII 文字を ASCII 文字にエスケープします。これはデバッグやログ記録に非常に役立ちます。

単語の意味: asciiは American Standard Code for Information Interchange(アメリカ情報交換標準コード)の略です。


基本構文とパラメータ

構文形式

ascii(object)

パラメータの説明

  • パラメータ object:
    • 型:任意のオブジェクト
    • 説明:ASCII 表現を取得するオブジェクト。

関数の説明

  • 戻り値:文字列を返します。
  • 特徴:非 ASCII 文字は\x、\u 或 \U形式にエスケープされます。

例

例1:基本的な使い方

例

# 純粋な ASCII 文字列
s = "Hello"
print(ascii(s))   # 出力: 'Hello'

# 非 ASCII 文字を含む
s = "你好"
print(ascii(s))   # 出力: '\xe4\xbd\xa0\xe5\xa5\xbd'

# 中国語と英語の文字が混在
s = "Hello 你好"
print(ascii(s))   # 出力: 'Hello \xe4\xbd\xa0\xe5\xa5\xbd'

# その他の非 ASCII 文字
s = "café"
print(ascii(s))   # 出力: 'caf\xc3\xa9'

実行結果の予想:

'Hello'
'\xe4\xbd\xa0\xe5\xa5\xbd'
'Hello \xe4\xbd\xa0\xe5\xa5\xbd'
'caf\xc3\xa9'

コードの解説:

  1. 純粋な ASCII 文字はそのまま保持されます。
  2. 非 ASCII 文字はエスケープされます。
  3. 中国語の文字は\x16進数エスケープを使用します。

例2:repr() との比較

例

# repr vs ascii
s = "中文"
print(f"repr: {repr(s)}")   # 出力: repr: '中文'
print(f"ascii: {ascii(s)}") # 出力: ascii: '\xe4\xb8\xad\xe6\x96\x87'

# リスト
lst = ["Hello", "你好", "café"]
print(repr(lst))   # 出力: ['Hello', '你好', 'café']
print(ascii(lst))  # 出力: ['Hello', '\xe4\xbd\xa0\xe5\xa5\xbd', 'caf\xc3\xa9']

# 出力に使用(エンコードエラーを回避)
import sys
print(ascii("测试"))  # 出力: '\xe6\xb5\x8b\xe8\xaf\x95'

実行結果の予想:

repr: '中文'
ascii: '\xe4\xb8\xad\xe6\x96\x87'
['Hello', '你好', 'café']
['Hello', '\xe4\xbd\xa0\xe5\xa5\xbd', 'caf\xc3\xa9']
'\xe6\xb5\x8b\xe8\xaf\x95'

ascii()純粋な ASCII 環境で非 ASCII 文字を表示または記録する必要がある場合に非常に役立ちます。


Python3 内置函数Python3 組み込み関数


その他の拡張