247 votes

Comment puis-je imprimer une variable et une chaîne sur la même ligne en Python ?

J'utilise Python pour calculer le nombre d'enfants qui naîtraient en 5 ans si un enfant naissait toutes les 7 secondes. Le problème se situe sur ma dernière ligne. Comment faire pour qu'une variable fonctionne lorsque j'imprime du texte de part et d'autre de celle-ci ?

Voici mon code :

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"

365voto

Ashwini Chaudhary Points 94431

Utilisez , pour séparer les chaînes de caractères et les variables lors de l'impression :

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

, dans la fonction d'impression sépare les éléments par un seul espace :

>>> print("foo", "bar", "spam")
foo bar spam

ou mieux utiliser formatage des chaînes :

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

Le formatage des chaînes est beaucoup plus puissant et vous permet de faire d'autres choses, comme le remplissage, l'alignement, la largeur, la précision, etc.

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

Démonstration :

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

149voto

Gagan Agrawal Points 1271

Python est un langage très polyvalent. Vous pouvez imprimer des variables par différentes méthodes. J'ai listé ci-dessous cinq méthodes. Vous pouvez les utiliser selon votre convenance.

Exemple :

a = 1
b = 'ball'

Méthode 1 :

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

Méthode 2 :

print('I have', a, b)

Méthode 3 :

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

Méthode 4 :

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

Méthode 5 :

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

La sortie serait :

I have 1 ball

68voto

TehTris Points 750

Deux autres

Le premier

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

Lors de l'addition de chaînes de caractères, elles sont concaténées.

La deuxième

De même, le format (Python 2.6 et plus récent) est probablement la méthode standard pour les chaînes de caractères :

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

Ce site format La méthode peut également être utilisée avec des listes

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

ou des dictionnaires

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

29voto

Si vous voulez travailler avec python 3, c'est très simple :

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

19voto

ms8277 Points 191

Vous pouvez soit utiliser le f-chaîne o .format() méthodes

Utilisation de f-string

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

Utilisation de .format()

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X