@frasero

TypeError: solve() takes 0 positional arguments but 3 were given как исправить???

Есть код:

from sympy import *
from tkinter import *
from tkinter.ttk import Frame, Button, Style
import numpy as np
from PIL import ImageTk, Image

def solve():
    window1 = Tk() # вторинне вікно
    
    window1.title("Result") # назва вторинного вікна
    window1.geometry('500x500') # розмір вторинного вікна
    
    
    n = int(cin.get()) # зчитування стартового капіталу
    x, y = symbols( ' x y ' ) # переведення х та у в символьний вигляд
    f = ln(n - x - y) + (3/5) * ln((6/5) * x) + (9/25) * ln((25/16) * y) # символьний запис цільвої функції
    fout = "Функція, яку аналізують: f = " + str(f)
    labelf = Label(window1, text = fout) # текстове поле для того, що вище
    labelf.pack(padx = 10, pady = 10) # розміщення текстового поля
    
    fx = f.diff(x) # часткова похідна по х
    fy = f.diff(y) # часткова похідна по у
    
    extout = "Необхідна умова екстремуму:\ndf/dx = " + str(fx) + "\ndf/dy = " + str(fy)
    labelext = Label(window1, text = extout) # текстове поле для того, що вище
    labelext.pack(padx = 10, pady = 5) # розміщення текстового полня
    
    try:
        sols=solve([fx,fy],x,y)
    except:
        labeexcept = Label(window1, text = "Функція не диференційована")
        labeexcept.pack(padx = 10, pady = 10)
        raise SystemExit(1)
     
    point = "Стаціонарна точка М" + sols
    labelpoint = Label(window1, text = point)
    labelpoint.pack(padx = 10, pady = 10)
    
    window1.mainloop() # постійне відображення вторинного вікна

def closewin():
    window.destroy() # фукнкція для закриття вікна

window = Tk() # головне вікно

window.title("Main Model") # назва головного вікна
window.geometry('500x350') # розміри головного вікна

label3 = Label(window, text = 'Функція корисності') # текстове поле
label3.pack(padx = 100, pady = 10) # розміщення текстового поля

img = ImageTk.PhotoImage(Image.open("Formula.gif")) # формула
label1 = Label(image = img)
label1.pack(padx = 100, pady = 10) # розміщення формули

label2 = Label(window, text = 'Введіть ваш стартовий капітал ') # текстове поле
label2.pack(padx = 100, pady = 10) # розміщення текстового поля

cin = Entry(window, width = 50, borderwidth = 1) # поле для вводу
cin.pack(padx = 100, pady = 10) # розміщення цього поля

res = Button( window, text = "Розрахувати", command = solve) # кнопка
res.pack(side = LEFT,padx = 70, pady = 10) # розміщення кнопки

close = Button(window, text = "Закрити", command = closewin) # кнопка
close.pack(side=RIGHT, padx = 70, pady = 10) # розміщення кнопки

window.mainloop() # постійне відображення головного вікна


И есть ошибка:

runfile('C:/Users/frasero/Desktop/untitled0.py', wdir='C:/Users/frasero/Desktop')
An exception has occurred, use %tb to see the full traceback.

Traceback (most recent call last):

File "C:\Users\frasero\Desktop\untitled0.py", line 29, in solve
sols=solve([fx,fy],x,y)

TypeError: solve() takes 0 positional arguments but 3 were given

During handling of the above exception, another exception occurred:

SystemExit: 1

Restarting kernel...

Что делать? Как это исправить?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Подумать головой. Какой именно solve() ты пытаешься вызвать?
sols=solve([fx,fy],x,y)
Из какого модуля? Потому что у тебя есть функция
def solve():
И программа уже видит только твою функцию.

Поэтому
1. переименуй свою функцию
2. старайся не делать from xxx import *. Сплошная морока с таким подходом, как видишь. Лучше явно вызвать sympy.solve(). То же касается остальных модулей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы