정수를 문자열로 변환?


1361

파이썬에서 정수를 문자열로 변환하고 싶습니다. 나는 그것을 헛된 유형으로 캐스팅하고 있습니다.

d = 15
d.str()

문자열로 변환하려고하면 int이라는 속성이없는 것과 같은 오류가 표시 str됩니다.

답변:


2094
>>> str(10)
'10'
>>> int('10')
10

설명서에 대한 링크 :

문자열로의 변환은 str()기본적으로 __str__()매개 변수 의 메서드를 호출하는 내장 함수를 사용하여 수행됩니다 .



62

파이썬에는 타입 캐스트가 없으며 타입 강제가 없습니다. 명시적인 방식으로 변수를 변환해야합니다.

문자열로 객체를 변환하려면 str()함수 를 사용합니다 . __str__()defined 라는 메소드가있는 모든 오브젝트에서 작동합니다 . 사실로

str(a)

에 해당

a.__str__()

int, float 등으로 무언가를 변환하려는 경우에도 동일합니다.


이 솔루션은 영숫자 문자열을 숫자 문자열로 변환하여 문자를 ASCII 값으로 바꾸는 데 도움이되었지만 str () 함수를 직접 사용하는 것은 작동하지 않았지만 __str __ ()은 작동했습니다. 예 (python2.7); s = "14.2.2.10a2"작동하지 않는 코드 : print "".join ([s의 c에 대해 (c.isalpha ()) c의 경우 c) is 작업 코드 : print "".join ([s의 c에 대해 (c.isalpha ()) c가 c 인 경우 ord (c) .__ str __ () if c) 예상 출력 : 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}'

파이썬은 그런 이유로 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)하므로 오랫동안 이상하게 보일 것입니다. (시도 i = `2 ** 32`; print i)

16
이것은 파이썬 2에서 더 이상 사용되지 않고 파이썬 3에서 완전히 제거되었으므로 더 이상 사용하지 않는 것이 좋습니다. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

%s또는 사용할 수 있습니다.format

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

(또는)

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


4

파이썬 3.6에서 f- 문자열을 도입하면 다음과 같이 작동합니다.

f'{10}' == '10'

str()가독성을 희생시키면서 실제로 호출하는 것보다 빠릅니다 .

실제로 %x문자열 형식 보다 빠릅니다 .format().

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.