tkinter/datetime/weekday/dictionary/ type error : strptime() argument 1 must be str, not entry
tkinter/datetime/weekday/dictionary/ type error : strptime() argument 1 must be str, not entry
在函数(def wky(event))中,没有'global ab',它会发生下一个错误
消息:'UnboundLocalError'。然后,我用了那个词(global ab)。
但是,我想知道那句话是必要的吗?没有声明全局
在函数中,我们不能使用局部变量吗?
在函数中,有错句吗?我用的是词典。我认为
适当的值出现在字典中。但是,当我 运行 下面的代码时,
它发生了错误信息。我想念什么?
综上所述,这段代码是label的值来自于ab变量。
ab变量的初始值为None。用户立即输入任何值,
然后在按“Enter”键后自动插入标签的值。
希望大家多多指教~^^
下面是我写的代码
from tkinter import *
from datetime import datetime
root = Tk()
root.title("Moving")
root.geometry("640x480")
root.resizable(False, False)
def wky(event):
global ab
ab = datetime.strptime(ab, "%Y-%m-%d")
dateDict = {0:"Mon", 1:"Tue", 2:"Wed", 3:"Thu", 4:"Fri", 5:"Sat", 6:"Sun"}
dateDict[ab.weekday()]
label.config(text = dateDict[ab.weekday()])
ab = Entry(root)
ab.bind("<Return>", wky)
ab.pack()
label=Label(root)
label.pack()
root.mainloop()
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python310\lib\tkinter\__init__.py", line 1921, in __call__return self.func(*args)
File "c:\Users\JS\Desktop\PYTHONWORKSPACE\movingproject_name.py", line 145, in wky
ab = datetime.strptime(ab, "%Y-%m-%d")
TypeError: strptime() argument 1 must be str, not Entry
如错误所述,ab
是一个 Entry
小部件,不能在 strptime()
中使用。您需要改用 Entry
小部件中的值。
最好使用另一个局部变量来存储 strptime()
的结果,而不是使用 ab
:
def wky(event):
date = datetime.strptime(ab.get(), "%Y-%m-%d")
dateDict = {0:"Mon", 1:"Tue", 2:"Wed", 3:"Thu", 4:"Fri", 5:"Sat", 6:"Sun"}
#dateDict[date.weekday()] # this line is useless
label.config(text=dateDict[date.weekday()])
在函数(def wky(event))中,没有'global ab',它会发生下一个错误 消息:'UnboundLocalError'。然后,我用了那个词(global ab)。 但是,我想知道那句话是必要的吗?没有声明全局 在函数中,我们不能使用局部变量吗?
在函数中,有错句吗?我用的是词典。我认为 适当的值出现在字典中。但是,当我 运行 下面的代码时, 它发生了错误信息。我想念什么?
综上所述,这段代码是label的值来自于ab变量。 ab变量的初始值为None。用户立即输入任何值, 然后在按“Enter”键后自动插入标签的值。
希望大家多多指教~^^
下面是我写的代码
from tkinter import *
from datetime import datetime
root = Tk()
root.title("Moving")
root.geometry("640x480")
root.resizable(False, False)
def wky(event):
global ab
ab = datetime.strptime(ab, "%Y-%m-%d")
dateDict = {0:"Mon", 1:"Tue", 2:"Wed", 3:"Thu", 4:"Fri", 5:"Sat", 6:"Sun"}
dateDict[ab.weekday()]
label.config(text = dateDict[ab.weekday()])
ab = Entry(root)
ab.bind("<Return>", wky)
ab.pack()
label=Label(root)
label.pack()
root.mainloop()
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python310\lib\tkinter\__init__.py", line 1921, in __call__return self.func(*args)
File "c:\Users\JS\Desktop\PYTHONWORKSPACE\movingproject_name.py", line 145, in wky
ab = datetime.strptime(ab, "%Y-%m-%d")
TypeError: strptime() argument 1 must be str, not Entry
如错误所述,ab
是一个 Entry
小部件,不能在 strptime()
中使用。您需要改用 Entry
小部件中的值。
最好使用另一个局部变量来存储 strptime()
的结果,而不是使用 ab
:
def wky(event):
date = datetime.strptime(ab.get(), "%Y-%m-%d")
dateDict = {0:"Mon", 1:"Tue", 2:"Wed", 3:"Thu", 4:"Fri", 5:"Sat", 6:"Sun"}
#dateDict[date.weekday()] # this line is useless
label.config(text=dateDict[date.weekday()])