小编Rob*_*ray的帖子

在Python 3.4中按日期排序字典列表

我有一个这样的词典列表,但有更多的词典:

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的关键字,例如sortedlambda而不进行自定义排序功能?我一直在查看可选参数中的sorted 文档和用法.lambdakey

python arrays sorting dictionary python-3.x

7
推荐指数
1
解决办法
1731
查看次数

在Python 3.4中将datetime.time转换为datetime.timedelta

我试图转换两个"持续时间",但我目前收到的是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 time datetime timedelta python-3.x

7
推荐指数
2
解决办法
1万
查看次数

你怎么能增加Python中的最大递归深度?

今天类中递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加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 stack-overflow recursion

6
推荐指数
2
解决办法
2万
查看次数

为什么Python扩展输出[[...]]

我的讲师在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只计算[[[]]]

什么是延伸做什么?什么...意思?

python list python-3.x

6
推荐指数
1
解决办法
66
查看次数

在 Tkinter Entry 上绑定多个事件?

我想捕获一个人输入密码所花费的时间(以毫秒为单位),即从第一次按键到该人按下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)

我遇到的问题是我不能够绑定callback1callback2pass1。我想要的是当一个人按下他们密码的第一个键时,start设置为当前时间,而当人按下时Enter end初始化为当前时间。我希望这两个人能给我一个大概的时间。

我如何修改上面的程序来完成我想要的?谢谢。

python tkinter key-bindings

5
推荐指数
1
解决办法
5757
查看次数

tkinter - 创建大小由像素尺寸定义的标签小部件(包含文本)

我正在尝试制作一个 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 倍。

使用单个框架作为每个“标签”,然后创建标签小部件作为这些框架的子级也不起作用,因为框架只是调整大小以适合标签。我的问题是:有没有办法创建按像素尺寸大小的包含文本的标签?

python label tkinter python-3.x

2
推荐指数
1
解决办法
2万
查看次数

如何使用tkinter pack()方法将小部件放在下一行?

如何使用tkinter pack()方法将小部件放在下一行?我用过pack(side = LEFT)但我不能像我上传的图片那样。pack(side = LEFT)仅剩...我不能放下一行小部件。我想知道..

[我不能使用tkinter ..单击以显示该图像]

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 tkinter

2
推荐指数
1
解决办法
4765
查看次数