Python 형식 문자열에서 %s의 의미는 무엇입니까?
무엇인가.%s
Python에서는요?그리고 다음 코드 부분은 어떤 역할을 할까요?
예를 들면...
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
이것은 문자열 형식 구문(C에서 차용)입니다.
"PyFormat"을 참조하십시오.
Python은 값의 문자열 형식을 지원합니다.여기에는 매우 복잡한 표현이 포함될 수 있지만 가장 기본적인 사용법은 값을 문자열에 삽입하는 것입니다.
%s
플레이스 홀더
다음으로 매우 간단한 예를 제시하겠습니다.
#Python 2
name = raw_input("who are you? ")
print "hello %s" % (name,)
#Python 3+
name = input("who are you? ")
print("hello %s" % (name,))
그%s
토큰을 사용하면 문자열을 삽입할 수 있습니다(포맷할 수도 있습니다).주의:%s
토큰은 다음 문자열에 전달되는 모든 것으로 대체됩니다.%
기호.여기서도 태플을 사용하고 있는 것에 주의해 주세요(태플을 사용하는 스트링이1개밖에 없는 경우는 옵션입니다).이것은, 1개의 스테이트먼트에 복수의 스트링을 삽입해 포맷 할 수 있는 것을 나타내고 있습니다.
Andrew의 대답은 좋다.
조금 더 알기 쉽게 하기 위해서, 1개의 문자열로 복수의 포맷을 사용하는 방법을 다음에 나타냅니다.
"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".
문자열 대신 ints를 사용하는 경우 %s 대신 %d를 사용합니다.
"My name is %s and I'm %d" % ('john', 12) #My name is john and I'm 12
그format
메서드는 Python 2.6에서 도입되었습니다.이 제품은 성능이 향상되고 사용이 크게 어렵지 않습니다.
>>> "Hello {}, my name is {}".format('john', 'mike')
'Hello john, my name is mike'.
>>> "{1}, {0}".format('world', 'Hello')
'Hello, world'
>>> "{greeting}, {}".format('world', greeting='Hello')
'Hello, world'
>>> '%s' % name
"{'s1': 'hello', 's2': 'sibal'}"
>>> '%s' %name['s1']
'hello'
%s
그리고.%d
문자열, 소수점, 플로트 등을 포맷하기 위한 포맷 지정자 또는 플레이스 홀더입니다.
가장 일반적으로 사용되는 형식 지정자:
%s
: 문자열
%d
: 소수점
%f
: 플로트
자체 설명 코드:
name = "Gandalf"
extendedName = "the Grey"
age = 84
IQ = 149.9
print('type(name): ', type(name)) # type(name): <class 'str'>
print('type(age): ', type(age)) # type(age): <class 'int'>
print('type(IQ): ', type(IQ)) # type(IQ): <class 'float'>
print('%s %s\'s age is %d with incredible IQ of %f ' %(name, extendedName, age, IQ)) # Gandalf the Grey's age is 84 with incredible IQ of 149.900000
# The same output can be printed in following ways:
print ('{0} {1}\'s age is {2} with incredible IQ of {3} '.format(name, extendedName, age, IQ)) # With the help of an older method
print ('{} {}\'s age is {} with incredible IQ of {} '.format(name, extendedName, age, IQ)) # With the help of an older method
print("Multiplication of %d and %f is %f" %(age, IQ, age*IQ)) # Multiplication of 84 and 149.900000 is 12591.600000
# Storing formattings in a string
sub1 = "python string!"
sub2 = "an arg"
a = "I am a %s" % sub1
b = "I am a {0}".format(sub1)
c = "with %(kwarg)s!" % {'kwarg':sub2}
d = "with {kwarg}!".format(kwarg=sub2)
print(a) # "I am a python string!"
print(b) # "I am a python string!"
print(c) # "with an arg!"
print(d) # "with an arg!"
%s
Python의 문자열 포맷 기능을 사용할 때의 문자열 변환 유형을 나타냅니다.좀 더 구체적으로 말하면%s
를 사용하여 지정된 값을 문자열로 변환합니다.str()
기능.이것과%r
를 사용하는 변환 타입repr()
값을 변환하기 위한 함수입니다.
두 번째 질문에 답하려면:이 코드의 기능은 무엇입니까?
이는 명령줄 인수를 받아들이는 Python 스크립트의 표준 오류 검사 코드입니다.
그래서 첫 번째if
스테이트먼트는 다음과 같이 해석됩니다.변론을 통과시키지 않은 경우, 향후 어떻게 변론을 통과시켜야 하는지 알려드리겠습니다.예를 들어 다음과 같은 내용이 화면에 표시됩니다.
Usage: myscript.py database-name
다음.if
스테이트먼트는 스크립트에 전달한 'syslog-name'이 파일시스템에 실제로 존재하는지 여부를 확인합니다.그렇지 않으면 다음과 같은 메시지가 나타납니다.
오류: 데이터베이스 데이터베이스 이름을 찾을 수 없습니다!
매뉴얼에서 다음 항목을 참조하십시오.
argv[0]는 스크립트 이름입니다(이것이 풀패스명인지 아닌지는 운영체제시스템에 의존합니다).명령어가 인터프리터에 대한 -c 명령줄 옵션을 사용하여 실행된 경우 argv[0]는 문자열 '-c'로 설정됩니다.Python 인터프리터에 스크립트 이름이 전달되지 않은 경우 argv[0]는 빈 문자열입니다.
다음은 Python 3의 좋은 예입니다.
>>> a = input("What is your name? ")
What is your name? Peter
>>> b = input("Where are you from? ")
Where are you from? DE
>>> print("So you are %s of %s." % (a, b))
So you are Peter of DE.
언급URL : https://stackoverflow.com/questions/997797/what-does-s-mean-in-a-python-format-string
'IT' 카테고리의 다른 글
MariaDB - my.cnf를 통해 max_connections를 설정할 수 없습니다. (0) | 2023.01.31 |
---|---|
날짜 형식 지정(Moment.js) (0) | 2023.01.31 |
치명적 오류: 정의되지 않은 함수 mysql_connect() 호출 (0) | 2023.01.21 |
MySQL은 두 값 사이에서 랜덤 값을 가져옵니다. (0) | 2023.01.21 |
문자열에서 모든 특수 문자 제거 (0) | 2023.01.21 |