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"
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
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
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))
Vous pouvez soit utiliser un formatstring:
print "There are %d births" % (births,)
ou dans ce cas simple:
print "There are ", births, "births"
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
Sur une version actuelle de Python, vous devez utiliser des parenthèses, comme ceci:
print ("If there was a birth every 7 seconds", X)
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)
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
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.
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"
Si vous utilisez python 3.6 ou plus récent, f-string est le meilleur et le plus simple.
print(f"{your_varaible_name}")
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)
print('If there was a birth every 7 seconds, there would be: %d births' %(births))
# Will replace %d with births
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]," ~~")
Il suffit d'utiliser (virgule) entre les deux.
Voir ce code pour une meilleure compréhension:
weight_lbs = input ("Entrez votre poids en livres:")
weight_kg = 0.45 * int (weight_lbs)
print ("Vous êtes", weight_kg, "kg")
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))
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))