Python'da kalın metinleri nasıl yazdırabilirim?
Örneğin:
print "hello"
“Merhaba” metninin kalın olarak gösterilmesi için ne yapmalıyım?
Python'da kalın metinleri nasıl yazdırabilirim?
Örneğin:
print "hello"
“Merhaba” metninin kalın olarak gösterilmesi için ne yapmalıyım?
Yanıtlar:
class color:
PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'
print(color.BOLD + 'Hello World !' + color.END)
Bunu kullan:
print '\033[1m' + 'Hello'
Ve normale dönmek için:
print '\033[0m'
Bu sayfa , renk ve yazı tipi ağırlıklarında yazdırmak için iyi bir referanstır. 'Grafik modunu ayarla' başlıklı bölüme gidin:
Ve bunun tüm işletim sistemlerinde çalışmadığını, ancak herhangi bir modüle ihtiyacınız olmadığını unutmayın.
Bunun için termcolor kullanabilirsiniz:
sudo pip install termcolor
Renkli bir kalın yazdırmak için:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
Daha fazla bilgi için PyPi'deki termcolor'a bakın .
simple-colors benzer sözdizimine sahip başka bir pakettir:
from simple_colors import *
print(green('Hello', ['bold'])
Coloramadaki eşdeğer olabilir Style.BRIGHT.
Düz bilgisayar programlamasında "kalın metin yazdırma" diye bir şey yoktur. Biraz yedekleyelim ve metninizin bir bayt dizisi olduğunu ve baytların sadece bit demetleri olduğunu anlayalım. Bilgisayara, işte "merhaba" metniniz, ikili .
0110100001100101011011000110110001101111
Her biri veya sıfır biraz. Her sekiz bit bir bayttır. Her bayt, Python 2.x'de olduğu gibi bir dizede, bir harf / sayı / noktalama öğesi (karakter olarak adlandırılır). Yani mesela:
01101000 01100101 01101100 01101100 01101111
h e l l o
Bilgisayar bu bitleri harflere çevirir, ancak geleneksel bir dizede (ASCII dizesi olarak adlandırılır), kalın metni gösterecek hiçbir şey yoktur. Biraz farklı çalışan bir Unicode dizgisinde, bilgisayar Çince olanlar gibi uluslararası dil karakterlerini destekleyebilir, ancak yine, bazı metinlerin kalın ve bazı metinlerin olmadığını söyleyecek hiçbir şey yoktur. Ayrıca açık yazı tipi, metin boyutu vb. Yoktur.
HTML yazdırılması durumunda, hala bir dize çıkarıyorsunuzdur. Ancak bu dizeyi okuyan bilgisayar programı (bir web tarayıcısı), harf dizenizi ekrandaki piksele dönüştürdüğünde metni this is <b>bold</b>"bu kalın " gibi yorumlayacak şekilde programlanmıştır . Tüm metinler WYSIWYG olsaydı, HTML'ye olan gereksinim hafifletilirdi - sadece editörünüzdeki metni seçip HTML yazmak yerine kalın yazardınız.
Diğer programlar farklı sistemler kullanır - birçok yanıt terminallerde kalın metin yazdırmak için tamamen farklı bir sistemi açıklar. Yapmak istediğiniz şeyi nasıl yapacağınızı öğrendiğinize sevindim, ancak bir noktada dizelerin ve hafızanın nasıl çalıştığını anlamak isteyeceksiniz.
Colorama göz atın . Kalın harflerle yardımcı olması gerekmez ... ancak hem Windows hem de Linux'ta renklendirilmiş çıktılar yapabilir ve parlaklığı kontrol edebilirsiniz:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Python'da metni biçimlendirmek için çok yararlı bir modül vardır (kalın, alt çizgi, renkler ..). cursesLib kullanır, ancak kullanımı çok basittir.
Bir örnek:
from terminal import render
print render('%(BG_YELLOW)s%(RED)s%(BOLD)sHey this is a test%(NORMAL)s')
print render('%(BG_GREEN)s%(RED)s%(UNDERLINE)sAnother test%(NORMAL)s')
Bunu biraz daha pitonik hale getirmek için colors.py adında basit bir modül yazdım :
import colors
with colors.pretty_output(colors.BOLD, colors.FG_RED) as out:
out.write("This is a bold red text")
with colors.pretty_output(colors.BG_GREEN) as out:
out.write("This output have a green background but you " +
colors.BOLD + colors.FG_RED + "can" + colors.END + " mix styles")
ImportError: No module named terminal ImportError: No module named render Aslında bu "terminal" modülü hakkında bulabildiğim tek sitedir. Lütfen detaylandırın.
terminalmodülü içeriyordu , ancak sayfayı yeniden yönlendiriyorlar. İşte google tarafından önbelleğe alınan kod .
print '\033[1m Your Name \033[0m'
\ 033 [1m, terminalde kalın harflerle yazılmış unicode \ 033 [0m, düzenlenen metni sonlandırmak ve varsayılan metin formatını geri yüklemek için unicode !!!!!
\ 033 [0m] kullanmazsanız, terminalin yaklaşan tüm metinleri kalın olur !!!!!!!!!
termcolorModülü takın
sudo pip install termcolor
ve sonra renkli metin için deneyin
from termcolor import colored
print colored('Hello', 'green')
veya kalın metin için bu:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Python 3, alternatif olarak kullanabileceğiniz cprintbir damla-in yerine yerleşik gelince printrenkler için isteğe bağlı ikinci parametre veya birlikte attrskalın (örneğin ve diğer özellikleri için parametre underlinenormale adında ek olarak) printgibi argümanlar fileveya end.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Tam açıklama, bu cevap büyük ölçüde Olu Smith'in cevabına dayanıyor ve bu sayfadaki gürültüyü önemli ölçüde azaltacak bir düzenleme olarak tasarlandı , ancak bazı yorumcuların bir düzenlemenin ne olması gerektiği konusunda yanlış yönlendirilmiş konsepti nedeniyle, şimdi zorlandım bunu ayrı bir cevap haline getirmek.
Gerçek bir baskı terminalinde gerçekten "baskı" demek istediğinizi varsayarsak :
>>> text = 'foo bar\r\noof\trab\r\n'
>>> ''.join(s if i & 1 else (s + '\b' * len(s)) * 2 + s
... for i, s in enumerate(re.split(r'(\s+)', text)))
'foo\x08\x08\x08foo\x08\x08\x08foo bar\x08\x08\x08bar\x08\x08\x08bar\r\noof\x08\
x08\x08oof\x08\x08\x08oof\trab\x08\x08\x08rab\x08\x08\x08rab\r\n'
Sadece gönderin stdout.
Python 3'te colorama kullanabilirsiniz - simple_colors: (Basit Renkler sayfası: https://pypi.org/project/simple-colors/ - 'Kullanım' başlığına gidin.) Aşağıdakileri yapmadan önce emin olun pip install simple_colours.
from simple_colors import *
print(green('hello', 'bold'))
pip install simple_colors