בקשת מידע | קורס פייתון
-
-
@ישראל-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()
תנסו להריץ ותגידו מה דעתכם על זה
-
@ישראל-1-0 זה דורש התקנת tkinter
-
@איסתרק-השלישי לא נכון זה רץ לי על פייתון רגיל בלי להתקין כלום
-
@ישראל-1-0 צודק... טעיתי.
(אבל זה ממש חידוש בשבילי.) -
@פלדה
בכל שפות התכנות המוכרות קיימת הפרדה בין משתנים לערכים בשביל למנוע בילבול (ההפרדה היא חובה ואי אפשר בלעדיה), מילות שמורות במערכת או משתנים שהגדרת יכתבו ללא מרכאות לעומת ערכים שאתה מכניס תחת המשתנים שהם צריכים להכתב תחת מרכאות (למעט ערכים שהם מספרים מסוג INT שבהם אין צורך להבדיל)