Tkinter 控件详细介绍

2023-11-12

Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下:

窗口部件及说明:

Button:
一个简单的按钮,用来执行一个命令或别的操作。

Canvas:
组织图形。这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。

Checkbutton:
代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换。

Entry:
文本输入域。

Frame:
一个容器窗口部件。帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。

Label:
显示一个文本或图象。

Listbox:
显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。

Menu:
菜单条。用来实现下拉和弹出式菜单。

Menubutton:
菜单按钮。用来实现下拉式菜单。

Message:
显示一文本。类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。

Radiobutton:
代表一个变量,它可以有多个值中的一个。点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。

Scale:
允许你通过滑块来设置一数字值。

Scrollbar:
为配合使用canvas, entry, listbox, and text窗口部件的标准滚动条。

Text:
格式化文本显示。允许你用不同的样式和属性来显示和编辑文本。同时支持内嵌图象和窗口。

Toplevel:
一个容器窗口部件,作为一个单独的、最上面的窗口显示。

注意在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。

所有这些窗口部件提供了Misc和几何管理方法、配置管理方法和部件自己定义的另外的方法。此外,Toplevel类也提供窗口管理接口。这意味一个典型的窗口部件类提供了大约150种方法。

Button窗口部件

Button(按钮)窗口部件是一个标准的Tkinter窗口部件,用来实现各种按钮。按钮能够包含文本或图象,并且你能够将按钮与一个Python函数或方法相关联。当这个按钮被按下时,Tkinter自动调用相关联的函数或方法。

按钮仅能显示一种字体,但是这个文本可以跨行。另外,这个文本中的一个字母可以有下划线,例如标明一个快捷键。默认情况,Tab键用于将焦点移动到一个按钮部件。

一、那么什么时候用按钮部件呢?

简而言之,按钮部件用来让用户说“马上给我执行这个任务”,通常我们用显示在按钮上的文本或图象来提示。按钮通常用在工具条中或应用程序窗口中,并且用来接收或忽略输入在对话框中的数据。

关于按钮和输入的数据的配合,可以参看Checkbutton和Radiobutton部件。

二、样式

普通的按钮很容易被创建,仅仅指定按钮的内容(文本、位图、图象)和一个当按钮被按下时的回调函数即可:
Button(master, text="OK", command=self.ok)

没有回调函数的按钮是没有用的,当你按下这个按钮时它什么也不做。你可能在开发一个应用程序的时候想实现这种按钮,比如为了不干扰你的beta版的测试者:
Button(master, text="Help", state=DISABLED)

如 果你没有指定尺寸,按钮的大小将正好能够容纳它的内容。你可以用padx和pady选项来增加内容与按钮边框的间距。你也可以用height和width 选项来显式地设置按钮的尺寸。如果你在按钮中显示文本,那么这些选项将以文本的单位为定义按钮的尺寸。如果你替而代之显示图象,那么按钮的尺寸将是象素 (或其它的屏幕单位)。你实际上甚至能够用象素单位来定义文本按钮的尺寸,但这可能带来意外的结果。下面是指定尺寸的一段例子代码:
Frame(master, height=32, width=32)
f.pack_propagate(0) don't shrink
Button(f, text="Sure!")
b.pack(fill=BOTH, expand=1)


按钮能够显示多行文本(但只能用一种字体)。  你可以使用多行或wraplength选项来使按钮自己调整文本。当调整文本时,使用anchor,justify,也可加上padx选项来得到你所希望的格式。一个例子如下:
Button(master, text=longtext, anchor=W, justify=LEFT, padx=2)

为了使一个普通的按钮看起来像凹入的,例如你想去实现某种类型的工具框,你可简单地将relief的值从"RAISED"改变为"SUNKEN:
b.config(relief=SUNKEN)

你也可能想改变背景。注意:一个大概更好的解决方案是使用一个Checkbutton或Radiobutton其indicatoron选项的值设置为false:
Checkbutton(master, image=bold, variable=var, indicatoron=0)

三、方法

Button窗口部件支持标准的Tkinter窗口部件接口,加上下面的方法:

flash():频繁重画按钮,使其在活动和普通样式下切换。

invoke() 调用与按钮相关联的命令。

下面的方法与你实现自己的按钮绑定有关:

tkButtonDown(), tkButtonEnter(), tkButtonInvoke(), tkButtonLeave(), tkButtonUp() 
这些方法可以用在定制事件绑定中,所有这些方法接收0个或多个形参。

四、选项

Button窗口部件支持下面的选项:

activebackground, activeforeground
类型:颜色;
说明:当按钮被激活时所使用的颜色。

anchor
类型:常量;
说明:控制按钮上内容的位置。使用N, NE, E, SE, S, SW, W, NW, or CENTER这些值之一。默认值是CENTER。

background (bg), foreground (fg)
类型:颜色;
说明:按钮的颜色。默认值与特定平台相关。

bitmap
类型:位图;
说 明:显示在窗口部件中的位图。如果image选项被指定了,则这个选项被忽略。下面的位图在所有平台上都有 效:error, gray75, gray50, gray25, gray12, hourglass, info, questhead, question, 和 warning.
Tkinter类之窗口部件类
这 后面附加的位图仅在Macintosh上有 效:document, stationery, edition, application, accessory, folder, pfolder, trash, floppy, ramdisk, cdrom, preferences, querydoc, stop, note, 和 caution.

你也可以从一个XBM文件中装载位图。只需要在XBM文件名前加一个前缀@,例如"@sample.xbm"。

borderwidth (bd)
类型:整数;
说明:按钮边框的宽度。默认值与特定平台相关。但通常是1或2象素。

command
类型:回调;
说明:当按钮被按下时所调用的一个函数或方法。所回调的可以是一个函数、方法或别的可调用的Python对象。

cursor
类型:光标;
说明:当鼠标移动到按钮上时所显示的光标。

default
类型:常量;
说明:如果设置了,则按钮为默认按钮。注意这个语法在Tk 8.0b2中已改变。

disabledforeground
类型:颜色;
说明:当按钮无效时的颜色。

font
类型:字体;
说明:按钮所使用的字体。按钮只能包含一种字体的文本。

highlightbackground, highlightcolor
类型:颜色;
说明:控制焦点所在的高亮边框的颜色。当窗口部件获得焦点的时候,边框为highlightcolor所指定的颜色。否则边框为highlightbackground所指定的颜色。默认值由系统所定。

highlightthickness
类型:距离;
说明:控制焦点所在的高亮边框的宽度。默认值通常是1或2象素。

image
类型:图象;
说明:在部件中显示的图象。如果指定,则text和bitmap选项将被忽略。

justify
类型:常量;
说明:定义多行文本如何对齐。可取值有:LEFT, RIGHT, 或 CENTER。

padx, pady
类型:距离;
说明:指定文本或图象与按钮边框的间距。

relief
类型:常量;
说明:边框的装饰。通常按钮按下时是凹陷的,否则凸起。另外的可能取值有GROOVE, RIDGE, 和 FLAT。

state
类型:常量;
说明:按钮的状态:NORMAL, ACTIVE 或 DISABLED。默认值为NORMAL。

takefocus
类型:标志;
说明:表明用户可以Tab键来将焦点移到这个按钮上。默认值是一个空字符串,意思是如果按钮有按键绑定的话,它可以通过所绑定的按键来获得焦点。

text
类型:字符串;
说明:显示在按钮中的文本。文本可以是多行。如果bitmaps或image选项被使用,则text选项被忽略。

textvariable
类型:变量;
说明:与按钮相关的Tk变量(通常是一个字符串变量)。如果这个变量的值改变,那么按钮上的文本相应更新。

underline
类型:整数;
说明:在文本标签中哪个字符加下划线。默认值为-1,意思是没有字符加下划线。

width, height
类型:距离;
说明:按钮的尺寸。如果按钮显示文本,尺寸使用文本的单位。如果按钮显示图象,尺寸以象素为单位(或屏幕的单位)。如果尺寸没指定,它将根据按钮的内容来计算。

wraplength
类型:距离;
说明:确定一个按钮的文本何时调整为多行。它以屏幕的单位为单位。默认不调整。

Mixins

Tkinter模块提供了相应于Tk中的各种窗口部件类型的类和一定数量的mixin和别的帮助类(mixin是一个类,被设计来使用多态继承与其它的类结合)。当你使用Tkinter时,你不将直接访问mixin类。

一、实施mixins

通过root窗口和窗口部件类,Misc类被用作mixin。它提供了大量的Tk和窗口相关服务,这些服务对所有Tkinter核心窗口部件者有效。这些通过委托完成;窗口部件仅仅直接请求适当的内部对象。

Wm类通过root窗口和顶级窗口部件类被用作mixin。通过委托它提供了窗口管理服务。

使用委托像这样简化你的应用程序代码:一旦你有一窗口部件,你能够使用这个窗口部件的实例的方法访问Tkinter的所有部份。

二、Geometry(几何学)与mixins

Grid,Pack,Place这些类通过窗口部件类被用作mixins。通过委托,它们也提供了访问不同几何管理的支持。
下面是Geometry Mixins的列表及说明:
管理器及说明:

Grid:grid几何管理器允许你通过在一个二维网格中组织窗口部件来创建一个类似表的版面。
Pack:pack几何管理器通过在一个帧中把窗口部件包装到一个父部件中来创建一个版面。为了对窗口部件使用这个几何管理器,我们在这个窗口部件上使用pack方法来集成。
Place:place几何管理器让你显式将一个窗口部件放到给定的位置。要使用这个几何管理器,需使用place方法。

三、窗口部件配置管理
Widget类使用 geometry mixins来混合Misc类,并通过cget和configure方法来增加配置管理,也可以通过一个局部的字典接口。 

窗口部件的配置

要配置一个窗口部件的外观,你用选项比使用方法调用好。典型的选项包括text、color、size、command等等。对于处理选项,所有的核心窗口部件执行同样的配置接口:

配置接口

widgetclass(master, option=value, ...) => widget 
说明:
创 建这个窗口部件的一个实例,这个实例作为给定的master的孩子,并且使用给定的选项。所有的选项都有默认值,因此在简单的情况下,你仅需要指定这个 master。如果你想的话,你也可以不指定master;Tkinter这时会使用最近创建的root窗口作为master。注意这个name选项仅能 在窗口部件被创建时设置。

cget(option) => string 
说明:
返回一个选项的当前值。选项的名字和返回值都是字符串。要得到name选项,使用str(widget)代替。

configure(option=value, ...), config(option=value, ...) 
说明:
设置一个或多个选项(作为关键字参数给定)。
注意一些选项的名字与Python中的保留字相同(class,from等)。要使用这些作为关键字参数,仅需要在这些选项名后添加一下划线(class_,from_)。注意你不能用此方法来设置name选项;name选项只能在窗口部件被创建时设置。

为了方便起见,窗口部件也实现一个局部的字典接口。 __setitem__ 方法映射configure,而__getitem__方法映射cget。你可以使用下面的语法来设置和查询选项:
value widget[option]
widget[option] value
注意每个赋值都导致一个对Tk的调用。如果你希望去改变多个选项,单独地调用(config或configure)去改变它们是一个好的主意。

这下面的字典方法也适用于窗口部件:
keys() => list 
说明:
返回窗口部件中所有可以被设置的选项的一个列表。name选项不包括在这个列表中(它不能通过字典接口被查询或修改)。

向后兼容性

关键字参数在Python1.3时被引入。之前,使用原始的Python字典将选项传递给窗口构造器和configure方法。原代码类似如下:
self.button Button(frame, {"text": "QUIT", "fg": "red", "command": frame.quit})
self.button.pack({"side": LEFT})


关键字参数语法更优雅和少容易发生错误。但是为了与存在的代码兼容,Tkinter仍支持老的语法。在新的程序中你不应再用老的语法,即使是在某些情况下是很有吸引力的。例如,如果你创建了一个定制的窗口部件,它需要沿它的父类传递配置选项,你的代码可能如下:
def __init__(self, master, **kw):
    Canvas.__init__(self, master, kw) 
kw  是一个字典
上面的代码在当前版本的Tkinter下工作的很好,但是它在将来的版本下可能不工作。一个通常的办法是使用apply函数:
def __init__(self, master, **kw):
    apply(Canvas.__init__, (self, master), kw)

这个apply函数使用了一个函数(一个未约束的方法),一个带参数的元组(它必须包括self,因为我们调用一个未约束的方法),一个可选的,提供了关键字参数的字典。

窗口部件的样式之颜色

所有的Tkinter标准窗口部件提供了一套样式设置选项,这让你可以去修改这些窗口部件的外观如颜色、字体和其它的可视外观。

颜色

大部份窗口部件都允许你指定窗口部件和文本的颜色,这可以使用background和foreground选项。要指定颜色,你可以使用颜色名,也可以使用红、绿、蓝颜色组合。

1、颜色名
Tkinter 包括一个颜色数据库,它将颜色名映射到相应的RGB值。这个数据库包括了通常的名称如Red, Green, Blue, Yellow, 和 LightBlue,也可使用外来的如Moccasin,PeachPuff等等。在X window系统上,颜色名由X server定义。你能够找到 一个名为xrgb.txt的文件,它包含了一个由颜色名和相应RGB值组成的列表。在Windows和Macintosh系统上,颜色名表内建于Tk中。

在Windows下,你可以使用Windows系统颜色(用户可以通过控制面板来改变这些颜色):
SystemActiveBorder, SystemActiveCaption, SystemAppWorkspace, SystemBackground, 
SystemButtonFace, SystemButtonHighlight, SystemButtonShadow, SystemButtonText, 
SystemCaptionText, SystemDisabledText, SystemHighlight, SystemHighlightText, 
SystemInactiveBorder, SystemInactiveCaption, SystemInactiveCaptionText, SystemMenu, 
SystemMenuText, SystemScrollbar, SystemWindow, SystemWindowFrame, SystemWindowText。


在Macintosh上,下面的系统颜色是有效的:
SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText, SystemMenu, SystemMenuActive, SystemMenuActiveText, SystemMenuDisabled, SystemMenuText, SystemWindowBody。

颜色名是大小写不敏感的。许多颜色名词与词之间有无格都有效。例如"lightblue",  "light  blue",  和 
"Light  Blue"都是同一颜色。

2、RGB格式

如果你需要显式地指定颜色名,你可以使用如下格式的字符串:
#RRGGBB
RR,  GG,  BB  分别是red,green和blue值的十六进制表示。下面的例子演示了如何将一个颜色三元组转换为

一个Tk颜色格式:
tk_rgb  "#%02x%02x%02x"  (128,  192,  200)

Tk也支持用形如"#RGB"和"rrrrggggbbbb"去分别指定16和65536程度之间的值。

你可以使用窗口部件的winfo_rgb方法来将一个代表颜色的字符串(名字或RGB格式)转换为一个三元组:
rgb  widget.winfo_rgb("red")
red,  green,  blue  rgb[0]/256,  rgb[1]/256,  rgb[2]/256
注意winfo_rgb返回16位的RGB值,范围在0~65535之间。要将它们映射到更通用的0~255范围内,你必须将每个值都除以256(或将它们向右移8位)。  

窗口部件的样式之字体

字体

窗口部件允许你显示文本和指定所使用的字体。所有的窗口部件都提供了合理的默认值,你很少需要去为简单元素如标签和按钮指定字体。

字体通常使用font窗口部件选项指定。Tkinter支持一定数量的不同字体描述类型:
Font descriptors

User-defined font names

System fonts

font descriptors

Tk8.0以前的版本仅X font描述被支持。

1、字体描述
从Tk8.0开始,Tkinter支持独立于平台的字体描述。你可以使用元组来指定一个字体,这个元组包含了一个字体类型名字,一个以磅为单位的高度,代表一个或多个样式的字符串。例如:
("Times", 10, "bold")
("Helvetica", 10, "bold italic")
("Symbol", 8)

要得到默认的尺寸和类型,你可以给出作为单一字符串的字体名。如果这个字体类型名字没有包括空格,你也可以给这个字符串自身增加尺寸和样式:
"Times 10 bold"
"Helvetica 10 bold italic"
"Symbol 8"

在大部份Windows平台上存在如下有效的字体类名:
Arial (相 应 于 Helvetica), Courier New (Courier), Comic Sans MS, Fixedsys, MS Sans Serif, MS Serif, Symbol, System, Times New Roman (Times), 和 Verdana:
Tkinter类之窗口部件类

注意:如果这个字体类型名包含空格,你必须使用上面所描述的元组语法。

有效的样式有normal, bold, roman, italic, underline, and overstrike。

Tk8.0自动映射Courier, Helvetica, 和Times到所有平台上相应的本地字体类型名。此外,在Tk8.0下字体格式不会引起问题,如果Tk不能找出确切的匹配,它会试着找类似的字体,如果失败,Tk就使用特定平台的默认字体。

Tk4.2在Windows下同样支持这种字体描述。这儿有几个限制,包括字体类型名必须在平台上存在,并非这所有上面样式名都存在(或它们中的一些有不同的名字)。

2、字体名
此外,Tk8.0允许你去创建已命名的字体并且当为一个窗口部件指定字体时使用它们的名字。

tkFont模块提供一个Font类,这个类允许你去创建字体实例。你可以随处使用这样一个实例。你也可能使用一个字体实例来得到字体的量度,包括存在于那个字体中的字符串所站用的尺寸。

 tkFont.Font(family="Times", size=10, weight=tkFont.BOLD)
 tkFont.Font(family="Helvetica", size=10, weight=tkFont.BOLD,
             slant=tkFont.ITALIC)
 tkFont.Font(family="Symbol", size=8)

如果你修改一个已命名的字体(使用config方法),这个改变将自动影响到所有使用这个字体的窗口部件。

Font构造器支持下列的样式选项(注意常量被定义在tkFont模块中):

样式选项及说明:

family选项
类型:字符串
说明:字体类型

size选项
类型:整型
说明:以磅为单位的字体的尺寸。要以象素为单位的话,使用负值。

weight选项
类型:常量
说明:字体的粗细。使用NORMAL或BOLD。默认为NORMAL。

slant选项
类型:常量
说明:字体倾斜。使用NORMAL或ITALIC。默认为NORMAL。

underline选项
类型:标志
说明:字体下划线。如果1(true),字体加下划线。默认为0(false)。

overstrike选项
类型:标志
说明:字体划线。如果为1(true),则字体上有一条线;默认为0(false)。

3、系统字体

Tk也支持特定系统的字体名。在X下,这些通常是字体别名如fixed,6x10等等。

在Windows下,这些包括ansi,ansifixed,device,oemfixed,system和systemfixed:
Tkinter类之窗口部件类

在Macintosh上,系统字体名是application和system。

注意:系统字体是字体名,不是字体类型名,它们不能与尺寸或样式属性结合。为了可移植性,尽可能避免使用这些名字。

4、X字体描述

X字体描述是如下格式的字符串(星号所代表的是无关字段。具体细节可查看Tk文档或X手册):
-*-family-weight-slant-*--*-size-*-*-*-*-charset

典型的字体类别如:Times,  Helvetica,  Courier  or  Symbol。

weight可以是"Bold"或"Normal"。slant取值中R代表"roman"(正常),I代表"italic",o代表团"oblique"(实际上等同于italic)。

size是字体的高度,以十分之一磅为单位。一英寸72磅,但是一些低分辩率的显示器的1磅较常规的大些,以便小字体能够清晰显示。charset(字符集)通常是ISO8859-1  (ISO  Latin  1),  但一些字体也使用其它的值。

下面的描述的family取值是Times,weight取值是Bold,slant取值是R,size取值是120,charset取值是ISO8859-1:
  -*-Times-Bold-R-*--*-120-*-*-*-*-ISO8859-1

如果你不关心charset(字符集),或你使用如Symbol的字体(这种字体类别有特定的字符集),那么你可以使用一个星号作为描述的最后部分:
-*-Symbol-*-*-*--*-80-*

典 型的X  server至少支持Times,  Helvetica,  Courier等字体,size有8,  10,  12,  14,  18,  和  24 磅,weight有normal,bold、italic(Times)或oblique(Helvetica,  Courier)。大多数的服务器都有 支持随意查看字体。你可以使用如xlsfonts和xfontsel来检查你所访问的服务器的字体。

这种类型的字体描述可以用在Windows  和Macintosh上。注意:如果你使用Tk4.2,你必须牢记字体类型必须是Windows所支持的一种。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tkinter 控件详细介绍 的相关文章

  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以

随机推荐

  • Could not transfer metadata org.apache.maven.plugins/maven-metadata.xml from

    原因 从阿里云镜像仓库下载不了依赖文件 解决办法 1 在IDEA里面 File gt Settings gt Build Execution Deployment gt Build Tools gt Maven gt Runner 的VM
  • Allegro如何将好几块同一网络敷铜合并在一起

    1 如题 如下图圈起来的地方是三个同一网络的敷铜 2 点击Shape Merge shapes 将上图中的三个腹铜圈起来 然后右键done 就合并成了一个敷铜
  • vue模拟锚点定位加动画

    模拟锚点跳转 goAnchor selector let anchor this el querySelector selector document documentElement scrollTop anchor offsetTop l
  • 质数

    include
  • 0x0000007B:A problem has been detected and windows has been shut down to prevent damage to your Comp

    0x0000007B 这个代码和硬盘有关系 不过不用害怕 不是有坏道了 是设置问题或者病毒造成的硬盘引导分区错误 如果您在用原版系统盘安装系统的时候出这个问题 那说明您的机器配置还是比较新的 作为老的系统盘 不认这么新的硬盘接口 所以得进B
  • ARKit和SceneKit

    ARKit SceneKit 首先看一下官方描述 学习ios开发真的要多看原文档 帮助很大 ARKit 整合iOS设备相机和运动功能 在您的应用程序或游戏中产生增强现实体验 SceneKit 使用高级场景描述创建3D游戏并将3D内容添加到应
  • 自学网络安全详细路线图来了

    大家好 我是轩辕 上一次的 C C 后端开发路线图 的末尾 预告了网络安全方向的学习路线 让大家久等了 今天终于来了 算上从学校开始学习 轩辕已经在网安这条路上走了10年了 无论是以前在学校做安全研究 还是毕业后在百度 360从事内核安全产
  • sklearn基础学习笔记

    本文对scikit learn中常用的class 和function做一个总结 一 sklearn cluster 聚类算法 class cluster KMeans n clusters init n init KMeans n clus
  • UML类图符号 各种关系说明以及举例

    转自 http www cnblogs com duanxz archive 2012 06 13 2547801 html UML中描述对象和类之间相互关系的方式包括 依赖 Dependency 关联 Association 聚合 Agg
  • 网络安全基础要点知识介绍

    本文章只为了方便查阅 文章目录 网络安全 网络安全问题概述 两类密码体制 数字签名 鉴别 报文鉴别 实体鉴别 密钥分配 对称密钥的分配 公钥的分配 互联网使用的安全协议 运输层安全协议 参考文献 网络安全 网络安全问题概述 计算机网络的通信
  • 真题详解(数字签名算法)-软件设计(七十八)

    真题详解 有限自动机 软件设计 七十七 https blog csdn net ke1ying article details 130748759 可用于数字签名算法的是 答案 非对称RSA 移植性 易安装 易替换 适应性 UML状态图转换
  • P16-Login.vue内容

  • Java 中时间类 Calendar、Date、SimpleDateFormat 的相关详解

    参考Java 1 8 文章目录 java util Date methods java util Calendar methods Calendar 方法举例 java text SimpleDateFormat 符号对应的意思 构造方法
  • vue实现一行多列的表单校验

    背景 在开发过程中 经常会遇到一行多列的情况 并且需要做表单校验 element文档给的required案列是单列输入框 使用场景不符合动态一行多列验证 第一种方式 一个表单 循环多行 代码
  • redis模糊批量清除key

    文章目录 一 命令行删除 二 golang代码删除 有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来手动处理数据 可能是修改它的值 也可能是删除 key 这里就有一个问题 如何从海量的 key 中找出满足特
  • 三维偏序(陌上花开)

    题目描述 题解 这是cdq分治模板题 前置 cdq分治 好像是一位大佬搞出来的神奇分治 可以直接干掉一层树形结构 其实实现还是比较简单的 对于区间 l r 我们先处理 l mid 和 mid 1 r 然后处理左右区间之间产生的影响 具体顺序
  • 华为OD机试 - 战场索敌(Java & JS & Python)

    题目描述 有一个大小是N M的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于同一个区域 只有空地上可能存在敌人 E 请求出地图上总共有多少区域里的敌人数小于K 输入描述 第一行输入为N M K N表示地图的行数 M
  • 成功解决 -- An I/O error occured while sending data to the backend.

    文章目录 问题描述 历史经验 排查步骤 解决方法 问题描述 Oracle通过kettle工具同步数据到Gauss报IO错误 历史经验 应用侧 获取连接后未及时关闭 DriverManager gerConnection后未调用con clo
  • 如何查看list的维度

    在写神经网络代码过程中 总是有很多的矩阵变换 有很多时候矩阵是有list构成的 然而list又没有shape方法 无法直接查看list的维度 通过查找资料 我看到可以使用将其转化为数组的形式查看维度 代码如下 import numpy as
  • Tkinter 控件详细介绍

    Tkinter支持15个核心的窗口部件 这个15个核心窗口部件类列表如下 窗口部件及说明 Button 一个简单的按钮 用来执行一个命令或别的操作 Canvas 组织图形 这个部件可以用来绘制图表和图 创建图形编辑器 实现定制窗口部件 Ch