gpt4 book ai didi

python - 未绑定(bind)本地错误 : local variable 'output' referenced before assignment

转载 作者:行者123 更新时间:2023-11-28 18:33:37 25 4
gpt4 key购买 nike

我必须为学校的生物课编写一个程序。它应该“翻译”四个字母 A、C、U 和 G 的三重组合 [X 代表 A、C、U 和 G 可以站在那里的可能性]。 GCX 就是一个例子。GCX 是丙氨酸的三联体。

程序应该获取输入(三联体)并在我的 GUI (tkinter) 的标签中打印该三联体的氨基酸。

为了简化操作,我只包含了 GCX 和 Alanine 的示例 - 即使我在条目中键入“gcx”,它也应该在标签中打印“Alanine [Ala]”。

from tkinter import *
import tkinter as tk

# Interface Construction

# Basic Interface
root = Tk()
root.title("Genetic Translator")
root.geometry("300x175")

# Solid Label "Information for Input"
s_label2 = Label(root, text = "\nInput Tripplet which decodes for an amino acid:\n")
s_label2.pack()

# Mainentry line (tripplet = trip)
trip = Entry(root)
trip.pack()

# .upper() Function
trip = str(trip)
trip = trip.upper()

# Output Function (Trans: trip -in- AS)
def Input():
output = tk.StringVar(output)
o_screen.configure(text = (output.get()))

if trip == "GCX":
output = "Alanine [Ala]"
Input()
else:
output = "Unknown tripplet!"

# Space Label 1
space_label1 = Label(root)
space_label1.pack()

# Button "Confirm"
mainbutton = Button(root, text = "Confirm", command = Input)
mainbutton.pack()

# Space Label 2
space_label2 = Label(root)
space_label2.pack()

# Output Screen
o_screen = Label(root)
o_screen.pack()

# Mainloop function for Interface Options
mainloop()

最佳答案

当您在函数内部创建局部变量输出并在创建之前尝试访问它时,您的代码出错。更改函数中的名称将修复错误:

def Input():
out = tk.StringVar(output)
o_screen.configure(text = (out.get()))

这意味着您在 if/else block 中创建的全局 output 将被使用,但您的代码仍然不会执行您想要的操作。

使用字典将输入映射到输出,从条目中获取文本要容易得多:

root = Tk()
root.title("Genetic Translator")
root.geometry("300x175")

# Solid Label "Information for Input"
s_label2 = Label(root, text = "\nInput Tripplet which decodes for an amino acid:\n")
s_label2.pack()

trip = Entry(root)
trip.pack()


output = {"GCX":"Alanine [Ala]"}
# Output Function (Trans: trip -in- AS)
def Input():
o_screen.configure(text=(output.get(trip.get(),"Unknown tripplet!")))

# Space Label 1
space_label1 = Label(root)
space_label1.pack()

# Button "Confirm"
mainbutton = Button(root, text = "Confirm", command = Input)
mainbutton.pack()

# Space Label 2
space_label2 = Label(root)
space_label2.pack()

# Output Screen
o_screen = Label(root)
o_screen.pack()

# Mainloop function for Interface Options
root.mainloop()

使用 "Unknown tripplet!" 作为 dict.get 的默认参数意味着如果用户输入任何你没有的东西作为你的字典中的键意味着将被显示。

关于python - 未绑定(bind)本地错误 : local variable 'output' referenced before assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com