Как я могу напечатать переменную и строку на одной строке в Python?


Я использую python, чтобы выяснить, сколько детей родится через 5 лет, если ребенок родился каждые 7 секунд. Проблема в моей последней строке. Как заставить переменную работать, когда я печатаю текст по обе стороны от нее?

вот мой код:

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"
11 91

11 ответов:

использовать , для разделения строк и переменных при печати:

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

Demo:

>>> 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

два

первый

 >>>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

Если вы хотите работать с Python 3, это очень просто:

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

вы можете использовать formatstring:

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

или в этом простом случае:

print "There are ", births, "births"

в текущей версии python вы должны использовать скобки, например:

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

сначала вы должны сделать переменную: например: D = 1. Затем сделайте это, но замените строку на все, что вы хотите:

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

можно использовать строка форматирования для этого:

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"

Я скопировал и вставил ваш скрипт в файл .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

Я надеюсь, что это помогает.

Python-это универсальный язык. Вы можете печатать переменные разными способами. Я перечислил ниже 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)

вывод:

I have 1 ball

использовать строка форматирования

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

начиная с python 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