Python renkli yazı konsol ekranında bozuluyor

Katılım
15 Temmuz 2018
Mesajlar
1.083
Çözümler
5
Merhaba, ben Python ile bir konsol programı yazdım ve yazıları renklendirdim. Ancak Visual Studio Code üzerinde renkli gözüken kod konsol ekranında bozuluyor, bunu nasıl düzeltebilirim? Yardımcı olursanız sevinirim.

Visual Studio Code üzerinde çalıştırdığımda:



Çift tıklayıp açtığımda:

 
Fark ettiysen başında ifade var. Büyük ihtimal karakter seti uyumsuzluğu var.
 
Dostum doğrusu pek Python bilgim yok. Hani Java veya C++ desen hallederiz.

@Vavien. müsaitse yardımcı olabilir.
 
Python'a hakim değilim. Ama kod olmadan böyle bir konu açmanın saçma olduğunu biliyorum.
Python ile konsol programını nasıl "yaptığını" da anlatsan iyi olur.


Python:
import math
from colorama import *
from time import sleep

print("""
**********************

Hesap Makinesi

- İŞLEMLER -

[1] Toplama
[2] Çıkarma
[3] Bölme
[4] Çarpma
[5] Karakök
[6] Üssünü Alma
[7] Asal Sayı Kontrol
[8] EBOB Hesaplayıcı
[9] EKOK Hesaplayıcı
[q] Programdan çıkış

***************
""")

# color

blue = Fore.BLUE
red = Fore.RED
green = Fore.GREEN
magenta = Fore.MAGENTA

# function


# asal check
def asal_mi(sayi):

    if(sayi == 1):
        return True #print("\n{}, bir asal sayı değil!".format(sayi))

    elif(sayi == 2):
        return True #print("\n{}, bir asal sayı!".format(sayi))

    else:
        for i in range(2,sayi):
            if (sayi % i == 0):
                return False #print("\n{}, bir asal sayı değil!".format(sayi))
        else:
            return True #print("\n{}, bir asal sayı!".format(sayi))

while True:
    secim = input(magenta + "Hangi işlemi yapmak istediğiniz seçin: \n")
    if(secim == "q"):
         print(red + "Programdan çıkış yapılıyor... ")
         sleep(1.5)
         break
    else:
     secim = int(secim)

     if(secim == 1):
        sayi11 = int(input(green + "Toplamak istediğiniz birinci sayı: "))
        sayi12 = int(input(green + "Toplamak istediğiniz ikinci sayı: "))
        sonuc1 = sayi11+sayi12
        print(blue + "\nSonucunuz: {}\n".format(sonuc1))

     elif(secim == 2):
         sayi21 = int(input(green + "Çıkarılmasını istediğiniz sayı: "))
         sayi22 = int(input(green + "Çıkarmak istediğiniz sayı: "))
         sonuc2 = sayi21 - sayi22
         print(blue + "\nSonucunuz: {}\n".format(sonuc2))

     elif(secim == 3):
         sayi31 = float(input(green + "Bölünmesini istediğiniz sayı: "))
         sayi32 = float(input(green + "Bölmesini istediğiniz sayı: "))
         sonuc3 = sayi31 / sayi32
         print(blue + "\nSonucunuz: {}\n".format(sonuc3))

     elif(secim == 4):
         sayi41 = int(input(green + "Çarpılmasını istediğiniz birinci sayı: "))
         sayi42 = int(input(green + "Çarpılmasını istediğiniz ikinci sayı: "))
         sonuc4 = sayi41 * sayi42
         print(blue + "\nSonucunuz: {}\n".format(sonuc4))

     elif(secim == 5):
         sayi51 = int(input(green + "Karakökünün hesaplanmasını istediğiniz sayı: "))
         sonuc5 = math.sqrt(sayi51)
         print(blue + "\nSonucunuz: {}\n".format(sonuc5))

     elif(secim == 6):
         sayi61 = int(input(green + "Sayının tabanı olmasını istediğiniz sayı: "))
         sayi62 = int(input(green + "Sayının üssü olmasını istediğiniz sayı: "))
         sonuc6 = math.pow(sayi61,sayi62)
         print("\nSonucunuz: {}\n".format(sonuc6))
     elif(secim == 7):
         secim71 = int(input(green + "Asal olduğunu sorgulamak istediğiniz sayı: "))
         if(asal_mi(secim71)):
             print(blue + "{}, bir asal sayı!".format(secim71))
         else:
             print(red + "{}, bir asal sayı değil!".format(secim71))

     elif (secim == 8):
         sayi81 = int(input(green + "EBOB'unu hesaplayacağınız 1. sayı: "))
         sayi82 = int(input("EBOB'unu hesaplayacağınız 2. sayı: "))
         sonucebob = math.gcd(sayi81,sayi82)
         print(blue + "SONUÇ: ebob({},{}) = {}".format(sayi81,sayi82,sonucebob))

     elif (secim == 9):
         sayi91 = int(input(green + "EKOK'unu hesaplayacağınız 1. sayı: "))
         sayi92 = int(input(green + "EKOK'unu hesaplayacağınız 2. sayı: "))
         sonucekok = (sayi91 * sayi92) / math.gcd(sayi91,sayi92)

         print(blue + "SONUÇ: ekok({},{}) = {}".format(sayi91,sayi92,sonucekok))

     else:
         print(red + "Hatalı parametre! Tekrar deneyiniz. \n")
         sleep(0.5)
 

Initialisation​

Applications should initialise Colorama using:

from colorama import init
init()

On Windows, calling init() will filter ANSI escape sequences out of any text sent to stdout or stderr, and replace them with equivalent Win32 calls.
 
"Bildiğim kadarıyla" bu renklendirme işi Linux vb. işletim sistemlerinde geçerli.

Windows için;
Python:
import os

os.system("color a")
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…