בקשת מידע | קורס פייתון
-
@איסתרק-השלישי אני מC#
אבל גם לומד JS וקצת פייתון... -
-
שלום אני מתכנת מתחיל בפייתון וניסיתי לכתוב מחשבון
וזה הקודdef calculator(): number_1 = int(input("Insert a number")) sign = int(input("Insert a mark")) number_2 = int(input("Insert a number")) if sign == "+": print(number_1 + number_2) elif sign == "*": print(number_1 * number_2) elif sign == "-": print(number_1 - number_2) elif sign == "/": print(number_1 / number_2) else: print("Error Please enter a valid mark") calculator()
וזה השגיאה
Traceback (most recent call last):
File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 16, in <module>
calculator()
File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 2, in calculator
number_1 = input(int("Insert a number"))
ValueError: invalid literal for int() with base 10: 'Insert a number'
מה לא נכון? -
@ישראל-1-0 כתב בבקשת מידע | קורס פייתון:
מה לא נכון?
פייתון נותן הסבר על השגיאות שלו בצורה די ברורה,
תמיד תסתכל על השורה האחרונה של טקסט השגיאה,
במקרה שלנו זה:ValueError: invalid literal for int() with base 10: 'Insert a number'
אתה יכול גם לנסות לתרגם בטרנסלייט,
לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.
-
-
@ישראל-1-0 כתב בבקשת מידע | קורס פייתון:
@נעזר1000
1 אי אפשר בשורה אחת?
2 אולי זה קצר יותרnum = int(input("print something"))
-
@נעזר1000 עשיתי את הקוד בדיוק כך
def calculator(): number_1 = int(input("Insert a number")) sign = int(input("Insert a mark")) number_2 = int(input("Insert a number")) if sign == "+": print(number_1 + number_2) elif sign == "*": print(number_1 * number_2) elif sign == "-": print(number_1 - number_2) elif sign == "/": print(number_1 / number_2) else: print("Error Please enter a valid mark") calculator()
והוא נותן את השגיאה הבאה
Traceback (most recent call last):
File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 16, in <module> -
@ישראל-1-0 כתב בבקשת מידע | קורס פייתון:
והוא נותן את השגיאה הבאה
Traceback (most recent call last):
File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 16, in <module>זה לא השורה האחרונה בשגיאה.
והבעיה היא כשאתה מנסה להמיר ל int דבר שהוא לא מספר. -
@נעזר1000 צודק
ניסיתי להחליף לדר הארוכה והמסורבלת
וזה הקודdef calculator(): number_a = input("Insert a number") sign_b = input("Insert a mark") number_c = input("Insert a number") number_1 = int(number_a) sign = int(sign_b) number_2 = int(number_c) if sign == "+": print(number_1 + number_2) elif sign == "*": print(number_1 * number_2) elif sign == "-": print(number_1 - number_2) elif sign == "/": print(number_1 / number_2) else: print("Error Please enter a valid mark") calculator()
וזה נותן את השגיאה הבאה
Traceback (most recent call last):
File "C:/Users/TA1/AppData/Local/Programs/Python/Python312/מחשבון.py", line 21, in <module>
calculator()
File "C:/Users/TA1/AppData/Local/Programs/Python/Python312/מחשבון.py", line 6, in calculator
number_1 = int(number_a)
ValueError: invalid literal for int() with base 10: '' -
@נעזר1000 בסוף הצלחתי וזה הקוד
def calculator(): number_1 = int(input("Insert a number\n")) sign = input("Insert a mark\n") number_2 = int(input("Insert a number\n")) if sign == "+": print(number_1 + number_2) elif sign == "*": print(number_1 * number_2) elif sign == "-": print(number_1 - number_2) elif sign == "/": print(number_1 / number_2) else: print("Error Please enter a valid mark") calculator()
-
@ישראל-1-0 את האופרטור לא הופכים למספר.
def calculator(): number_a = "1" sign_b = "+" number_c = "1" number_1 = int(number_a) sign = sign_b number_2 = int(number_c) if sign == "+": print(number_1 + number_2) elif sign == "*": print(number_1 * number_2) elif sign == "-": print(number_1 - number_2) elif sign == "/": print(number_1 / number_2) else: print("Error Please enter a valid mark") calculator()
-
@ישראל-1-0 אגב, יש פונקציה פשוטה שהופכת את העבודה לקלה לאין ערוך...
הפונקציה eval מקבלת מחרוזת (string) וממירה אותה למספר כולל סימני חישוב שונים!
וכך אפשר ליצור מחשבון בשתי שורות בלבד....t = input("הקלד תרגיל\n") print(eval(t))
-
@איסתרק-השלישי עתק הדבק לקוד למחשבון כולל ממשק משתמש!!!
import tkinter as tk import tkinter.font def display_result(): string = txt_display.get() try: result = eval(string) except: result = "ERROR" txt_display.delete(0, tk.END) txt_display.insert(0, str(result)) root = tk.Tk() root.title("Basic Calculator") font_buttons = tkinter.font.Font(root, family='Arial', size=20, weight='bold') for i in range(5): root.rowconfigure(i, weight=1) root.columnconfigure(i, weight=1) txt_display = tk.Entry(root, font="Courier 40 bold", justify='right') txt_display.grid(row=0, column=0, columnspan=5, sticky='NESW') for num in range(1,10): btn = tk.Button( root, text=str(num), font=font_buttons, command=lambda x=num: txt_display.insert(tk.END, str(x))) btn.grid(column=(num-1)%3, row=(num-1)//3+1, sticky = 'NESW') btn_0 = tk.Button(root, text="0", font=font_buttons, command=lambda: txt_display.insert(tk.END, "0")) btn_0.grid(row=4, column=0, columnspan=2, sticky='NESW') btn_dot = tk.Button(root, text=".", font=font_buttons, command=lambda: txt_display.insert(tk.END, ".")) btn_dot.grid(row=4, column=2, sticky='NESW') btn_plus = tk.Button(root, text="+", font=font_buttons, command=lambda: txt_display.insert(tk.END, "+")) btn_plus.grid(row=1, column=3, sticky='NESW') btn_minus = tk.Button(root, text="-", font=font_buttons, command=lambda: txt_display.insert(tk.END, "-")) btn_minus.grid(row=2, column=3, sticky='NESW') btn_mul = tk.Button(root, text="*", font=font_buttons, command=lambda: txt_display.insert(tk.END, "*")) btn_mul.grid(row=3, column=3, sticky='NESW') btn_div = tk.Button(root, text="/", font=font_buttons, command=lambda: txt_display.insert(tk.END, "/")) btn_div.grid(row=4, column=3, sticky='NESW') btn_back = tk.Button(root, text="C", font=font_buttons, command=lambda: txt_display.delete(0, tk.END)) btn_back.grid(row=1,column=4, sticky='NESW') btn_equal = tk.Button(root, text="=", font=font_buttons, command=display_result) btn_equal.grid(row=2,column=4, rowspan=3, sticky='NESW') root.mainloop()
תנסו להריץ ותגידו מה דעתכם על זה