Neler Yeni

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

Katılım
10 Aralık 2020
Mesajlar
181
Dahası  
Reaksiyon skoru
29
İsim
Mahmut Akif
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
 

JSezar

80+ Silver
Katılım
2 Ekim 2020
Mesajlar
4,459

Shaw

80+ Silver
Katılım
1 Ağustos 2022
Mesajlar
3,443
Dahası  
Reaksiyon skoru
2,556
Konum
kayip
İsim
Fatih
Hocam Türkçe karakterlerle değişken oluşturuluyor mu ya?
Mesaj otomatik birleştirildi:

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

Eğer değerleri fonksiyonların içinden çağırmadan çekmeye çalışıyorsanız ondan olabilir.
 

pr0phet

80+ Bronze
Katılım
3 Şubat 2021
Mesajlar
1,135
Dahası  
Reaksiyon skoru
418
İsim
Mehmet Emin Güneşli
knk chatgpt ye sor o zaten hataları buluyor https://openai.com/blog/chatgpt/
Mesaj otomatik 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:
Katılım
10 Aralık 2020
Mesajlar
181
Dahası  
Reaksiyon skoru
29
İsim
Mahmut Akif
  • Konu Sahibi Konu Sahibi
  • #6
knk chatgpt ye sor o zaten hataları buluyor https://openai.com/blog/chatgpt/
Mesaj otomatik 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ı
Mesaj otomatik 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
 

pr0phet

80+ Bronze
Katılım
3 Şubat 2021
Mesajlar
1,135
Dahası  
Reaksiyon skoru
418
İsim
Mehmet Emin Güneşli
Katılım
10 Aralık 2020
Mesajlar
181
Dahası  
Reaksiyon skoru
29
İsim
Mahmut Akif
  • Konu Sahibi Konu Sahibi
  • #8
  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

Mesaj otomatik birleştirildi:

Hocam Türkçe karakterlerle değişken oluşturuluyor mu ya?
hocam ben de tam olarak bilmiyorum ama değiştireyim.
 

pr0phet

80+ Bronze
Katılım
3 Şubat 2021
Mesajlar
1,135
Dahası  
Reaksiyon skoru
418
İsim
Mehmet Emin Güneşli
ben tam anlamıyorum ama chatgpt ye kod yazdırabilirsin istediğin dilde sadece ne yazıcağını betimle o sana yazar
 
Katılım
10 Aralık 2020
Mesajlar
181
Dahası  
Reaksiyon skoru
29
İsim
Mahmut Akif

zulumaster

80+ Bronze
Katılım
21 Aralık 2022
Mesajlar
854
Dahası  
Reaksiyon skoru
349
İsim
zulu master
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()
 

İbrahim_Talha

80+ Silver
Katılım
3 Mayıs 2021
Mesajlar
2,294
Dahası  
Reaksiyon skoru
1,944
İsim
İbrahim Talha DEMİR
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
Katılım
10 Aralık 2020
Mesajlar
181
Dahası  
Reaksiyon skoru
29
İsim
Mahmut Akif
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

Mesaj otomatik 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.
 
Top Bottom