Wie kann ich in Python Variablen und Zeichenfolgen in derselben Zeile drucken?

176

Ich benutze Python, um herauszufinden, wie viele Kinder in 5 Jahren geboren würden, wenn alle 7 Sekunden ein Kind geboren würde. Das Problem ist in meiner letzten Zeile. Wie kann ich eine Variable zum Laufen bringen, wenn ich Text auf beiden Seiten drucke?

Hier ist mein 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"
Bob Uni
quelle

Antworten:

261

Verwenden Sie ,diese Option , um Zeichenfolgen und Variablen beim Drucken zu trennen:

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

, In der Print-Anweisung werden die Elemente durch ein Leerzeichen getrennt:

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

oder besser String-Formatierung verwenden :

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

Die Formatierung von Zeichenfolgen ist viel leistungsfähiger und ermöglicht Ihnen auch einige andere Aufgaben, z. B. Auffüllen, Füllen, Ausrichten, Breite, Einstellen der Genauigkeit usw.

>>> 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
Ashwini Chaudhary
quelle
Keine dieser Arbeiten funktioniert in Pyton 3. Bitte stimmen Sie der Antwort von Gagan Agrawal zu.
Axel Bregnsbo
58

zwei mehr

Der erste

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

Beim Hinzufügen von Zeichenfolgen werden sie verkettet.

Der zweite

Auch die format(Python 2.6 und neuere) Methode der Zeichenfolgen ist wahrscheinlich die Standardmethode:

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

Diese formatMethode kann auch mit Listen verwendet werden

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

oder Wörterbücher

>>> 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
TehTris
quelle
51

Python ist eine sehr vielseitige Sprache. Sie können Variablen mit verschiedenen Methoden drucken. Ich habe unten 4 Methoden aufgelistet. Sie können sie nach Ihren Wünschen verwenden.

Beispiel:

a=1
b='ball'

Methode 1:

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

Methode 2:

print('I have',a,b)

Methode 3:

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

Methode 4:

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

Methode 5:

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

Ausgabe wäre:

I have 1 ball
Gagan Agrawal
quelle
29

Wenn Sie mit Python 3 arbeiten möchten, ist dies ganz einfach:

print("If there was a birth every 7 second, there would be %d births." % (births))
Python Coding Trainer
quelle
16

Ab Python 3.6 können Sie die Literal String Interpolation verwenden.

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
PabTorre
quelle
1
Mein Favorit für komplexe Saiten.
Jason LeMonier
14

Sie können entweder die Methoden f-string oder .format () verwenden

F-String verwenden

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

Verwenden von .format ()

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

Sie können entweder eine Formatzeichenfolge verwenden:

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

oder in diesem einfachen Fall:

print "There are ", births, "births"
Enpenax
quelle
2
Seien Sie jedoch vorsichtig, wenn Sie diesen zweiten Weg verwenden, da dies ein Tupel und kein String ist.
TehTris
5

Wenn Sie Python 3.6 oder die neueste Version verwenden, ist F-String die beste und einfachste

print(f"{your_varaible_name}")
Csmasterme
quelle
3

Sie würden zuerst eine Variable erstellen: zum Beispiel: D = 1. Dann tun Sie dies, aber ersetzen Sie die Zeichenfolge durch das, was Sie wollen:

D = 1
print("Here is a number!:",D)
Pythonbites-Programmierung
quelle
3

In einer aktuellen Python-Version müssen Sie folgende Klammern verwenden:

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

Verwenden Sie die Zeichenfolgenformatierung

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

Wenn Sie ein Spielzeugprojekt durchführen, verwenden Sie:

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

oder

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

Sie können dazu die Zeichenfolgenformatierung verwenden:

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

oder Sie können printmehrere Argumente angeben, die automatisch durch ein Leerzeichen getrennt werden:

print "If there was a birth every 7 seconds, there would be:", births, "births"
Bernstein
quelle
Danke für die Antwort Amber. Können Sie erklären, was das 'd' nach dem% -Symbol tut? danke
Bob Uni
2
%dbedeutet "Formatwert als Ganzzahl". In ähnlicher Weise %swäre "Formatwert als Zeichenfolge" und %f"Formatwert als Gleitkommazahl". Diese und weitere Informationen sind in dem Teil des Python-Handbuchs dokumentiert, auf den ich in meiner Antwort verwiesen habe.
Amber
1

Ich habe Ihr Skript kopiert und in eine .py-Datei eingefügt. Ich habe es so wie es ist mit Python 2.7.10 ausgeführt und den gleichen Syntaxfehler erhalten. Ich habe das Skript auch in Python 3.5 ausprobiert und die folgende Ausgabe erhalten:

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

Dann habe ich die letzte Zeile, in der die Anzahl der Geburten gedruckt wird, wie folgt geändert:

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"

Die Ausgabe war (Python 2.7.10):

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

Ich hoffe das hilft.

Debug255
quelle
1

Verwenden Sie einfach (Komma) dazwischen.

Weitere Informationen finden Sie in diesem Code:

# Weight converter pounds to kg

weight_lbs = input("Enter your weight in pounds: ")

weight_kg = 0.45 * int(weight_lbs)

print("You are ", weight_kg, " kg")
Faisal Ahmed
quelle
0

Etwas anders: Verwenden Sie Python 3 und drucken Sie mehrere Variablen in derselben Zeile:

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

PYTHON 3

Verwenden Sie besser die Formatierungsoption

user_name=input("Enter your name : )

points = 10

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

oder deklarieren Sie die Eingabe als Zeichenfolge und verwenden Sie

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

points = 10

print("Hello, "+user_name+" your point is " +str(points))
Bromount
quelle
1
String "Enter your name :verfehlt das schließende Anführungszeichen
Barbansan
print ("Hello, {} your point is {} : ".format(user_name,points) fehlende schließende Klammer.
Hillsie
0

Wenn Sie ein Komma zwischen den Zeichenfolgen und der Variablen verwenden, gehen Sie wie folgt vor:

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

quelle