2016-12-19 4 views
0
print ("Hello" , "World") 

Der Ausgang ist: ('Hallo', 'Welt'). Warum ist es nicht nur Hello World? (Ich bin sehr neu in Python vor 3 Wochen gestartet lernen..)Bitte erläutern Sie diesen Ausgang

+0

Sie drucken ein Tupel. – DejaVuSansMono

+0

print ("Hallo", "Welt") wird "Hallo, Welt" drucken. Aber Drucken ("Hallo", "Welt") druckt tatsächlich ein Tüpfelchen. '('Hallo', 'Welt')' –

+2

@VikashSingh Nein. Ganz und gar nicht. –

Antwort

2

In Python 2.7 haben wir

Ausgang:

('hello', 'world') 
('hello', 'world') 
hello , world 

Drucken ist eine Aussage. Das übergibt den Parameter einfach so. Wenn wir also ein Objekt innerhalb der Klammer haben, funktioniert es gut. Wenn sich jedoch mehrere Objekte in der Klammer befinden, werden sie als Tupelobjekt übergeben. Und ein Tupel wird wie ein Tupel gedruckt.

Grundsätzlich

print('a', 'b') 

ist die gleiche wie

a = ('a', 'b') 
print(a) 
# or 
print a 

# output : ('a', 'b') 

Und das ist, was Sie erwarten würden.

Auf der anderen Seite in Python 3 Print ist eine Funktion. Du musst es also anrufen. Im Grunde jetzt 'Hallo', 'Welt' ist kein Tupel. Vielmehr werden mehrere Argumente separat an die Druckfunktion übergeben.

print('hello', 'world') 

Ausgang:

hello world 

Um den gleichen Effekt in 3,5 zu erreichen wir haben diese

print(('hello', 'world')) 

Ausgang zu tun:

('hello', 'world') 

Sie mehr lesen kann hier: http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html

+0

Wenn Sie wirklich eine vollständige Antwort auf eine grundlegende Frage geben wollen, haben Sie zumindest den Anstand, den Unterschied zwischen einer Druckanweisung und einer Druckfunktion zu erklären. –

-3

Da Sie versuchen, in Python 2.7 zu drucken, pythont, dass Sie es bitten, ein Tupel zu drucken. Zur Ausgabe tun nur Hallo Welt in Python 2.7, können Sie so etwas wie:

print "Hello", "World" # without the parentheses! 

Oder

print "%s %s" % ("Hello", "World") 

Oder sogar

from __future__ import print_function 
print("Hello", "World") 

Wenn Sie waren oder werden mit Python 3 statt Python 2, Sie haben die Druckfunktion bereits ohne den speziellen Import verfügbar. Wenn Sie mehr über Tupel lesen möchten, würde ich empfehlen, dass Sie Tupel in diesem link betrachten

+0

Versuchen Sie, einen Code zu veröffentlichen, der _actually_ für OP-Fragen funktionieren würde. Dann wäre die Antwort wertvoller. – Bek

4

Dies ist eine der wenigen nicht rückwärtskompatible Änderungen zwischen Python3 und Python2.

In Python2 war print eine Aussage. In Python3 wurde es in einen Funktionsaufruf umgewandelt.in Python-Anweisungen sind Dinge wie diese:

x = 3 
import this 
from math import pi 

Funktionsaufrufe wie folgt aussehen:

some_list.sort() 
counter.most_common() 

Die Klammer () sind, was bedeutet, "das Ding nennen".

Wenn Sie lernen Python Sie should learn with Python3, aber wenn Sie nicht installieren können, oder Sie wollen nicht aus irgendeinem Grund, können Sie dieses Verhalten in Python2 mit dem __future__ Import erhalten:

Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from __future__ import print_function 
>>> print('the future', 'looks better') 
the future looks better 

Wenn es in einem Python-Skript ist, muss es die erste Nicht-Kommentar-Zeile in der Datei sein, aber im repl (interaktiver Interpreter, die Sache mit der Eingabeaufforderung >>>) können Sie den Import jederzeit durchführen.

Verwandte Themen