@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...

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

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

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

Похожие вопросы