Как распечатать переменную и строку в одной строке в 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"
Ответы
Ответ 1
Используйте ,
для разделения строк и переменных во время печати:
print "If there was a birth every 7 seconds, there would be: ",births,"births"
,
в заявлении печати разделяет элементы на одно пространство:
>>> 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 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
Ответ 2
еще два
Первый
>>>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
Ответ 3
Если вы хотите работать с python 3, это очень просто:
print("If there was a birth every 7 second, there would be %d births." % (births))
Ответ 4
Вы можете использовать формат string:
print "There are %d births" % (births,)
или в этом простом случае:
print "There are ", births, "births"
Ответ 5
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
Ответ 6
Начиная с Python 3.6 вы можете использовать Literal String Interpolation.
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
Ответ 7
В текущей версии Python вы должны использовать круглые скобки, например, так:
print ("If there was a birth every 7 seconds", X)
Ответ 8
Сначала вы должны сделать переменную: например: D = 1. Затем сделайте это, но замените строку тем, что вы хотите:
D = 1
print("Here is a number!:",D)
Ответ 9
Вы можете использовать методы f-string или .format()
Используя f-строку
print(f'If there was a birth every 7 seconds, there would be: {births} births')
Использование .formt()
print("If there was a birth every 7 seconds, there would be: {births} births".format(births=births))
Ответ 10
Вы можете использовать форматирование строк для этого:
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"
Ответ 11
Я скопировал и вставил ваш script в .py файл. Я запустил его как есть с Python 2.7.10 и получил ту же синтаксическую ошибку. Я также попробовал script в 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
Надеюсь, это поможет.
Ответ 12
использовать форматирование строки
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
Ответ 13
Если вы используете Python 3.6 или более позднюю версию, f-string - лучший и простой
print(f"{your_varaible_name}")
Ответ 14
Немного по-другому: используя Python 3 и напечатайте несколько переменных в одной строке:
print("~~Create new DB:",argv[5],"; with user:",argv[3],"; and Password:",argv[4]," ~~")
Ответ 15
ПИТОН 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))
Ответ 16
Просто используйте, (запятая) между ними.
Смотрите этот код для лучшего понимания:
Вес преобразователя фунтов в кг
weight_lbs = input ("Введите вес в фунтах:")
weight_kg = 0,45 * int (weight_lbs)
печать ("Ты есть", weight_kg, "kg")