整数を文字列に変換しますか?


1362

Pythonで整数を文字列に変換したいのですが。私はそれを無駄にタイプキャストしています:

d = 15
d.str()

文字列に変換しようとすると、というint属性がないというエラーが表示されstrます。

回答:




62

Pythonには型キャストや型強制はありません。明示的な方法で変数を変換する必要があります。

オブジェクトを文字列に変換するには、str()関数を使用します。これは、__str__()定義済みと呼ばれるメソッドを持つ任意のオブジェクトで機能します。実際には

str(a)

に相当

a.__str__()

何かをintやfloatなどに変換したい場合も同じです。


この解決策は私を助けました、私は英数字の文字列を数値文字列に変換し、文字をそれらのASCII値で置き換えましたが、str()関数を直接使用することは機能しませんでしたが、__ str __()は機能しました。例(python2.7); s = "14.2.2.10a2"非機能コード:print "" .join([str(ord(c))if(c.isalpha())else c for c in s])機能コード:print "" .join ([ord(c).__ str __()if(c.isalpha())else c for c for s])予想される出力:14.2.2.10972
Jayant

18

非整数入力を管理するには:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

14
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5

11

Python => 3.6では、fフォーマットを使用できます。

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

7

Python 3.6では、f-stringsの新機能を使用して文字列に変換できます。これは、str()関数に比べて高速で、次のように使用されます。

age = 45
strAge = f'{age}'

そのため、Pythonではstr()関数を提供しています。

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

より詳細な回答については、この記事をチェックできます:Python IntからStringへの変換およびPython StringからIntへの変換


6

私の意見で最もまともな方法は「です。

i = 32   -->    `i` == '32'

3
これはと同等repr(i)なので、longsの場合は奇妙になります。(試してみるi = `2 ** 32`; print i

16
これはpython 2で非推奨になり、python 3で完全に削除されたので、もう使用しないことをお勧めします。docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

%sまたは使用できます.format

>>> "%s" % 10
'10'
>>>

(または)

>>> '{}'.format(10)
'10'
>>>


4

Python 3.6のf-stringsの導入により、これも機能します。

f'{10}' == '10'

str()読みやすさは犠牲になりますが、実際にはを呼び出すよりも高速です。

実際、%x文字列のフォーマットよりも高速.format()です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.