Terminal mana yang Anda gunakan? Apakah Anda menggunakan Unix atau Windows?
Sjoerd
Saya menggunakan safari. Baru tahu saya bisa menggunakan tag HTML dengan python.
Jia-Luo
Jawaban:
379
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)
Jika saya harus menebak seseorang menurunkan ini karena tidak menjawab pertanyaan sebenarnya bagaimana cara mencetak sesuatu dengan huruf tebal.
Christian
Hak Anda, sudah ada pembaruan. Maaf soal itu kawan.
Olu Smith
22
Dalam pemrograman komputer langsung, tidak ada yang namanya "mencetak teks tebal". Mari kita buat cadangan sedikit dan memahami bahwa teks Anda adalah serangkaian byte dan byte hanya kumpulan bit. Ke komputer, inilah teks "halo" Anda, dalam bentuk biner .
0110100001100101011011000110110001101111
Masing-masing atau nol sedikit. Setiap delapan bit adalah satu byte. Setiap byte, dalam string seperti itu di Python 2.x, satu huruf / angka / tanda baca item (disebut karakter). Jadi misalnya:
0110100001100101011011000110110001101111
h e l l o
Komputer menerjemahkan bit-bit itu menjadi huruf, tetapi dalam string tradisional (disebut string ASCII), tidak ada yang menunjukkan teks tebal. Dalam string Unicode, yang bekerja sedikit berbeda, komputer dapat mendukung karakter bahasa internasional, seperti karakter Cina, tetapi sekali lagi, tidak ada yang mengatakan bahwa beberapa teks tebal dan beberapa teks tidak. Juga tidak ada font, ukuran teks, dll.
Dalam hal mencetak HTML, Anda masih mengeluarkan string. Tetapi program komputer yang membaca string itu (browser web) diprogram untuk menafsirkan teks seperti this is <b>bold</b>"ini tebal " ketika itu mengubah string huruf Anda menjadi piksel di layar. Jika semua teks adalah WYSIWYG, kebutuhan untuk HTML itu sendiri akan dikurangi - Anda hanya akan memilih teks di editor Anda dan cetak tebal alih-alih mengetikkan HTML.
Program lain menggunakan sistem yang berbeda - banyak jawaban menjelaskan sistem yang sama sekali berbeda untuk mencetak teks tebal pada terminal. Saya senang Anda mengetahui cara melakukan apa yang ingin Anda lakukan, tetapi pada titik tertentu, Anda akan ingin memahami cara kerja string dan memori.
Tidak memuaskan seperti jawaban ini kelihatannya, itu mungkin salah satu yang paling tepat menjawab pertanyaan yang diajukan . Itu sama sekali bukan pertanyaan Python, melainkan pertanyaan apa pun yang sedang dilakukan .
John Y
8
Masalahnya, semua orang yang tertarik pada jawaban untuk pertanyaan ini memahami biner dan bagaimana ia digunakan untuk merepresentasikan string. Kami tertarik pada cara menggunakan python untuk membuat teks terlihat tebal, yang dijawab di atas. Jawaban ini terlalu berlebihan.
Trevor
16
Ini tergantung jika Anda menggunakan linux / unix:
>>> start ="\033[1m">>> end ="\033[0;0m">>>print"The"+ start +"text"+ end +" is bold."The text is bold.
Lihat colorama . Itu tidak selalu membantu dengan huruf tebal ... tetapi Anda dapat melakukan keluaran berwarna pada Windows dan Linux, dan mengontrol kecerahan:
from colorama import*
init(autoreset=True)printFore.RED +'some red text'printStyle.BRIGHT +Fore.RED +'some bright red text'
Ada modul yang sangat berguna untuk memformat teks (tebal, garis bawah, warna ..) dengan Python. Ini menggunakan curseslib tetapi sangat mudah digunakan.
Sebuah contoh:
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')
DIPERBARUI:
Saya menulis modul sederhana bernama colors.py untuk membuatnya lebih pythonic:
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 terminalImportError: No module named render Sebenarnya ini adalah satu-satunya situs yang dapat saya temukan tentang modul "terminal". Tolong jelaskan.
mineral
Tautan di atas digunakan untuk memuat terminalmodul, tetapi mereka mengarahkan ulang halaman. Ini kode yang di- cache oleh google.
Diego Navarro
Ngomong-ngomong, saya telah membuat modul python saya sendiri untuk menyelesaikan ini, lihat saja di @minerals ;-)
Diego Navarro
8
print'\033[1m Your Name \033[0m'
\ 033 [1m adalah unicode untuk huruf tebal di terminal \ 033 [0m adalah unicode untuk mengakhiri teks yang diedit dan kembali format teks standar !!!!!
jika Anda tidak menggunakan \ 033 [0m dari semua teks terminal yang akan datang akan menjadi tebal !!!!!!!!!
Harap baca jawaban lain sebelum menjawab! Pertanyaan ini memiliki banyak jawaban yang benar dengan lebih banyak penjelasan. Anda tidak menambahkan sesuatu yang bermanfaat.
Mohammad Dehghan
6
Pasang termcolor modul
sudo pip install termcolor
dan kemudian coba ini untuk teks berwarna
from termcolor import colored
print colored('Hello','green')
atau ini untuk teks tebal:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Dalam Python 3 Anda dapat menggunakan alternatif cprintsebagai pengganti drop-in untuk built-in print, dengan parameter opsional kedua untuk warna atau attrsparameter untuk huruf tebal (dan atribut lainnya seperti underline) selain printargumen bernama normal seperti fileatau end.
import sys
from termcolor import cprint
cprint('Hello','green', attrs=['bold'], file=sys.stderr)
Pengungkapan penuh, jawaban ini sangat didasarkan pada jawaban Olu Smith
dan dimaksudkan sebagai suntingan , yang akan mengurangi kebisingan pada halaman ini secara signifikan tetapi karena konsep sesat beberapa pengulas tentang apa yang seharusnya diedit, saya sekarang dipaksa untuk menjadikan ini jawaban yang terpisah.
Beberapa terminal memungkinkan untuk mencetak teks berwarna. Beberapa warna terlihat seperti "berani". Mencoba:
print('\033[1;37mciao!')
Urutan '\ 033 [1; 37m' membuat beberapa terminal untuk mulai mencetak dalam "putih terang" yang mungkin terlihat agak seperti putih tebal. '\ 033 [0; 0m' akan mematikannya.
Dengan asumsi bahwa Anda benar - benar bermaksud "mencetak" pada terminal pencetakan nyata :
>>> text ='foo bar\r\noof\trab\r\n'>>>''.join(s if i &1else(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'
Dalam python 3 Anda bisa menggunakan colorama - simple_colors: (halaman Warna Sederhana: https://pypi.org/project/simple-colors/ - pergi ke tajuk 'Penggunaan'.) Sebelum Anda melakukan apa yang di bawah ini, pastikan Anda pip install simple_colours.
from simple_colors import*print(green('hello','bold'))
Jawaban:
sumber
[1mHello World ![0m
Gunakan ini:
Dan untuk kembali normal:
Halaman ini adalah referensi yang bagus untuk mencetak warna dan bobot font. Buka bagian yang mengatakan 'Setel mode grafis:'
Dan perhatikan ini tidak akan bekerja pada semua sistem operasi tetapi Anda tidak memerlukan modul apa pun.
sumber
Anda dapat menggunakan termcolor untuk ini:
Untuk mencetak huruf tebal berwarna:
Untuk informasi lebih lanjut, lihat termcolor pada PyPi .
simple-colors adalah paket lain dengan sintaksis yang serupa:
Setara dengan colorama mungkin
Style.BRIGHT
.sumber
Dalam pemrograman komputer langsung, tidak ada yang namanya "mencetak teks tebal". Mari kita buat cadangan sedikit dan memahami bahwa teks Anda adalah serangkaian byte dan byte hanya kumpulan bit. Ke komputer, inilah teks "halo" Anda, dalam bentuk biner .
Masing-masing atau nol sedikit. Setiap delapan bit adalah satu byte. Setiap byte, dalam string seperti itu di Python 2.x, satu huruf / angka / tanda baca item (disebut karakter). Jadi misalnya:
Komputer menerjemahkan bit-bit itu menjadi huruf, tetapi dalam string tradisional (disebut string ASCII), tidak ada yang menunjukkan teks tebal. Dalam string Unicode, yang bekerja sedikit berbeda, komputer dapat mendukung karakter bahasa internasional, seperti karakter Cina, tetapi sekali lagi, tidak ada yang mengatakan bahwa beberapa teks tebal dan beberapa teks tidak. Juga tidak ada font, ukuran teks, dll.
Dalam hal mencetak HTML, Anda masih mengeluarkan string. Tetapi program komputer yang membaca string itu (browser web) diprogram untuk menafsirkan teks seperti
this is <b>bold</b>
"ini tebal " ketika itu mengubah string huruf Anda menjadi piksel di layar. Jika semua teks adalah WYSIWYG, kebutuhan untuk HTML itu sendiri akan dikurangi - Anda hanya akan memilih teks di editor Anda dan cetak tebal alih-alih mengetikkan HTML.Program lain menggunakan sistem yang berbeda - banyak jawaban menjelaskan sistem yang sama sekali berbeda untuk mencetak teks tebal pada terminal. Saya senang Anda mengetahui cara melakukan apa yang ingin Anda lakukan, tetapi pada titik tertentu, Anda akan ingin memahami cara kerja string dan memori.
sumber
Ini tergantung jika Anda menggunakan linux / unix:
Kata itu
text
harus tebal.sumber
Lihat colorama . Itu tidak selalu membantu dengan huruf tebal ... tetapi Anda dapat melakukan keluaran berwarna pada Windows dan Linux, dan mengontrol kecerahan:
sumber
Ada modul yang sangat berguna untuk memformat teks (tebal, garis bawah, warna ..) dengan Python. Ini menggunakan
curses
lib tetapi sangat mudah digunakan.Sebuah contoh:
DIPERBARUI:
Saya menulis modul sederhana bernama colors.py untuk membuatnya lebih pythonic:
sumber
ImportError: No module named terminal
ImportError: No module named render
Sebenarnya ini adalah satu-satunya situs yang dapat saya temukan tentang modul "terminal". Tolong jelaskan.terminal
modul, tetapi mereka mengarahkan ulang halaman. Ini kode yang di- cache oleh google.\ 033 [1m adalah unicode untuk huruf tebal di terminal \ 033 [0m adalah unicode untuk mengakhiri teks yang diedit dan kembali format teks standar !!!!!
jika Anda tidak menggunakan \ 033 [0m dari semua teks terminal yang akan datang akan menjadi tebal !!!!!!!!!
sumber
Pasang
termcolor
moduldan kemudian coba ini untuk teks berwarna
atau ini untuk teks tebal:
Dalam Python 3 Anda dapat menggunakan alternatif
cprint
sebagai pengganti drop-in untuk built-inprint
, dengan parameter opsional kedua untuk warna atauattrs
parameter untuk huruf tebal (dan atribut lainnya sepertiunderline
) selainprint
argumen bernama normal sepertifile
atauend
.sumber
Beberapa terminal memungkinkan untuk mencetak teks berwarna. Beberapa warna terlihat seperti "berani". Mencoba:
Urutan '\ 033 [1; 37m' membuat beberapa terminal untuk mulai mencetak dalam "putih terang" yang mungkin terlihat agak seperti putih tebal. '\ 033 [0; 0m' akan mematikannya.
sumber
Dengan asumsi bahwa Anda benar - benar bermaksud "mencetak" pada terminal pencetakan nyata :
Kirimkan saja ke Anda
stdout
.sumber
Simple Boldness - Two Line Code
Dalam python 3 Anda bisa menggunakan colorama - simple_colors: (halaman Warna Sederhana: https://pypi.org/project/simple-colors/ - pergi ke tajuk 'Penggunaan'.) Sebelum Anda melakukan apa yang di bawah ini, pastikan Anda
pip install simple_colours
.sumber
pip install simple_colors