파이썬에서 여러 인수를 인쇄


309

이것은 내 코드 스 니펫입니다.

print("Total score for %s is %s  ", name, score)

그러나 나는 그것을 인쇄하고 싶다 :

"(이름)의 총점은 (점수)"

여기서 name목록의 변수 score는 정수입니다. 이것이 도움이된다면 파이썬 3.3입니다.

답변:


559

이를 수행하는 방법에는 여러 가지가 있습니다. %-formatting을 사용하여 현재 코드를 수정하려면 튜플을 전달해야합니다.

  1. 튜플로 전달하십시오.

    print("Total score for %s is %s" % (name, score))

단일 요소를 가진 튜플은 다음과 같습니다 ('this',).

다른 일반적인 방법은 다음과 같습니다.

  1. 사전으로 전달하십시오.

    print("Total score for %(n)s is %(s)s" % {'n': name, 's': score})

조금 더 읽기 쉬운 새로운 스타일의 문자열 형식도 있습니다.

  1. 새로운 스타일의 문자열 형식을 사용하십시오.

    print("Total score for {} is {}".format(name, score))
  2. 숫자와 함께 새로운 스타일의 문자열 형식을 사용하십시오 (같은 순서를 여러 번 다시 정렬하거나 인쇄하는 데 유용).

    print("Total score for {0} is {1}".format(name, score))
  3. 명시적인 이름으로 새로운 스타일의 문자열 형식을 사용하십시오.

    print("Total score for {n} is {s}".format(n=name, s=score))
  4. 문자열 연결 :

    print("Total score for " + str(name) + " is " + str(score))

내 의견으로는 가장 명확한 두 가지 :

  1. 값을 매개 변수로 전달하십시오.

    print("Total score for", name, "is", score)

    print위 예제에서 공백을 자동으로 삽입하지 않으려면 sep매개 변수를 변경하십시오 .

    print("Total score for ", name, " is ", score, sep='')

    Python 2를 사용하는 경우 Python 2에서는 print함수가 아니기 때문에 마지막 두 개를 사용할 수 없습니다. 그러나 다음에서이 동작을 가져올 수 있습니다 __future__.

    from __future__ import print_function
  2. fPython 3.6에서 새로운 문자열 형식을 사용하십시오 .

    print(f'Total score for {name} is {score}')

7
물론, 오래된 비 승인 방법이 항상 있습니다.print("Total score for "+str(name)"+ is "+str(score))
뱀과 커피

5
@SnakesandCoffee : 그냥하겠습니다print("Total score for", name, "is", score)
Blender

4
내 +1 요즘 보간이 더 빠르다는 테스트를 보았지만 .format()이전보다 읽기 쉬운 것을 선호합니다 . 는 또한 간단한 경우에 괜찮습니다. 또한 사전을 인수로 사용하고 템플릿에서 텍스트를 생성하는 데 좋습니다. 더 오래된 것도 있습니다 . 그러나 템플릿은 깨끗하지 않습니다 . % (tuple)%print('xxx', a, 'yyy', b).format_map()'ssss {key1} xxx {key2}'string_template % dictionary'ssss %(key1)s xxx %(key2)s'
pepr

6
참고로, 파이썬 3.6의, 우리는 얻을 F-문자열 은 이제 할 수 있도록 print(f"Total score for {name} is {score}")명시적인 함수 호출로 (긴만큼 name하고 score분명 범위에있는).
ShadowRanger

57

인쇄하는 방법에는 여러 가지가 있습니다.

다른 예를 살펴 보겠습니다.

a = 10
b = 20
c = a + b

#Normal string concatenation
print("sum of", a , "and" , b , "is" , c) 

#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c)) 

# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))  

#New style string formatting
print("sum of {} and {} is {}".format(a,b,c)) 

#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))

EDIT :

#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')

3
print("sum of {0} and {1} is {2}".format(a,b,c)) 과도하게 print("sum of {} and {} is {}".format(a,b,c)) 주문을 변경하지 않는 한 생략 할 수 있습니다 .
Jean-François Fabre

38

사용 : .format():

print("Total score for {0} is {1}".format(name, score))

또는:

// Recommended, more readable code

print("Total score for {n} is {s}".format(n=name, s=score))

또는:

print("Total score for" + name + " is " + score)

또는:

`print("Total score for %s is %d" % (name, score))`

21

파이썬 3.6에서는 f-string훨씬 더 깨끗합니다.

이전 버전에서 :

print("Total score for %s is %s. " % (name, score))

파이썬 3.6에서 :

print(f'Total score for {name} is {score}.')

할 것이다.

더 효율적이고 우아합니다.


15

간단하게 유지하면서 개인적으로 문자열 연결을 좋아합니다.

print("Total score for " + name + " is " + score)

Python 2.7과 3.X에서 모두 작동합니다.

참고 : score가 int 이면 str 로 변환해야합니다 .

print("Total score for " + name + " is " + str(score))


11

그냥 따라와

idiot_type = "the biggest idiot"
year = 22
print("I have been {} for {} years ".format(idiot_type, years))

또는

idiot_type = "the biggest idiot"
year = 22
print("I have been %s for %s years."% (idiot_type, year))

그리고 다른 모든 것을 잊어 버리면 뇌가 모든 형식을 매핑 할 수는 없습니다.


6
print("Total score for %s is %s  " % (name, score))

%s에 의해 대체 될 수있다 %d또는%f


6

사용 f-string:

print(f'Total score for {name} is {score}')

또는

사용 .format:

print("Total score for {} is {}".format(name, score))

5

경우는 score다음의 숫자입니다

print("Total score for %s is %d" % (name, score))

점수가 문자열이면

print("Total score for %s is %s" % (name, score))

score가 숫자이면, %d문자열이면, %sscore가 float이면,%f


3

이것이 제가하는 것입니다:

print("Total score for " + name + " is " + score)

뒤에 공백을 넣어 기억 for하고 전후 is.

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