我有一个这样的词典列表,但有更多的词典:
x = [{"duration":datetime.time(5,30),"date":datetime.date(2016,02,13)},{"duration":datetime.time(3,30),"date":datetime.date(2016,02,11)},{"duration":datetime.time(2,0),"date":datetime.date(2016,02,16)}]
Run Code Online (Sandbox Code Playgroud)
有没有一种方法排序这个列表中升顺序date使用Python的关键字,例如sorted和lambda而不进行自定义排序功能?我一直在查看可选参数中的sorted 文档和用法.lambdakey
我试图转换两个"持续时间",但我目前收到的是TypeError由于一个是一个datetime.timedelta和一个是datetime.time:
TypeError: unorderable types: datetime.time() <= datetime.timedelta()
Run Code Online (Sandbox Code Playgroud)
将a转换datetime.time为a 的有效方法是datetime.timedelta什么?
我已经检查了文档,并且没有内置的方法来在这两种类型之间进行转换.
今天类中递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加Python中的最大递归深度?写了一个快速函数,用于使用递归查找n的阶乘:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)
它可以应对阶乘(994)而不是阶乘(995).给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
Run Code Online (Sandbox Code Playgroud)
显然,可以迭代地找到更高的阶乘,但是,为了论证和阴谋,最大递归深度可以增加吗?
我的讲师在python上设置了几个问题,这个让我感到困惑,我不明白发生了什么.
x = [[]]
x[0].extend(x)
Run Code Online (Sandbox Code Playgroud)
Python告诉我,在运行x之后,是[[...]]什么...意思?
当下面的结果只是时,我会更加困惑 [[]]
y = [] # equivalent to x[0]
x = [[]]
y.extend(x)
Run Code Online (Sandbox Code Playgroud)
如果y计算[[]]得不应该x只计算[[[]]]?
什么是延伸做什么?什么...意思?
我想捕获一个人输入密码所花费的时间(以毫秒为单位),即从第一次按键到该人按下Enter按钮的时间。为了实现这一点,我有以下代码:
import tkinter as tk
import time
class MyApp(object):
start=0.0
end=0.0
total_time=0.0
def __init__(self, master):
self.pass1 = tk.Entry(master,show="*")
self.pass1.bind('<Key>', self.callback1)
self.pass1.pack()
def callback1(self, event): # Called Only by first key press
self.start=time.time()*1000.0 # start variable must be modified ONLY by first key press
def callback2(self,event): # called by Enter Key press
self.end=time.time()*1000.0
self.total_time=self.start-self.end
print(self.totaltime)
root = tk.Tk()
app = MyApp(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不能够绑定callback1和callback2上pass1。我想要的是当一个人按下他们密码的第一个键时,start设置为当前时间,而当人按下时Enter end初始化为当前时间。我希望这两个人能给我一个大概的时间。
我如何修改上面的程序来完成我想要的?谢谢。
我正在尝试制作一个 tkinter 标签,其中包含宽度和高度由像素尺寸定义的文本。很明显,包含文本大小的标签小部件是根据文档中的文本大小定义的:
如果标签显示文本,则以文本单位给出大小。如果标签显示图像,则尺寸以像素(或屏幕单位)为单位。如果 size 设置为 0 或省略,则根据标签内容计算。
我已经尝试使用这些信息来实现我想要做的事情。我想在创建时间表应用程序时创建固定宽度 700 和可变高度的标签。这是我迄今为止尝试过的示例:
import tkinter as tk
root = tk.Tk()
root.geometry("800x600")
height = 20
label = tk.Label(root,width=700,bg="white",text="test",borderwidth=0,font=("Calibri",height))
label.place(x=10,y=10)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这几乎达到了我想要的高度,但我希望高度为 1 像素height = 1,但实际上是 5 像素(我的视力非常好!)。至于宽度,它完全脱离了屏幕,因为它是字符宽度的 700 倍。
使用单个框架作为每个“标签”,然后创建标签小部件作为这些框架的子级也不起作用,因为框架只是调整大小以适合标签。我的问题是:有没有办法创建按像素尺寸大小的包含文本的标签?
如何使用tkinter pack()方法将小部件放在下一行?我用过pack(side = LEFT)但我不能像我上传的图片那样。pack(side = LEFT)仅剩...我不能放下一行小部件。我想知道..
[
]
from tkinter import *
app = Tk()
app.title('')
app.geometry("800x1200")
Label(app, text = 'a:').pack(side= LEFT)
a = Entry(app)
a.insert(0, "")
a.pack(side= LEFT)
Label(app, text = 'b:').pack(side= LEFT)
b = Entry(app)
b.insert(0, "")
b.pack(side= LEFT)
Label(app, text = 'c:').pack(side= LEFT)
c = Entry(app)
c.insert(0, "")
c.pack(side= LEFT)
Label(app, text = 'd:').pack(side= LEFT)
d = Entry(app)
d.insert(0, "")
d.pack(side= LEFT)
Label(app, text = 'e:').pack(side= LEFT)
e = Entry(app)
e.insert(0, "")
e.pack(side= LEFT)
Label(app, text = …Run Code Online (Sandbox Code Playgroud) python ×7
python-3.x ×4
tkinter ×3
arrays ×1
datetime ×1
dictionary ×1
key-bindings ×1
label ×1
list ×1
recursion ×1
sorting ×1
time ×1
timedelta ×1