다음 코드가 있습니다
test = "have it break."
selectiveEscape = "Print percent % in sentence and not %s" % test
print(selectiveEscape)
출력을 얻고 싶습니다.
Print percent % in sentence and not have it break.
실제로 일어나는 일 :
selectiveEscape = "Use percent % in sentence and not %s" % test
TypeError: %d format: a number is required, not str
답변
>>> test = "have it break."
>>> selectiveEscape = "Print percent %% in sentence and not %s" % test
>>> print selectiveEscape
Print percent % in sentence and not have it break.
답변
또는 Python 2.6부터는 새로운 문자열 형식을 사용할 수 있습니다 ( PEP 3101에 설명되어 있음 ).
'Print percent % in sentence and not {0}'.format(test)
문자열이 더 복잡해지면 특히 편리합니다.
답변
%%
% sign을 인쇄 하는 데 사용 하십시오.
답변
다음 문자에 따라 항상 특별한 의미를 가지 %
므로 선택적으로 이스케이프 할 수 없습니다 %
.
에서 문서 파이썬, 해당 섹션에서 두 번째 테이블의 bottem에서, 그것은 상태 :
'%' No argument is converted, results in a '%' character in the result.
따라서 다음을 사용해야합니다.
selectiveEscape = "Print percent %% in sentence and not %s" % (test, )
(에 대한 인수로 튜플의 급행 변경 사항에 유의하십시오 %
)
위의 내용을 알지 못하면 나는했을 것입니다 :
selectiveEscape = "Print percent %s in sentence and not %s" % ('%', test)
이미 알고있는 지식으로
답변
형식 지정 템플릿을 파일에서 읽은 경우 내용이 백분율 기호를 두 배로 늘릴 수없는 경우 백분율 문자를 감지하여 자리 표시 자의 시작인지 여부를 프로그래밍 방식으로 결정해야합니다. 그런 다음 파서는 또한 %d
(및 사용 가능한 다른 문자)와 같은 시퀀스를 인식해야합니다 %(xxx)s
.
텍스트에 중괄호가 포함될 수있는 새로운 형식에서도 비슷한 문제가 발생할 수 있습니다.
답변
당신이 사용하는 경우 파이썬 3.6 이상을, 당신이 사용할 수있는 F-문자열 :
>>> test = "have it break."
>>> selectiveEscape = f"Print percent % in sentence and not {test}"
>>> print(selectiveEscape)
... Print percent % in sentence and not have it break.
답변
서브 플롯 제목을 인쇄하는 다른 방법을 시도했지만 작동 방식을 살펴보십시오. 라텍스를 사용할 때 다릅니다.
일반적인 경우 ‘%%’및 ‘string’+ ‘%’와 함께 작동합니다.
라텍스를 사용하면 ‘string’+ ‘\ %’
따라서 일반적인 경우 :
import matplotlib.pyplot as plt
fig,ax = plt.subplots(4,1)
float_number = 4.17
ax[0].set_title('Total: (%1.2f' %float_number + '\%)')
ax[1].set_title('Total: (%1.2f%%)' %float_number)
ax[2].set_title('Total: (%1.2f' %float_number + '%%)')
ax[3].set_title('Total: (%1.2f' %float_number + '%)')
라텍스를 사용하는 경우 :
import matplotlib.pyplot as plt
import matplotlib
font = {'family' : 'normal',
'weight' : 'bold',
'size' : 12}
matplotlib.rc('font', **font)
matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['text.latex.unicode'] = True
fig,ax = plt.subplots(4,1)
float_number = 4.17
#ax[0].set_title('Total: (%1.2f\%)' %float_number) This makes python crash
ax[1].set_title('Total: (%1.2f%%)' %float_number)
ax[2].set_title('Total: (%1.2f' %float_number + '%%)')
ax[3].set_title('Total: (%1.2f' %float_number + '\%)')
우리는 이것을 얻습니다 :
%와 라텍스가있는 제목 예제