파이썬에서 변수와 문자열을 같은 줄에 어떻게 인쇄 할 수 있습니까?


176

나는 7 초마다 아이가 태어났다면 5 년 동안 몇 명의 아이가 태어날 지 파이썬을 사용하고 있습니다. 문제는 마지막 줄에 있습니다. 텍스트를 인쇄 할 때 변수를 작동 시키려면 어떻게해야합니까?

내 코드는 다음과 같습니다.

currentPop = 312032486
oneYear = 365
hours = 24
minutes = 60
seconds = 60

# seconds in a single day
secondsInDay = hours * minutes * seconds

# seconds in a year
secondsInYear = secondsInDay * oneYear

fiveYears = secondsInYear * 5

#Seconds in 5 years
print fiveYears

# fiveYears in seconds, divided by 7 seconds
births = fiveYears // 7

print "If there was a birth every 7 seconds, there would be: " births "births"

2020 년에 조심하십시오 (상식, 나는 알고 있습니다 : D). 인쇄는 Python3에서 함수가되었으며 이제 괄호와 함께 사용해야합니다. print(something)(또한 Python2는 올해 이후로 구식입니다.)
PythoNic

답변:


262

,인쇄하는 동안 문자열과 변수를 구분하는 데 사용하십시오 .

print "If there was a birth every 7 seconds, there would be: ",births,"births"

, print 문에서 항목은 단일 공백으로 구분됩니다.

>>> print "foo","bar","spam"
foo bar spam

또는 문자열 형식을 더 잘 사용하십시오 .

print "If there was a birth every 7 seconds, there would be: {} births".format(births)

문자열 형식화는 훨씬 강력하며 패딩, 채우기, 정렬, 너비, 정밀도 설정 등과 같은 다른 작업도 수행 할 수 있습니다.

>>> print "{:d} {:03d} {:>20f}".format(1,2,1.1)
1 002             1.100000
  ^^^
  0's padded to 2

데모:

>>> births = 4
>>> print "If there was a birth every 7 seconds, there would be: ",births,"births"
If there was a birth every 7 seconds, there would be:  4 births

#formatting
>>> print "If there was a birth every 7 seconds, there would be: {} births".format(births)
If there was a birth every 7 seconds, there would be: 4 births

이 중 어느 것도 Pyton 3에서 작동하지 않습니다. Gagan Agrawal의 답변을 찬성하십시오.
Axel Bregnsbo

58

두개 더

첫번째

 >>>births = str(5)
 >>>print "there are " + births + " births."
 there are 5 births.

문자열을 추가 할 때 연결됩니다.

두 번째

또한 format문자열 의 (Python 2.6 이상) 방법이 표준 방법 일 것입니다.

>>> births = str(5)
>>>
>>> print "there are {} births.".format(births)
there are 5 births.

format방법은 목록과 함께 사용할 수 있습니다

>>> format_list = ['five','three']
>>> print "there are {} births and {} deaths".format(*format_list) #unpack the list
there are five births and three deaths

또는 사전

>>> format_dictionary = {'births': 'five', 'deaths': 'three'}
>>> print "there are {births} births, and {deaths} deaths".format(**format_dictionary) #yup, unpack the dictionary
there are five births, and three deaths

52

파이썬은 매우 다양한 언어입니다. 다른 방법으로 변수를 인쇄 할 수 있습니다. 아래 4 가지 방법을 나열했습니다. 편의에 따라 사용할 수 있습니다.

예:

a=1
b='ball'

방법 1 :

print('I have %d %s' %(a,b))

방법 2 :

print('I have',a,b)

방법 3 :

print('I have {} {}'.format(a,b))

방법 4 :

print('I have ' + str(a) +' ' +b)

방법 5 :

  print( f'I have {a} {b}')

결과는 다음과 같습니다.

I have 1 ball

결정은 프로그래밍 스타일과 관련이 있습니다. M2는 절차 적 프로그래밍이고 M3은 객체 지향 프로그래밍입니다. M5의 키워드는 문자열 리터럴 형식 입니다. 필요에 따라 M1 및 M4 같은 문자열 연산 여기 그렇지 인 표기 (사전 및 튜플 M1, M4 예 ASCII 아트 및 다른 출력 포맷)
파이썬

29

파이썬 3으로 작업하고 싶다면 매우 간단합니다.

print("If there was a birth every 7 second, there would be %d births." % (births))

16

파이썬 3.6부터 리터럴 문자열 보간을 사용할 수 있습니다 .

births = 5.25487
>>> print(f'If there was a birth every 7 seconds, there would be: {births:.2f} births')
If there was a birth every 7 seconds, there would be: 5.25 births

1
복잡한 문자열을 좋아합니다.
Jason LeMonier

14

f-string 또는 .format () 메소드 를 사용할 수 있습니다

F- 스트링 사용

print(f'If there was a birth every 7 seconds, there would be: {births} births')

.format () 사용

print("If there was a birth every 7 seconds, there would be: {births} births".format(births=births))

12

formatstring을 사용할 수 있습니다.

print "There are %d births" % (births,)

또는이 간단한 경우 :

print "There are ", births, "births"

2
그러나 두 번째 방법을 사용하는 경우 문자열이 아닌 튜플이므로주의하십시오.
TehTris

5

python 3.6 또는 최신 버전을 사용하는 경우 f-string이 가장 쉽고 쉽습니다.

print(f"{your_varaible_name}")

3

먼저 변수를 만드십시오. 예를 들어 : D = 1입니다. 그런 다음 수행하지만 문자열을 원하는 것으로 바꾸십시오.

D = 1
print("Here is a number!:",D)

3

현재 파이썬 버전에서는 다음과 같이 괄호를 사용해야합니다.

print ("If there was a birth every 7 seconds", X)

2

문자열 형식 사용

print("If there was a birth every 7 seconds, there would be: {} births".format(births))
 # Will replace "{}" with births

장난감 프로젝트를 사용하는 경우 :

print('If there was a birth every 7 seconds, there would be:' births'births) 

또는

print('If there was a birth every 7 seconds, there would be: %d births' %(births))
# Will replace %d with births

1

문자열 형식 을 사용 하여 다음을 수행 할 수 있습니다 .

print "If there was a birth every 7 seconds, there would be: %d births" % births

또는 print여러 인수 를 줄 수 있으며 공백으로 자동으로 구분됩니다.

print "If there was a birth every 7 seconds, there would be:", births, "births"

답변 앰버 감사합니다. % 기호 다음에 'd'가 무엇을하는지 설명 할 수 있습니까? 감사합니다
Bob Uni

2
%d"포맷 값을 정수로"를 의미합니다. 마찬가지로 %s"문자열 %f형식의 값"이고 "부동 소수점 숫자의 형식 값"입니다. 이것들과 그 이상은 내 대답에 링크 된 파이썬 매뉴얼 부분에 문서화되어 있습니다.
Amber

1

스크립트를 .py 파일에 복사하여 붙여 넣었습니다. Python 2.7.10에서 그대로 실행했으며 동일한 구문 오류가 발생했습니다. 또한 Python 3.5에서 스크립트를 시도하고 다음과 같은 출력을 받았습니다.

File "print_strings_on_same_line.py", line 16
print fiveYears
              ^
SyntaxError: Missing parentheses in call to 'print'

그런 다음 다음과 같이 출생 수를 인쇄하는 마지막 줄을 수정했습니다.

currentPop = 312032486
oneYear = 365
hours = 24
minutes = 60
seconds = 60

# seconds in a single day
secondsInDay = hours * minutes * seconds

# seconds in a year
secondsInYear = secondsInDay * oneYear

fiveYears = secondsInYear * 5

#Seconds in 5 years
print fiveYears

# fiveYears in seconds, divided by 7 seconds
births = fiveYears // 7

print "If there was a birth every 7 seconds, there would be: " + str(births) + " births"

출력은 (Python 2.7.10)입니다.

157680000
If there was a birth every 7 seconds, there would be: 22525714 births

이게 도움이 되길 바란다.


1

사이에, (쉼표)를 사용하십시오.

이해를 돕기 위해이 코드를 참조하십시오.

# Weight converter pounds to kg

weight_lbs = input("Enter your weight in pounds: ")

weight_kg = 0.45 * int(weight_lbs)

print("You are ", weight_kg, " kg")

0

약간 다릅니다 : Python 3을 사용 하고 같은 줄에 여러 변수를 인쇄 하십시오.

print("~~Create new DB:",argv[5],"; with user:",argv[3],"; and Password:",argv[4]," ~~")

0

피톤 3

형식 옵션을 사용하는 것이 좋습니다

user_name=input("Enter your name : )

points = 10

print ("Hello, {} your point is {} : ".format(user_name,points)

또는 입력을 문자열로 선언하고 사용하십시오.

user_name=str(input("Enter your name : ))

points = 10

print("Hello, "+user_name+" your point is " +str(points))

1
문자열 "Enter your name :미스 닫는 인용 부호
barbsan

print ("Hello, {} your point is {} : ".format(user_name,points) 닫는 괄호가 없습니다.
Hillsie

0

다음과 같이 문자열과 변수 사이에 쉼표를 사용하는 경우 :

print "If there was a birth every 7 seconds, there would be: ", births, "births"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.