【发布时间】:2017-04-14 10:31:25
【问题描述】:
我是一名 A-level 学生,正在编写他的计算机课程。我的一小部分代码接受输入,将它们变成时间。早上 8 点显示如下: 08 ,因为这就是 SQLite 喜欢的方式。但是,将其转换为日期时,我在标题中收到错误消息:
_tkinter.TclError: expected floating-point number but got "08" (looks like invalid octal number)
这也发生在 09 上,但不会发生在 06 或 07 上。
代码:
variable_start = IntVar(root)
variable_start.set("Select Start Time")
option_add_start = ttk.Combobox(window1, textvariable = variable_start,width = 20, state = 'readonly')
option_add_start['values'] = ("06", "07", "08", "09", "10", "11", "12", "13", "14", "15",
"16", "17", "18","19", "20")
hour1 = variable_start.get()
min1 = variable_start_min.get()
starttimehour = str(datetime.time(hour1,min1,second))
这与我的数据类型有关吗?我不确定如何解决它。
【问题讨论】:
-
能否请您发布您的完整代码,包括您如何定义变量
hour1、min1等? -
@pkqxdd hour1 和 min1 都没有明确定义为某种数据类型,所以我猜它们是字符。我的代码不是很整洁,这就是导致我认为的问题的原因。这只是我的程序的一部分,其他模块不会影响这个,但是如果你想要我的完整代码,那么我会提供一个很长的链接。
-
您是否 100% 确定您使用的是 Python 3.x? Python 2 有
0作为前缀表示八进制数(参见 here),但 3.x 不认为这种形式是有效的(它使用0o表示八进制数)。 -
@Delioth 是的,我 100% 在 python 3 中工作,确切地说是 python 3.6.1。
标签: python-3.x tkinter