web-dev-qa-db-fra.com

Comment puis-je imprimer des variables et des chaînes sur la même ligne en Python?

J'utilise python pour déterminer le nombre d'enfants qui naîtront dans 5 ans si un enfant est né toutes les 7 secondes. Le problème est sur ma dernière ligne. Comment faire fonctionner une variable lorsque j'imprime du texte de part et d'autre? 

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"
110
Bob Uni

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

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

, dans print statement sépare les éléments d'un seul espace:

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

ou mieux utilisez formatage de chaîne :

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 d’effectuer d’autres tâches telles que: le remplissage, le remplissage, l’alignement, la largeur, la précision de la définition, etc.

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

Démo:

>>> 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
172
Ashwini Chaudhary

deux de plus

Le premier

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

Lors de l'ajout de chaînes, ils se concaténent. 

Le deuxième

De même, la méthode format (Python 2.6 et plus récente) de chaînes est probablement la méthode standard:

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

Cette méthode format peut également être utilisée avec des listes

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

ou dictionnaires

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

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

Vous pouvez soit utiliser un formatstring:

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

ou dans ce cas simple:

print "There are ", births, "births"
11
enpenax

Python est un langage très polyvalent. Vous pouvez imprimer des variables par différentes méthodes. J'ai énuméré ci-dessous 4 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)

La sortie serait:

I have 1 ball
8
Gagan Agrawal

Sur une version actuelle de Python, vous devez utiliser des parenthèses, comme ceci:

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

Vous feriez d’abord une variable: par exemple: D = 1. Ensuite, faites ceci mais remplacez la chaîne par ce que vous voulez

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

Depuis python 3.6, vous pouvez utiliser Interpolation de chaîne littérale.

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

J'ai copié et collé votre script dans un fichier .py. Je l'ai exécuté tel quel avec Python 2.7.10 et j'ai reçu la même erreur de syntaxe. J'ai aussi essayé le script en Python 3.5 et reçu le résultat suivant:

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

Ensuite, j'ai modifié la dernière ligne où est imprimé le nombre de naissances comme suit:

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"

Le résultat était (Python 2.7.10):

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

J'espère que ça aide.

1
Debug255

Vous pouvez utiliser formatage de chaîne pour faire ceci:

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

ou vous pouvez donner print plusieurs arguments, et cela les séparera automatiquement par un espace:

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

Si vous utilisez python 3.6 ou plus récent, f-string est le meilleur et le plus simple.

print(f"{your_varaible_name}")
1
Csmasterme

utiliser Formatage de chaîne

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

si vous faites un projet de jouet, utilisez: 

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

ou

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

Légèrement différent: Utiliser Python 3 et imprimer plusieurs variables sur la même ligne:

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

Il suffit d'utiliser (virgule) entre les deux.

Voir ce code pour une meilleure compréhension:

Convertisseur de poids livres en kg

weight_lbs = input ("Entrez votre poids en livres:")

weight_kg = 0.45 * int (weight_lbs)

print ("Vous êtes", weight_kg, "kg")

0
Faisal Ahmed Sourav

PYTHON

Mieux vaut utiliser l'option de formatage

user_name=input("Enter your name : )

points = 10

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

ou déclarer l'entrée en tant que chaîne et utiliser

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

points = 10

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

Vous pouvez utiliser les méthodes f-string ou .format ()

Utilisation de f-string

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

Utilisation de .formt ()

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