Как я могу напечатать переменную и строку на одной строке в 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 ответов:
использовать
,
для разделения строк и переменных при печати: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 "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