Làm cách nào để in văn bản in đậm trong Python?
Ví dụ:
print "hello"
Tôi nên làm gì để đoạn văn bản Hello hello được hiển thị in đậm?
Làm cách nào để in văn bản in đậm trong Python?
Ví dụ:
print "hello"
Tôi nên làm gì để đoạn văn bản Hello hello được hiển thị in đậm?
Câu trả lời:
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)
Dùng cái này:
print '\033[1m' + 'Hello'
Và để thay đổi trở lại bình thường:
print '\033[0m'
Trang này là một tài liệu tham khảo tốt để in màu và trọng lượng phông chữ. Chuyển đến phần có nội dung 'Đặt chế độ đồ họa:'
Và lưu ý rằng điều này sẽ không hoạt động trên tất cả các hệ điều hành nhưng bạn không cần bất kỳ mô-đun nào.
Bạn có thể sử dụng termcolor cho việc này:
sudo pip install termcolor
Để in đậm màu:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
Để biết thêm thông tin, xem termcolor trên PyPi .
màu đơn giản là một gói khác có cú pháp tương tự:
from simple_colors import *
print(green('Hello', ['bold'])
Tương đương trong colorama có thể là Style.BRIGHT
.
Trong lập trình máy tính thẳng, không có thứ gọi là "in chữ đậm". Hãy sao lưu một chút và hiểu rằng văn bản của bạn là một chuỗi byte và byte chỉ là một bó bit. Đối với máy tính, đây là văn bản "xin chào" của bạn, ở dạng nhị phân .
0110100001100101011011000110110001101111
Mỗi một hoặc không là một chút. Cứ tám bit là một byte. Mỗi byte là, trong một chuỗi như thế trong Python 2.x, một chữ cái / số / mục chấm câu (được gọi là một ký tự). Ví dụ:
01101000 01100101 01101100 01101100 01101111
h e l l o
Máy tính dịch các bit đó thành các chữ cái, nhưng trong một chuỗi truyền thống (được gọi là chuỗi ASCII), không có gì để chỉ văn bản in đậm. Trong một chuỗi Unicode, hoạt động hơi khác một chút, máy tính có thể hỗ trợ các ký tự ngôn ngữ quốc tế, như tiếng Trung Quốc, nhưng một lần nữa, không có gì để nói rằng một số văn bản được in đậm và một số văn bản thì không. Cũng không có phông chữ rõ ràng, kích thước văn bản, vv
Trong trường hợp in HTML, bạn vẫn xuất ra một chuỗi. Nhưng chương trình máy tính đọc chuỗi đó (trình duyệt web) được lập trình để diễn giải văn bản như this is <b>bold</b>
"điều này được in đậm " khi nó chuyển đổi chuỗi ký tự của bạn thành pixel trên màn hình. Nếu tất cả văn bản là WYSIWYG, thì nhu cầu về HTML sẽ được giảm bớt - bạn chỉ cần chọn văn bản trong trình chỉnh sửa của mình và in đậm nó thay vì gõ HTML.
Các chương trình khác sử dụng các hệ thống khác nhau - rất nhiều câu trả lời giải thích một hệ thống hoàn toàn khác để in văn bản in đậm trên thiết bị đầu cuối. Tôi rất vui vì bạn đã tìm ra cách để làm những gì bạn muốn làm, nhưng tại một số điểm, bạn sẽ muốn hiểu cách thức chuỗi và bộ nhớ hoạt động.
Kiểm tra colorama . Nó không nhất thiết phải giúp làm mờ ... nhưng bạn có thể thực hiện đầu ra được tô màu trên cả Windows và Linux và kiểm soát độ sáng:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Có một mô-đun rất hữu ích để định dạng văn bản (đậm, gạch chân, màu sắc ..) trong Python. Nó sử dụng curses
lib nhưng nó rất đơn giản để sử dụng.
Một ví dụ:
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')
Tôi đã viết một mô-đun đơn giản có tên colors.py để làm cho điều này thêm một chút 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 terminal
ImportError: No module named render
Trên thực tế đây là trang web duy nhất tôi có thể tìm thấy về mô-đun "thiết bị đầu cuối". Xin hãy giải thích.
terminal
mô-đun, nhưng chúng đã chuyển hướng trang. Đây là mã được lưu trữ bởi google.
print '\033[1m Your Name \033[0m'
\ 033 [1m là unicode in đậm trong terminal \ 033 [0m là unicode để kết thúc văn bản đã chỉnh sửa và định dạng lại văn bản mặc định !!!!!
nếu bạn không sử dụng \ 033 [0m thì tất cả văn bản sắp tới của thiết bị đầu cuối sẽ trở nên đậm !!!!!!!!!
Cài đặt termcolor
mô-đun
sudo pip install termcolor
và sau đó thử điều này cho văn bản màu
from termcolor import colored
print colored('Hello', 'green')
hoặc điều này cho văn bản in đậm:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Trong Python 3, bạn có thể sử dụng thay thế cprint
thả xuống cho tích hợp sẵn print
, với tham số thứ hai tùy chọn cho màu sắc hoặc attrs
tham số cho đậm (và các thuộc tính khác như underline
) ngoài các print
đối số có tên thông thường như file
hoặc end
.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Tiết lộ đầy đủ, câu trả lời này chủ yếu dựa trên câu trả lời của Olu Smith và được dự định là một chỉnh sửa , điều này sẽ làm giảm đáng kể tiếng ồn trên trang này nhưng vì khái niệm sai lầm của một số nhà phê bình về việc chỉnh sửa là gì, tôi hiện đang bị ép buộc để làm cho điều này một câu trả lời riêng biệt.
Giả sử rằng bạn thực sự có nghĩa là "in" trên thiết bị đầu cuối in thực sự :
>>> 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'
Chỉ cần gửi nó cho bạn stdout
.
Trong python 3, bạn có thể sử dụng colorama - simple_colors: (Trang Màu đơn giản: https://pypi.org/project/simple-colors/ - đi đến tiêu đề 'Cách sử dụng'.) Trước khi bạn làm những gì bên dưới, hãy chắc chắn rằng bạn pip install simple_colours
.
from simple_colors import *
print(green('hello', 'bold'))
pip install simple_colors