Szukaj…


Podstawy drukowania

W Pythonie 3 i nowszych print jest funkcją, a nie słowem kluczowym.

print('hello world!')
# out: hello world!

foo = 1
bar = 'bar'
baz = 3.14

print(foo)    
# out: 1
print(bar)    
# out: bar
print(baz)
# out: 3.14

Możesz również przekazać szereg parametrów do print :

print(foo, bar, baz)
# out: 1 bar 3.14

Innym sposobem print wielu parametrów jest użycie znaku +

print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14

Należy jednak zachować ostrożność przy używaniu + do drukowania wielu parametrów, ponieważ typ parametrów powinien być taki sam. Próba wydrukowania powyższego przykładu bez rzutowania na string spowoduje najpierw błąd, ponieważ spróbuje on dodać liczbę 1 do "bar" i dodać ją do liczby 3.14 .

# Wrong:
# type:int  str  float
print(foo + bar + baz)
# will result in an error

Wynika to z tego, że treść print zostanie najpierw oceniona:

print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]

W przeciwnym razie użycie znaku + może być bardzo pomocne dla użytkownika do odczytania wyniku zmiennych W poniższym przykładzie wynik jest bardzo łatwy do odczytania!

Poniższy skrypt to pokazuje

import random 
#telling python to include a function to create random numbers
randnum = random.randint(0, 12) 
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))

Można zapobiec print funkcję automatyczne drukowanie nowej linii za pomocą end parametr:

print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?

Jeśli chcesz zapisać do pliku, możesz przekazać go jako file parametrów:

with open('my_file.txt', 'w+') as my_file:
    print("this goes to the file!", file=my_file)

to idzie do pliku!

Parametry drukowania

Możesz zrobić coś więcej niż tylko wydrukować tekst. print ma również kilka parametrów, które mogą ci pomóc.

sep argumentów: umieść ciąg między argumentami.

Czy musisz wydrukować listę słów oddzielonych przecinkiem lub innym ciągiem?

>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>

end argumentu: użyj na end czegoś innego niż nowy wiersz

Bez argumentu end wszystkie funkcje print() zapisują wiersz, a następnie przechodzą na początek następnego wiersza. Możesz to zmienić, aby nic nie robić (użyj pustego ciągu „”) lub podwójnego odstępu między akapitami, używając dwóch nowych linii.

>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1

paragraph2
>>>

file argumentu: wyślij dane wyjściowe do innego miejsca niż sys.stdout.

Teraz możesz wysłać swój tekst na standardowe wyjście, do pliku lub do StringIO i nie przejmuj się tym, co otrzymasz. Jeśli kwaknie jak plik, działa jak plik.

>>> def sendit(out, *values, sep=' ', end='\n'):
...     print(*values, sep=sep, end=end, file=out)
... 
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples    bannas    cherries
>>> with open("delete-me.txt", "w+") as f:
...    sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
... 
>>> with open("delete-me.txt", "rt") as f:
...     print(f.read())
... 
apples bannas cherries

>>>

Istnieje czwarty parametr flush który wymusi opróżnienie strumienia.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow