Nếu bạn muốn in màu trong trình bao IDLE, không có câu trả lời nào khi sử dụng mã thoát ASCI sẽ giúp bạn vì nó không thực hiện tính năng này.
Có một hack cụ thể cho IDLE cho phép bạn ghi trực tiếp lên đối tượng PyShell
và chỉ định các thẻ văn bản mà IDLE đã xác định như "STRING"
sẽ xuất hiện dưới dạng màu xanh theo mặc định.
import sys
try:
shell = sys.stdout.shell
except AttributeError:
raise RuntimeError("you must run this program in IDLE")
shell.write("Wanna go explore? ","KEYWORD")
shell.write("OPTIONS","STRING")
shell.write(" : ","KEYWORD")
shell.write("Yes","DEFINITION")
shell.write(" or ","KEYWORD")
shell.write("No","COMMENT")
answer = input()
Khi chạy trong IDLE sẽ cho kết quả nhanh chóng này:
Dưới đây là danh sách tất cả các thẻ có giá trị sử dụng:
print("here are all the valid tags:\n")
valid_tags = ('SYNC', 'stdin', 'BUILTIN', 'STRING', 'console', 'COMMENT', 'stdout',
'TODO','stderr', 'hit', 'DEFINITION', 'KEYWORD', 'ERROR', 'sel')
for tag in valid_tags:
shell.write(tag+"\n",tag)
Lưu ý rằng 'sel'
là đặc biệt mà nó đại diện cho văn bản được chọn, vì vậy nó sẽ được bỏ chọn khi một cái gì đó khác được nhấp vào. Nó cũng có thể được sử dụng để bắt đầu một số văn bản được chọn để sao chép.
Nguồn
2016-03-23 16:40:54
Mã của bạn là mất tích thụt đầu dòng và là cú pháp hợp lệ. Bạn nên khắc phục điều đó trước. Ngoài ra, tôi không hiểu yêu cầu của bạn. Những gì đầu vào sẽ dẫn đến những gì đầu ra? – phihag
Xin lỗi. Tôi đã không sao chép và dán mã trực tiếp, bởi vì bạn không thể làm điều đó trong IDLE, nhưng nó hoạt động tốt trong IDLE. Bây giờ, tôi muốn làm cho tùy chọn màu xanh lá cây, có màu xanh và không có màu đỏ. Bây giờ, tôi mới để python và không có ý tưởng làm thế nào để làm điều này. Bất kỳ ý tưởng? Ngoài ra, tôi apoligize nếu tôi đã không cung cấp cho bạn câu trả lời bạn đã có thể thích. Tôi sẽ thành thật, tôi không hoàn toàn hiểu ý của bạn tại 'Đầu ra nào sẽ dẫn đến đầu ra' –
Tôi đã sửa cú pháp mã của bạn. – SomeKittens