Bu kodlarda nerede hata yapmışım? (python)

Katılım
10 Aralık 2020
Mesajlar
198
Reaksiyon skoru
30
Youtube dan birkaç video izledim. Kafadan bi hesap makinesi yapim dedim bişeyler öğrenme amaçlı. ama çalıştırdığımda aşağıdaki ekranla karşılaşıyorum. işaret_girdi ve işaret_hatalı kısımlarında bir hata var büyük ihtimal ama nerede olduğunu anlayamadım.
(kodların düzenli olmasını falan beklemiyorum şu anda)

Python:
print('Hesap makinesi')

def birinci_hatalı():
    global birinci

    try:
        birinci = int, float(input())
    except ValueError:
        print("sayı gir huleyynn")
        birinci_hatalı()



def birinci_sayı():
    global birinci
print ("Bir sayı giriniz:")

try:
    birinci = int,float(input())
except ValueError:
    print("sayı gir huleyynn")
    birinci_hatalı()



def işaret_hatalı():
    global işaret

try:
    işaret = int(input())
except ValueError:
    print("Türkçe anlamıyon mu lan hıyar")
    işaret_hatalı()

    if (4 < işaret and işaret < 1):
        print("Türkçe anlamıyon mu lan hıyar\n 1, 2, 3 ya da 4 gir şuraya adamı hasta etme")
        işaret_hatalı()



def işaret_girdi():
    global işaret
    print('Hangi işlemi yapacaksınız?\n 1:+\n 2:-\n 3:*\n 4:/')
try:
    işaret = int(input())
except ValueError:
    print("Türkçe anlamıyon mu lan hıyar")
    işaret_hatalı()

    if (4 < işaret and işaret < 1):
        print("Türkçe anlamıyon mu lan hıyar\n 1, 2, 3 ya da 4 gir şuraya adamı hasta etme")
        işaret_hatalı()



def ikinci_hatalı():
    global ikinci

    try:
        ikinci = int, float(input())
    except ValueError:
        print("sayı gir huleyynn")
        ikinci_hatalı()



def ikinci_sayı():
    global ikinci
    print("İkinci sayıyı giriniz:")

    try:
        ikinci = int, float(input())
    except ValueError:
        print("sayı gir huleyynn")
        ikinci_hatalı()



birinci_sayı()
işaret_girdi()
ikinci_sayı()


toplama = (birinci + ikinci)
çıkarma = (birinci - ikinci)
çarpma = (birinci * ikinci)
bölme = (birinci / ikinci)

if (işaret == 1):
    print(toplama)

elif (işaret == 2):
    print(çıkarma)

elif (işaret == 3):
    print(çarpma)

else:
    print(bölme)

1672051395313.png
 
Hocam Türkçe karakterlerle değişken oluşturuluyor mu ya?
Mesajlar otomatik olarak birleştirildi:

Çok uzun zaman önce kullanmıştım Pythonu.
Mesajlar otomatik olarak birleştirildi:

Eğer değerleri fonksiyonların içinden çağırmadan çekmeye çalışıyorsanız ondan olabilir.
 
knk chatgpt ye sor o zaten hataları buluyor https://openai.com/blog/chatgpt/
Mesajlar otomatik olarak birleştirildi:

Bu kod parçasında birkaç hataya rastladım. Bunları aşağıdaki gibi sıralayabilirim:

  1. Birinci hatalı fonksiyonunun içinde, birinci değişkenini global olarak tanımlayan bir "global birinci" satırı yok. Bu nedenle, birinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  2. Birinci sayı fonksiyonunun içinde, "print ('Bir sayı giriniz:')" satırının altında, bir try-except bloğu bulunuyor. Ancak try bloğunda hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  3. İşaret hatalı fonksiyonunun içinde, hiçbir kod satırı yok. Bu nedenle, bu fonksiyon aslında hiçbir şey yapmayacak ve hata mesajı gösterilmeyecektir.
  4. İşaret girdi fonksiyonunun içinde, "try" bloğu içinde hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  5. İkinci hatalı fonksiyonunun içinde, ikinci değişkenini global olarak tanımlayan bir "global ikinci" satırı yok. Bu nedenle, ikinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  6. İkinci sayı fonksiyonunun içinde, "print('İkinci sayıyı giriniz:')" satırının altında, bir try-except bloğu bulunuyor. Ancak try bloğunda hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  7. Kodun sonunda, işaret değişkeninin değeri 4 veya 1 olmadığında, else bloğu çalışacaktır. Ancak bölme işlemi için else bloğu kullanılmış. Bu nedenle, eğer işaret değişkeni 4 veya 1 değilse, bölme işlemini yapmayacak ve hata mesajı gösterile
 
Son düzenleme:
knk chatgpt ye sor o zaten hataları buluyor https://openai.com/blog/chatgpt/
Mesajlar otomatik olarak birleştirildi:

Bu kod parçasında birkaç hataya rastladım. Bunları aşağıdaki gibi sıralayabilirim:

  1. Birinci hatalı fonksiyonunun içinde, birinci değişkenini global olarak tanımlayan bir "global birinci" satırı yok. Bu nedenle, birinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  2. Birinci sayı fonksiyonunun içinde, "print ('Bir sayı giriniz:')" satırının altında, bir try-except bloğu bulunuyor. Ancak try bloğunda hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  3. İşaret hatalı fonksiyonunun içinde, hiçbir kod satırı yok. Bu nedenle, bu fonksiyon aslında hiçbir şey yapmayacak ve hata mesajı gösterilmeyecektir.
  4. İşaret girdi fonksiyonunun içinde, "try" bloğu içinde hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  5. İkinci hatalı fonksiyonunun içinde, ikinci değişkenini global olarak tanımlayan bir "global ikinci" satırı yok. Bu nedenle, ikinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  6. İkinci sayı fonksiyonunun içinde, "print('İkinci sayıyı giriniz:')" satırının altında, bir try-except bloğu bulunuyor. Ancak try bloğunda hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
  7. Kodun sonunda, işaret değişkeninin değeri 4 veya 1 olmadığında, else bloğu çalışacaktır. Ancak bölme işlemi için else bloğu kullanılmış. Bu nedenle, eğer işaret değişkeni 4 veya 1 değilse, bölme işlemini yapmayacak ve hata mesajı gösterile
bunlar chatgpt nin yazdıkları mı
Mesajlar otomatik olarak birleştirildi:

  1. Birinci hatalı fonksiyonunun içinde, birinci değişkenini global olarak tanımlayan bir "global birinci" satırı yok. Bu nedenle, birinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  2. İkinci hatalı fonksiyonunun içinde, ikinci değişkenini global olarak tanımlayan bir "global ikinci" satırı yok. Bu nedenle, ikinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
bu ikisini anlamadım. global birinci ve global ikinci satırları var
 
  1. Birinci hatalı fonksiyonunun içinde, birinci değişkenini global olarak tanımlayan bir "global birinci" satırı yok. Bu nedenle, birinci değişkenini fonksiyonun içinde değiştirmeye çalışırsanız, hata alırsınız.
  2. Birinci sayı fonksiyonunun içinde, "print ('Bir sayı giriniz:')" satırının altında, bir try-except bloğu bulunuyor. Ancak try bloğunda hiçbir kod satırı yok. Bu nedenle, except bloğu hiç çalışmayacak ve hata mesajı gösterilmeyecektir.
2 numarada da durum bu şekilde hata mesajı görünüyor
1672058520129.png

Mesajlar otomatik olarak birleştirildi:

Hocam Türkçe karakterlerle değişken oluşturuluyor mu ya?
hocam ben de tam olarak bilmiyorum ama değiştireyim.
 
ben tam anlamıyorum ama chatgpt ye kod yazdırabilirsin istediğin dilde sadece ne yazıcağını betimle o sana yazar
 
Yapay zekaya yazdırdım ui'da eklettirdim :)

Python:
#!/usr/bin/env python

# Import necessary modules
import sys
import tkinter as tk

# Define the main function
def main():
  # Create the main window
  window = tk.Tk()
  window.title("Calculator")

  # Create the input fields
  operand1_label = tk.Label(text="Enter the first operand:")
  operand1_entry = tk.Entry()
  operand2_label = tk.Label(text="Enter the second operand:")
  operand2_entry = tk.Entry()
  result_label = tk.Label(text="Result:")
  result_text = tk.StringVar()
  result_entry = tk.Label(textvariable=result_text)

  # Create the operation buttons
  def add():
    # Get the input values
    operand1 = float(operand1_entry.get())
    operand2 = float(operand2_entry.get())

    # Perform the requested operation
    result = operand1 + operand2

    # Update the result field
    result_text.set(str(result))

  add_button = tk.Button(text="+", command=add)

  def subtract():
    # Get the input values
    operand1 = float(operand1_entry.get())
    operand2 = float(operand2_entry.get())

    # Perform the requested operation
    result = operand1 - operand2

    # Update the result field
    result_text.set(str(result))

  subtract_button = tk.Button(text="-", command=subtract)

  def multiply():
    # Get the input values
    operand1 = float(operand1_entry.get())
    operand2 = float(operand2_entry.get())

    # Perform the requested operation
    result = operand1 * operand2

    # Update the result field
    result_text.set(str(result))

  multiply_button = tk.Button(text="*", command=multiply)

  def divide():
    # Get the input values
    operand1 = float(operand1_entry.get())
    operand2 = float(operand2_entry.get())

    # Perform the requested operation
    result = operand1 / operand2

    # Update the result field
    result_text.set(str(result))

  divide_button = tk.Button(text="/", command=divide)

  # Create the quit button
  def quit():
    window.destroy()
    sys.exit()

  quit_button = tk.Button(text="Quit", command=quit)



  # Add the widgets to the window
  operand1_label.pack()
  operand1_entry.pack()
  operand2_label.pack()
  operand2_entry.pack()
  result_label.pack()
  result_entry.pack()
  add_button.pack()
  subtract_button.pack()
  divide_button.pack()
  multiply_button.pack()
  quit_button.pack()

  # Run the main loop
  window.mainloop()

# Call the main function
if __name__ == "__main__":
  main()
 
Hocam Tuple veri tipinde istenen işlem yapılamaz tarzında bir hata mesajı alıyorsunuz. Bunun sebebi:
ikinci = int, float(input())
şeklinde tanımlamanızdır. PYTHON kısmına hakim değilim fakat yaptığınız şekilde yapınca veri türü Tuple oluyor.(Sebebini araştırabilirsiniz. Ben bilmiyorum 😊) Onun yerine:
ikinci = int(input())
birinci = int(input())
yaparsanız sorun çözülecektir. Bunu "int, float" yazan tüm yerlere yapın. Ayrıca siz siz olun izin verilse dahi Türkçe karakter kullanmayın. Bunu alışkanlık haline getirmeyin. Hatta değişken isimlerini fonksiyonları... Ingilizce tanımlayın.
 
  • Beğen
Reaksiyonlar: Shaw
Hocam Tuple veri tipinde istenen işlem yapılamaz tarzında bir hata mesajı alıyorsunuz. Bunun sebebi:
ikinci = int, float(input())
şeklinde tanımlamanızdır. PYTHON kısmına hakim değilim fakat yaptığınız şekilde yapınca veri türü Tuple oluyor.(Sebebini araştırabilirsiniz. Ben bilmiyorum 😊) Onun yerine:
ikinci = int(input())
birinci = int(input())
yaparsanız sorun çözülecektir. Bunu "int, float" yazan tüm yerlere yapın. Ayrıca siz siz olun izin verilse dahi Türkçe karakter kullanmayın. Bunu alışkanlık haline getirmeyin. Hatta değişken isimlerini fonksiyonları... Ingilizce tanımlayın.
Anladım hocam teşekkürler. dediğinizi yaptım ve programın uyarı olarak verdiği hata gitti.
bir de programın uyarı olarak gösterdiği hata dışında bir hata daha var. fotoğrafta da gördüğünüz üzere bir sayı giriniz dedikten sonra 3 sayı girince işaret soruyor ve işaret kısmının girdisini, sormadan önce alıyor.
1672066645580.png

Mesajlar otomatik olarak birleştirildi:

1672066959462.png

bir de şöyle bir hata var. işaretin hata metnini vermeden önce bi ton hata veriyor sonra da program kapanıyor. yani işaret fonksiyonlarında baya bi eksiğim var.
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,177,740
Mesajlar
10,616,604
Üyeler
186,940
Son üye
MertOcak
Geri
Top