Engineering

python ascii関数の使い方

  • 作成日:2024年3月14日0:22
  • 更新日:2024年3月14日0:23

python

Pythonのascii関数は、引数として渡されたオブジェクトをプリント可能な文字列として返します。ただしこの時、ascii以外の文字はエスケープされます。
いくつかのケースでascii関数を実行した際の出力例を紹介します。


実行例:文字列型

文字列を渡すケースがほとんどだと思います。ひらがなはエスケープされていることがわかります。

print('ascii("abc"):', ascii("abc"))
print('type(ascii("abc")):', type(ascii("abc")))

print('ascii("こんにちは"):', ascii("こんにちは"))
print('type(ascii("こんにちは")):', type(ascii("こんにちは")))
ascii("abc"): 'abc'
type(ascii("abc")): <class 'str'>

ascii("こんにちは"): '\u3053\u3093\u306b\u3061\u306f'
type(ascii("こんにちは")): <class 'str'>

実行例:list型

list型を渡した場合、要素にascii以外の文字が含まれていればエスケープされます。

print('ascii([1, 2, 3]):', ascii([1, 2, 3]))
print('type(ascii([1, 2, 3])):', type(ascii([1, 2, 3])))

print('ascii(["1", "2", "三"]):', ascii(["1", "2", "三"]))
print('type(ascii(["1", "2", "三"])):', type(ascii(["1", "2", "三"])))
ascii([1, 2, 3]): [1, 2, 3]
type(ascii([1, 2, 3])): <class 'str'>

ascii(["1", "2", "三"]): ['1', '2', '\u4e09']
type(ascii(["1", "2", "三"])): <class 'str'>

実行例:tuple型

こちらも基本的にlistと同じような結果になります。

print('ascii((1, 2, 3)):', ascii((1, 2, 3)))
print('type(ascii((1, 2, 3))):', type(ascii((1, 2, 3))))

print('ascii(("1", "2", "三")):', ascii(("1", "2", "三")))
print('type(ascii(("1", "2", "三"))):', type(ascii(("1", "2", "三"))))
ascii((1, 2, 3)): (1, 2, 3)
type(ascii((1, 2, 3))): <class 'str'>

ascii(("1", "2", "三")): ('1', '2', '\u4e09')
type(ascii(("1", "2", "三"))): <class 'str'>

実行例:辞書型

辞書型を渡した場合も、key/valueにascii以外の文字が含まれていればエスケープされます。

print('ascii({1: "1", 2: "2", 3: "三"}):', ascii({1: "1", 2: "2", 3: "三"}))
print('type(ascii({1: "1", 2: "2", 3: "三"})):', type(ascii({1: "1", 2: "2", 3: "三"})))

print('ascii({"1": 1, "2": 2, "三": 3}):', ascii({"1": 1, "2": 2, "三": 3}))
print('type(ascii({"1": 1, "2": 2, "三": 3})):', type(ascii({"1": 1, "2": 2, "三": 3})))
ascii({1: "1", 2: "2", 3: "三"}): {1: '1', 2: '2', 3: '\u4e09'}
type(ascii({1: "1", 2: "2", 3: "三"})): <class 'str'>

ascii({"1": 1, "2": 2, "三": 3}): {'1': 1, '2': 2, '\u4e09': 3}
type(ascii({"1": 1, "2": 2, "三": 3})): <class 'str'>

実行例:int型

int型など、文字列以外を引数とした渡した場合は単に文字列として返ってきます。

print('ascii(123):', ascii(123))
print('type(ascii(123)):', type(ascii(123)))
ascii(123): 123
type(ascii(123)): <class 'str'>

実行例:関数

関数を渡した場合、単にオブジェクト情報が文字列として返されます。

def sample_function():
    print('hello')

print('ascii(sample_function):', ascii(sample_function))
print('type(ascii(sample_function)):', type(ascii(sample_function)))
ascii(sample_function): <function sample_function at 0x7faf7dee3380>
type(ascii(sample_function)): <class 'str'>

実行例:クラス

クラスを渡すこともできますが、関数と同様に使われるケースはなさそうです。

class SampleClass():
    def __init__(self):
        self.message = 'hello'

sample_class = SampleClass()



print('ascii(SampleClass):', ascii(SampleClass))
print('type(ascii(SampleClass)):', type(ascii(SampleClass)))

print('ascii(sample_class):', ascii(sample_class))
print('type(ascii(sample_class)):', type(ascii(sample_class)))
ascii(SampleClass): <class '__main__.SampleClass'>
type(ascii(SampleClass)): <class 'str'>
ascii(sample_class): <__main__.SampleClass object at 0x7faf7c552cc0>
type(ascii(sample_class)): <class 'str'>




参考文献:
- https://docs.python.org/3/library/functions.html#ascii