F
F
frasero2021-06-13 17:23:05
Python
frasero, 2021-06-13 17:23:05

TypeError: solve() takes 0 positional arguments but 3 were given how to fix???

There is a code:

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() # постійне відображення головного вікна


And there is an error:

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

What should I do? How to fix it?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vindicar, 2021-06-13
@frasero

Think with your head. Which solve() are you trying to call?
sols=solve([fx,fy],x,y)
From which module? Because you have a function
def solve():
And the program already sees only your function.
So
1. rename your function
2. try not to do from xxx import * . A complete mess with this approach, as you can see. It's better to call sympy.solve() explicitly. The same applies to other modules.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question