Python **或pow()的操作数类型不受支持:';方法';和';int'; 从tkinter导入* 输入数学 导入系统 def quit(): root.destroy() 定义a_b_c(): 打印a() 打印b() 列印(c) 计算() 返回 def print_a(): get_a=a.get() 打印=标签(根,文本=获取)。网格(行=8,列=1) 返回 def print_b(): get_b=b.get() 打印=标签(根,文本=获取)。网格(行=12,列=1) 返回 def print_c(): get_c=c.get() 打印=标签(根,文本=获取)。网格(行=16,列=1) 返回 root=Tk() a=StringVar() b=StringVar() c=StringVar() root.title('解二次方程') 退出按钮(root,text=“quit”,command=quit).grid(行=1,列=1) go_b=按钮(root,text=“go”,command=a_b_c).网格(行=1,列=2) welcome=Label(root,text=“欢迎使用GlaDOS解二次方程”,font=(“Helvetica”,13)) 欢迎使用。网格(行=2,列=1) 说明=标签(根、文本)="那么我该如何使用这个程序呢?这是你可能会问自己的问题。例如,你有一个方程2x^2+5x+8=0。所以2x^2是a,但你不把整个东西放在你的身上,而是把从一开始的2放在里面。下一件事是b\n在这种情况下,b=5,c等于8。一旦你把所有的数字都放在框中,\n点击“开始”按钮。记住你是d不需要x的,字体=(“Helvetica”,11)) 说明.网格(行=3,列=1) line=Label(root,text=“**********************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=4,列=1) 输入a=标签(root,text=“请在此处输入a”,font=(“Helvetica”,11))。网格(行=6,列=1) 条目a=条目(根,textvariable=a)。网格(行=7,列=1) line=Label(root,text=“*******************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=9,列=1) 输入b=标签(root,text=“请在此处输入b”,font=(“Helvetica”,11))。网格(行=10,列=1) entry_b=entry(根,textvariable=b).grid(行=11,列=1) line=Label(root,text=“*******************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=13,列=1) 输入c=标签(根,text=“请在此处输入c”,font=(“Helvetica”,11))。网格(行=14,列=1) 条目c=条目(根,textvariable=c).网格(行=15,列=1) 两个a=a 2_b=b 两个c=c d=两个b**2-4*两个a*两个c def计算(): 如果d

Python **或pow()的操作数类型不受支持:';方法';和';int'; 从tkinter导入* 输入数学 导入系统 def quit(): root.destroy() 定义a_b_c(): 打印a() 打印b() 列印(c) 计算() 返回 def print_a(): get_a=a.get() 打印=标签(根,文本=获取)。网格(行=8,列=1) 返回 def print_b(): get_b=b.get() 打印=标签(根,文本=获取)。网格(行=12,列=1) 返回 def print_c(): get_c=c.get() 打印=标签(根,文本=获取)。网格(行=16,列=1) 返回 root=Tk() a=StringVar() b=StringVar() c=StringVar() root.title('解二次方程') 退出按钮(root,text=“quit”,command=quit).grid(行=1,列=1) go_b=按钮(root,text=“go”,command=a_b_c).网格(行=1,列=2) welcome=Label(root,text=“欢迎使用GlaDOS解二次方程”,font=(“Helvetica”,13)) 欢迎使用。网格(行=2,列=1) 说明=标签(根、文本)="那么我该如何使用这个程序呢?这是你可能会问自己的问题。例如,你有一个方程2x^2+5x+8=0。所以2x^2是a,但你不把整个东西放在你的身上,而是把从一开始的2放在里面。下一件事是b\n在这种情况下,b=5,c等于8。一旦你把所有的数字都放在框中,\n点击“开始”按钮。记住你是d不需要x的,字体=(“Helvetica”,11)) 说明.网格(行=3,列=1) line=Label(root,text=“**********************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=4,列=1) 输入a=标签(root,text=“请在此处输入a”,font=(“Helvetica”,11))。网格(行=6,列=1) 条目a=条目(根,textvariable=a)。网格(行=7,列=1) line=Label(root,text=“*******************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=9,列=1) 输入b=标签(root,text=“请在此处输入b”,font=(“Helvetica”,11))。网格(行=10,列=1) entry_b=entry(根,textvariable=b).grid(行=11,列=1) line=Label(root,text=“*******************************************************************************************************************************************************************************************************************************************************************************************************************”)。网格(行=13,列=1) 输入c=标签(根,text=“请在此处输入c”,font=(“Helvetica”,11))。网格(行=14,列=1) 条目c=条目(根,textvariable=c).网格(行=15,列=1) 两个a=a 2_b=b 两个c=c d=两个b**2-4*两个a*两个c def计算(): 如果d,python,python-3.x,math,Python,Python 3.x,Math,为什么它说**或pow()的操作数类型不受支持:method或int?有人能帮我修改它,使其适用于学校吗?老师不能帮我。我正在尝试制作一个程序,帮助你解二次方程,底部的部分可以工作(def计算) 感谢您的帮助:)您正在分配一些值: from tkinter import * import math import sys def quit(): root.destroy() def a_b_c(): print_a() print_b() print_c() calcula

为什么它说**或pow()的操作数类型不受支持:method或int?有人能帮我修改它,使其适用于学校吗?老师不能帮我。我正在尝试制作一个程序,帮助你解二次方程,底部的部分可以工作(def计算)
感谢您的帮助:)

您正在分配一些值:

from tkinter import *
import math
import sys

def quit():
  root.destroy()

def a_b_c():
  print_a()
  print_b()
  print_c()
  calculation()
  return

def print_a():
  get_a = a.get()
  printing_a = Label(root, text=get_a).grid(row=8, column=1)
  return

def print_b():
  get_b = b.get()
  printing_b =Label(root, text=get_b).grid(row=12, column=1)
  return

def print_c():
  get_c = c.get()
  printing_c =Label(root, text=get_c).grid(row=16, column=1)
  return


root = Tk()
a = StringVar()
b = StringVar()
c = StringVar()

root.title('Solving Quadratic Equations')

quit_b = Button(root, text="quit",command=quit).grid(row=1, column=1)
go_b = Button(root, text="go", command=a_b_c).grid(row=1, column=2)
welcome = Label(root, text="Welcome to Solving Quadratic Equations with GlaDOS",font=("Helvetica",13))
welcome.grid(row=2, column=1)


instructions = Label(root, text="So how do i use this program? is what you may ask yourself. So, for example, \n you have the equation 2x^2+5x+8=0. So the 2x^2 is a but you don't put the\n whole thing in you just but the 2 from the start in. The next thing is b\n in this case b = 5 and c is equal to 8. Once you have all you number in the boxes \n hit the go button. Remember you don't need the x's. ", font=("Helvetica",11))
instructions.grid(row=3, column=1)

line = Label(root, text="************************************************************************************************************").grid(row=4, column=1)

input_a = Label(root, text="Pls input A here", font=("Helvetica",11)).grid(row=6, column=1)
entry_a = Entry(root,textvariable=a).grid(row=7,column=1)

line = Label(root, text="************************************************************************************************************").grid(row=9, column=1)

input_b = Label(root, text="Pls input B here", font=("Helvetica",11)).grid(row=10, column=1)
entry_b = Entry(root,textvariable=b).grid(row=11,column=1)

line = Label(root, text="*************************************************************************************************************").grid(row=13, column=1)
input_c = Label(root, text="Pls input C here", font=("Helvetica",11)).grid(row=14, column=1)
entry_c = Entry(root,textvariable=c).grid(row=15,column=1)

two_a = a.get
two_b = b.get
two_c = c.get

d = two_b**2-4*two_a*two_c
def calculation():
  if d < 0:
  no_solution = Label(root, text="This equation has no real solution").grid(row=19, column=1)
  elif d == 0:
  x = (-two_b+math.sqrt(two_b**2-4*two_a*two_c))/2*two_a
  one_solution = Label(root, text="This equation has one solutions: {}".format(x)).grid(row=20, column=1)
  else:
  x1 = (-two_b+math.sqrt((two_b**2)-(4*(two_a*two_c))))/(2*two_a)
  x1 = (-two_b-math.sqrt((two_b**2)-(4*(two_a*two_c))))/(2*two_a)
  two_solution= label(root, text="This equation has two solutions: {} or {} ".format(x1,x2)).grid(row=21, colum=1)

root.mainloop()
然后进行计算:

two_a = a.get
two_b = b.get
two_c = c.get
但是,
a.get
是一种检索该
StringVar
的值的方法。要实际调用它并检索该值,您必须……嗯,调用它,并使用括号:

d = two_b**2-...
此外,您还将拥有字符串。使用
int
float
将它们转换为整数或浮点数:

two_a = a.get()

然后,您的算术将按预期运行。

请阅读并研究此帮助页,以便了解。 这是一个基于您发布的代码的mcve。它在最后一行生成完全相同的错误消息

two_a = int(a.get())
# or:
two_a = float(a.get())

将方法提升为幂是毫无意义的。您需要调用()方法并将字符串转换为数字。使用DoubleVar或IntVar而不是StringVar或通过传递get to float()或int()的结果来实现后者在对其进行运算之前。

错误指的是哪一行?计算中的代码缩进不正确。
import tkinter as tk
root = tk.Tk()
b = tk.StringVar(root)
two_b = b.get
d = two_b**2