Python完全新手教程
作者:taowen, billrice

Lesson 1 准备好学习Python的环境
下载的地址是:
www.python.org
为了大家的方便,我在校内作了copy:
http://10.1.204.2/tool/compiler&IDE/Python-2.3.2-1.exe
linux版本的我就不说了,因为如果你能够使用linux并安装好说明你可以一切自己搞定的。

运行环境可以是linux或者是windows:
1、linux
redhat的linux安装上去之后一定会有python的(必须的组件),在命令行中输入python回车。这样就可以进入一个
>>>的提示符
2、windows
安装好了python之后,在开始菜单里面找到Python2.3->IDLE,运行也会进入一个有
>>>提示符的窗口

开始尝试Python
1、输入:
welcome = "Hello!"
回车
然后又回到了>>>
2、输入:
print welcome
回车
然后就可以看到你自己输入的问候了。

Lesson 2 搞定环境之后的前行
Python有一个交互式的命令行,大家已经看到了吧。所以可以比较方便的学习和尝试,不用“新建-存档-编译-调试”,非常适合快速的尝试。

一开始从变量开始(其实说变量,更准确的是对象,Python中什么都可以理解为对象)。

变量
welcome = "hello!"
welcome就是变量名,字符串就是变量的类型,hello!就是变量的内容,""表示这个变量是字符串,""中间的是字符串的内容。
熟悉其他语言的人,特别是编译类型的语言,觉得没有变量的声明很奇怪。在python中用赋值来表示我要这么一个变量,即使你不知道要放什么内容,只是要先弄一个地方来放你的东西,也要这么写:
store = ""
不过这个还是说明了store是字符串,因为""的缘故。

have a try

代码: [复制到剪贴板]  
tmp_storage = ""
welcome = "hello!"
tmp_storage = welcome
print tmp_storage

你会发现同样的问候出现了。

字符串
字符串是用""标记的,但是用''也可以(不要说你看不出一个是双引号,一个是单引号),两者之间是有一丁点区别,不过你可以不用理会。其实是差不多的。字符串有很多自己的操作,最常用的是这样的:

代码: [复制到剪贴板]  
welcome = "hello"
you = "world!"
print welcome+you

运行之后就会发现她输出了helloworld!。

更多变量
变量还有几种类型。

字符串
列表
字典
文件
勿庸置疑,这些都是非常非常常用的。对于数字就不用讲了那就是:

代码: [复制到剪贴板]  
radius = 10
pi = 3.14
area = pi*radius**2
print "the area is", area

下次讲列表和字典

Lesson 3 Python中的数学结构
数学中你学什么东西最多遍?我想根据我的一点浅薄经验(虽然我是数学系的),学得最多的是集合,无论什么数学书都从集合开始讲起。然后讲函数呢,又必然把映射再讲一遍。可以说,集合和映射是数学中最基本的结构了。

Python对于数据结构非常明智的内置了两个,回想我写C的程序,往往是一开始就是用struct拼一个链表出来(重复劳动)。Python中提供了列表(list)和字典(dict)两种数据结构。他们分别对应的原型是集合和映射。这个你应该明白了,只是表示方法有一点不一样而已。

列表
列表的英文名是list嘛,所以我取一个名字叫

代码: [复制到剪贴板]  
my_list = []
这个就产生了一个空的列表。然后给它赋值
my_list = [1,2]
print my_list
my_list.append(3)
print my_list

非常容易明白的。append前面加了一个点,这个表示append是my_list方法。我实在不想又去给你解释什么是对象,什么是成员方法,然后扯出一大段出来。
list是可以索引的:
print my_list[1]
不过你或许会不明白为什么是2,而不是显示的是1。因为索引从0开始,要输出第一个元素:
print my_list[0]

字典

代码: [复制到剪贴板]  
contact = {}

这个产生了一个空字典,contact。然后往里面填充内容:

代码: [复制到剪贴板]  
contact={}
contact["name"]="taowen"
contact["phone"]=68942443

name就是你查字典的时候要查找的单词,taowen就是查到的内容。不过你现在不是查,而是在写这个字典。同理添加了phone这个词条。
现在添加好了,看看contact的内容,怎么查看?自己想办法吧。。。
如果你悟性够,就会发现python很多操作是通用的,既然能够print 1, print "", print my_list,那么其他数据类型的变量就没有理由不能用了。

结合列表和字典

代码: [复制到剪贴板]  
contact_list=[]
contact1={}
contact1['name']='taowen'
contact1['phone']=68942443
contact_list.append(contact1)
contact2={}
contact2['name']='god'
contact2['phone']=44448888
contact_list.append(contact2)

呵呵,够复杂的吧。你可以想出我为什么要用两个contact字典呢?。。。

Lesson 4 用不同的方式来操作Python
到现在为止,我们用的都是交互式的命令行来操作的,的却是很方便,是吧?不过,复杂一些的情况就不那么好使了,来换一种方式来操作Python

在IDLE中点击File->New Window,出现一个新窗口(对于linux下,你要用vim或者emacs或者pico把文本的源文件写好了)。为了方便,先点击File->Save,填入my_try.py。这样能够让编辑器知道在编辑python的源文件,会把你输入的代码进行一点上色的处理。

填入下面的代码:

代码: [复制到剪贴板]  
i = 5
n = 0
while i>0:
n = n + i
i = i - 1
print n

你会发现输入:之后,自动会给缩进。而且也没有在python中发现和C/C++中类似的{}标记也没有pascal中的begin end;,其实缩进就是python中表示一段代码的从属关系的标记方法。表示n=n+1和i=i-1这两句都是while的。程序的运行逻辑应该不用解释了吧。就是运行5+4+3+2+1的结果。

运行代码
按F5,可能提示你没有存盘,照着办就是了。
发挥你的能力,计算从1到10的所有偶数的和(提示,可能没有你想象的那么智能)。

Lesson 5 Python中的输入与判断
健全的程序大凡都需要输入的功能,所以要学习一下简单的输入:
输入要使用的是raw_input或者input函数,区别是raw_input直接把你的输入作为字符串返回,而input则在raw_input的基础上把字符串转换为数字返回(如果你输入$@#$$怎么办?自己试试看)。我们就利用这两个输入函数来作一些有趣的事情。

代码: [复制到剪贴板]  
your_name = raw_input("please input your name:")
hint = "welcome! %s" % your_name
print hint

不简单吧,还有%呢。%s表示在这个位置插入一个字符串,%表示把后面提供的参数“推”入前面的字符串中,所以推的结果是把%s推出去了,把your_name给填入那个地方了。printf知道吧,C中的printf就是一样的嘛。

代码: [复制到剪贴板]  
inputed_num = 0
while 1:
inputed_num = input("input a number between 1 and 10\n")
if inputed_num >= 10:
pass
elif inputed_num < 1:
pass
else:
break
print "hehe, don't follow, won't out"

pass就是pass了,过了嘛,什么都不干了。break就是跳出这个while 1(无穷循环,1总是真的,while总是执行)。\n是换行,不会全部忘光了吧。

Lesson 6 Python余兴节目
代码: [复制到剪贴板]  
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()

呵呵,一次太超前了一点,不过也不是解释不清楚。我干脆也不解释了吧。给大家增进一点兴趣。

---------
还是解释一下
fromt Tkinter import *
是引入一个模块,这个模块用来创建GUI(Graphic User Interface)窗口
Tk()创建了一个主窗口
Label()创建一个标签
Label的第一个参数是root表明Label是在这个主窗口中的。
w.pack()是指用缺省的方式把Label放置在主窗口中
root.mainloop()开始了一个循环,是等待你的输入的循环。

Lesson 7 Python基本语法要素齐动员
现在的目的是尽量想出一个用的东西仅限于内置的变量类型和语句的一个综合的例子,我想还是那个联系人表的例子吧

代码: [复制到剪贴板]  
################
#呵呵,还忘记了讲注释
#第一个算是完整的程序
################
contact = {}
contact_list = []
while 1:
contact['name'] = raw_input("please input name: ")
contact['phone'] = raw_input("please input phone number: ")
contact_list.append(contact.copy())
go_on = raw_input("continue?\n")
if go_on == "yes":
pass
elif go_on == "no":
break
else:
print "you didn't say no\n"
i = 1
for contact in contact_list:
print "%d: name=%s" % (i, contact['name'])
print "%d: phone=%s" % (i, contact['phone'])
i = i + 1

首先是回忆一下字符串
字符串既能够用""也能够用''。然后是很有特色的%操作,起到格式化字符串的作用,前面仅仅在字符串中有一个%s,现在有%d和%s两个,分别代表插入十进制数值和字符串于%x标记的位置处。

然后是列表
列表是顺序的序列,用append在后面附加,也能构用索引值索引。所以我们完全可以用一个变量保存len(contact_list)得到的长度,然后一个个的遍历,不过这里展示了另外一种非常方便的方法。而且值得注意的是append()中的参数,我使用了contact.copy(),你可以尝试着把copy()给去掉,观察结果你就知道了所谓的append是怎么干的了,特别是你对指针之类的东西很有感觉的话(但是在Python中是没有指针这个概念的)

再来看看字典
字典是键(key)和值(value)的对应组合成的无序的序列。所以你存的时候要指明键(name或者phone),而且取的时候也是一样的。

接下来是判断
if是很好用的,==表示判断两个是否相等,=表示把右边的赋给左边的。而且可以直接判断字符串是否相等,这个太方便了,如果你曾经用过strcpy()的话,就知道了。elif是表示else if的意思,如果if不满足就判断elif的条件是否满足,最后是到else中去。

循环是个主体
while和for都是循环。不过这里while就没什么说的了,又是很经典的while 1,死循环,然后必须在里面用break来跳出。for和C中的for是不一样的,for in才是一个完整的语句,指的是从一个能够逐一取值的序列中(比如list),一个一个的取出值赋给for后面指定的变量中,直到取空,循环结束。其实回想一般用C中的for的经历,也大体如此。而且你还可以用for i in range(1,100)来指定一个范围从多少到多少。可以说for in充分体现了python的体贴周到,用起来很直观,不会绕弯。

接下来就是运行了,大家慢慢调试吧。下次可能是讲异常处理,因为我觉得在深入到使用各种高级的要素之前,先要学会怎么去处理异常。最常见的异常应该是input(),然后你给出的输入是一个无法转换为数字的字符串了,那么我们就要来处理它。

Lesson 8 Python中的错误检测
写程序什么最重要?完成功能最重要。但是程序中难免要有用户的输入,对于这些写的时候未可预知的因素中间可能出现的错误,一般称作异常。对于异常情况的处理,不同语言有不同的做法,比如检查函数的返回值之类的,但是那种办法会把代码弄成一团浆糊。Python在这个方面是比较先进的,我们从一个例子来看看:

代码: [复制到剪贴板]  
print input()

呵呵,看不同吧。其实input是输入,print是输出。也就是把输入的东西立即输出。但是这个和

代码: [复制到剪贴板]  
print raw_input()

有什么不同呢?
不同的地方是,input()会在raw_input()接收了“字符串”的输入之后进行一些处理,比如你是输入1+2,然后输出的就是3了,而raw_input就是原原本本的1+2的输出了。用代码表示就是

代码: [复制到剪贴板]  
eval(raw_input())

eval是求表达式的值,任何一个简单的python表达式,就像1+2这样的作为字符串送入,就能把值从eval处理之后取出来。
现在你实验一下"sdfsdf”之后,你会发现提示你

  引用:
Traceback (most recent call last):
File "<pyshell#4>", line 1, in -toplevel-
input()
File "<string>", line 0, in -toplevel-
NameError: name 'sdfsdf' is not defined

如果输入其他稀奇古怪的字符串还可能有其他的出错提示,我们现在要做的就是捕捉这种由用户输入引起的错误。这么来作:

代码: [复制到剪贴板]  
try:
print input()
except:
print 'there is an error in your input'

这下你无论怎么输入都不会有什么其他的提示了,就是自己设定的print语句作为提示。现在把try except的组合去掉,回到print input()你再尝试一下:
1/0
这个显然是一个错误,被零除的错误。那么专门来捕捉一下这个错误:

代码: [复制到剪贴板]  
try:
print input()
except ZeroDivisionError:
print 'can not be divided by zero'

这下你能够捕捉到被零除的错误了。然后你再尝试其他的输入,可能错误就没有被捕捉了。所以再补上:

代码: [复制到剪贴板]  
try:
print input()
except ZeroDivisionError:
print 'can not be divided by zero'
except:
print 'there is an error in your input'

注意,捕捉所有错误的except必须放在所有的except的最后一位。明白了?OK

还有更多的能够捕捉的错误,自己查手册吧(暂时看不了手册没关系,慢慢来嘛)。以后还能够自己raise(引发)异常呢。不过那都是比较高级的应用了,对于出错处理从一开始就有这个印象,并牢记在心中对于以后写大一些的软件很有好处。

Lesson 9 走向模块化的第一步
大规模的程序设计需要你把一个大的程序拆分成n个模块。然后把模块进行组合,交互成为一个完整的程序。你不可能像现在这样,从顶写到尾。。。
那么我们从函数开始。

代码: [复制到剪贴板]  
def square(x):
return x**2

print square(5)

简单吧,这个是我看过的函数定义中最简洁的。def表示这个开始定义一个函数,x是参数,参数是不需要类型的,因为python是不需要明确指出类型的。return是返回值,返回的值插入到调用函数的地方。再复杂一些

代码: [复制到剪贴板]  
def multiply(a, b):
return a*b

print multiply(1,2)

这是两个参数的函数。那么返回两个值呢?

代码: [复制到剪贴板]  
def swap(a, b):
return (b,a)
print swap(1,2)

呵呵,其实这里返回的并不是两个值,而是一个值。怎么说呢。(b, a)就是一个东西,是一个元组(turple),你可以用这样的方式成生一个元组,并使用它。元组是基本的变量类型:

代码: [复制到剪贴板]  
my_turple = (1, 2, 3)
my_list = []
for i in my_turple:
my_list.append(i)
print my_list

其实元组和列表非常像,但是列表的长度是可以变化的,而且成员是可以改变的。但是元组是什么都不能变的,是只读的。

对于高级一点的话题:传递进来的参数是否可以被修改,这个问题取决于你传递了什么近来。如果是数字或者字符串,是不能够改变的,但是如果是这样的:

代码: [复制到剪贴板]  
def test_func(list_be_passed):
list_be_passed[0] = 'towin'
my_list = ['taowen']
print my_list
test_func(my_list)
print my_list

就能够改变传递近来的参数了,所以处理的时候要小心,必要的时候copy一下再传递。

函数简单吧,但是很好用的。想起C中的函数那么那么多麻烦,真是感慨万千啊。下面是应该讲GUI编程呢,还是面向对象呢?思考一下

Lesson 10 Python的文件操作
文件操作....是一个语言和外界联系的主要方法....现在以txt为例简单的讲一下...



首先是建立关联...假设在存在以下文件 c:\a.txt

代码: [复制到剪贴板]  
This is line #1
This is line #2
This is line #3
END



代码: [复制到剪贴板]  
>>> xxx = file('c:\\a.txt', 'r')

关键字的第一部分,是文件路径及名称。注意这里面,路径需要用\\
第二部分,是对文件的模式或者叫权限,一般有以下3种 "r" (read), "w" (write)和 "a"(append).



之后,就可以利用
xxx_content = infile.read()
xxx_content = infile.readlines()
来读取文件内容了

代码: [复制到剪贴板]  
>>> xxx = file('c:\\a.txt', 'r')
>>> xxx_content = xxx.read()
>>> print xxx_content
This is line #1
This is line #2
This is line #3
END
>>> xxx.close()
>>>



>>> infile = file('c:\\a.txt', 'r')
>>> xxx = file('c:\\a.txt', 'r')
>>> for xxx_line in xxx.readlines():
print 'Line:', xxx_line


Line: This is line #1

Line: This is line #2

Line: This is line #3

Line: END
>>> xxx.close()
>>>

然后是文件的写入

代码: [复制到剪贴板]  
>>> xxx=file('c:\\test.txt','w')
>>> xxx.write('billrice')
>>> xxx.write('testtest')
>>> xxx.write('enter\n')
>>> xxx.writelines(['billrice','ricerice'])
>>> xxx.close()
>>>
>>> xxx=file('c:\\test.txt','r')
>>> content=xxx.read()
>>> print content
billricetesttestenter
billricericerice
>>>

需要注意的是...在xxx.close()之前,c盘下面只有一个空空的test.txt,xxx.close()的作用相当于最后的存盘。

Lesson 11 走向模块化的第二步
函数上面还能是什么呢?内嵌函数^_^,其实python是支持的。不过用起来会让你吐血的,LGB名称查找规则。。。(寒)。python是面向对象的,对于面向对象的支持挺好玩的。

代码: [复制到剪贴板]  
class person:
def __init__(self):
self.name = 'taowen'
self.id = 20022479
def say_id(self):
print "%s's id is %d" % (self.name, self.id)


me = person()
me.say_id()

比较复杂了吧。如果不熟悉面向对象的概念的,可能会觉得晕。我来解释一下。所谓面向对象是把数据和操作数据的函数放到同一个类中去,然后用类来创建对象,操作的时候能够比较方便(很不精确的说法,任何一个OO高手都可以把我骂得屁都不是)。


类是class关键来定义的。class person:就是说定义一个类,名字叫person。

对象
对象是用类来产生的。所以me就是对象,产生的办法就是像调用函数一样,person(),而且()中是能够放参数的,什么时候要参数,看下面的“初始化函数“

初始化函数
类可以有自己的初始化函数,每次类被创建的时候(调用person()这样的语句的时候),都会调用它。这个在C++中的名称是构造函数。__init__是必须的名字,你不能用其他名字来当初始化函数。但是你可以没有初始化函数。

类的数据
类的数据是所有类产生的对象共享的数据。这里没有用到类的数据,要写的话是这样:

代码: [复制到剪贴板]  
class person:
school = 'bit'
def __init__(self):
self.name = 'taowen'
self.id = 20022479
def say_id(self):
print "%s's id is %d" % (self.name, self.id)


me = person()
me.say_id()
print me.school

对象的数据
对象的数据是用
self.变量名 = 。。。
来生成的。这里self.name就是对象的数据。对象的数据和类的数据不同,因为对象之间的数据是互不共享的,而类的数据是被所有由类生成的对象共享的。

对象的函数(类的函数)
两个没有区别,是类的就是对象的。其实就是类的(我说的是底层实现,不过不用管,如果关心怎么实现的,等我写Hacking OO吧,还没影呢)。say_id就是对象的函数,你能够调用它。每个对象的函数都需要一个self参数,表示[color]这个对象[/color]。

为什么使用面向对象编程
除去让人觉得你比较专业外,当然由切实的好处。比较浅显的是你能够表达一定的层次关系,类与类之间能够有包含和继承的关系(当然你现在还不会。。。)。而且对象能够把数据和操作数据的函数放在一起,能够比较清晰。虽然有所谓的数据隐藏的概念,但是在python中其实就是一个不要直接调用对象中的数据的约定,而要用一个函数作为中转。其实不懂面向对象很正常,其实有的时候就是要在用的中间感悟的。什么时候把用函数编程用牛了,用出个道道来了,说不定你已经感觉到了什么是面向对象编程。另外:所谓什么OO,都是一些认为规定,不用语法支持,只要心中有这个想法(什么想法?自己悟啊),就能够写出OO的代码,不管你用的是什么语言,什么语法。

Lesson 12 python to exe
about py2exe

本文讲述如何将一个python源代码编译成一个exe.....我会的只是最初步最基本的.....实际上那个py2exe似乎有着更强大的功能

1:下载安装py2exe.....from http://twh@bitunion.org


2:假设你写好了一个python程序....guess_number.py.......存在了c:\Python23\下面

3:再写一个setup.py....也存在c:\Python23\下面......内容如下

代码: [复制到剪贴板]  
# setup.py
from distutils.core import setup
import py2exe

setup(name="guess_number",
scripts=["guess_number.py"],
)

其中name和scripts是需要你到时候具体修改的....

4:找到windows的dos模式(命令提示符).....或者自己做个快捷方式也可以....
C:\Python23>
C:\Python23>python setup.py py2exe
构造就开始了....
几秒钟以后....
在你的C:\Python23就会出现两个文件夹build和dist,前面那个里面似乎是源程序(这个我不太清楚)....dist里面的就是编译好的.exe了.....ok....


btw....等国两天有了实际应用再来翻译这些东西

Specifying additional files
Some applications need additional files at runtime, this maybe configuration files, fonts, bitmaps, whatever.

py2exe can copy these files into subdirectories of dist\myscript if they are specified in the setup script with the data_files option. data_files should contain a sequence of (target-dir, files) tuples, where files is a sequence of files to be copied.

Here's an example:

代码: [复制到剪贴板]  
# setup.py
from distutils.core import setup
import glob
import py2exe

setup(name="myscript",
scripts=["myscript.py"],
data_files=[("bitmaps",
["bm/large.gif", "bm/small.gif"]),
("fonts",
glob.glob("fonts\\*.fnt"))],
)

This would create a subdirectory bitmaps in dist\myscript, containing the two bitmaps, and a subdirectory fonts, containing all the *.fnt files. 



相关资料出处....
http://starship.python.net/crew/theller/py2exe/


Lesson 13 写一个简单的界面很容易
图形界面是非常有吸引力的东西。但是制作出来似乎不是那么容易,这个观点对于用C来笨拙写windows的窗口程序来说,是比较正确的。微软公司出品的windows是一个图形界面的操作系统,这个和dos或者linux这些不一样,他们一开始出来是针对字符界面的,然后再在上面加上一些库来提供图形的功能。windows则不同,它是包含在自己的最原始的功能之中,而这些图形功能的提供是在user32.dll这样的system目录下的dll文件中以函数导出的形式提供的,但是要使用这些东西必须使用c语言的函数接口,而且编写麻烦。有一个很大的wndproc中要填入所有的事件处理代码,非常丑陋。而作为脚本语言,所应该有的简洁性,python对这个进行了封装。但是事情不是如你所想象。中间过程非常复杂,而且python用的也不是自己的库,还是tcl的一个tk的库再封装了一次。虽然经过层层封装,裹得非常严实,但是除了影响其在比较高性能的图形场合下的应用之外,并没有带来太大的麻烦。你能够用很少的代码,来完成其他语言+库要很大行代码才能表达的图形样式,虽然非常简陋,不过足够使用。而且python除了自己原包装带的这个tkinter库之外,还有其他的第三方的选择,比较丰富,而且也有能够胜任各种应用的选择。甚至,还有opengl和directx的库的封装库,能够用来编写2d和3d的游戏,这个非常的诱人哦。但是我不会,

图形界面的奥秘其实并不深奥。我相信很多人学习windows编程都是从写一个窗口开始的,而且都是从尝试理解那个消息和事件驱动的模型入手的。大体的过程是这样的,窗口就是用象素画出来的。你可以把一个窗口想象成一个窗口,也可以把窗口看成一堆象素的集合。就像有人说看女色不过是皮肉色相一样。而且窗口中的按钮,编辑矿,各种图标,无论是什么看起来像一个”物体“的东西,其实本质上都是有应用程序或者是库或者是操作系统调用显卡的驱动,通过显卡的功能在屏幕上绘画一些点出来。而所谓的”物体“有很多称法,在windows中一般成为控件(control)。

而对于图形界面的操控一般是通过鼠标和键盘来完成的。鼠标在屏幕上有一个自己的形象,那就是一个箭头(当然你也可以调整这个图形为其他好玩的东西,it is your freedom)。而键盘呢则一般表示为一个虚线的框,表示这个是键盘的”焦点“所在的地方。或者是编辑框中闪动的竖杠。这两点中有一个共同点,就是都有一个位置来确定要操作的对象。你点下鼠标的时候,你操作的就是鼠标的箭头尖端指向的那个空间,而键盘按下也是在其焦点所在的控件那儿放声。发生的是什么呢?发生的过程从硬件层面到软件层面之后,最终是被操作系统接收。操作系统能够知道你是点击的是鼠标还是键盘,在什么一个地方点下的,而且按下的是左键还是右键。操作系统还知道当前窗口各处摆放的位置。综合各路的信息,操作系统就能够知道把这个”事件“作为”消息“发送给哪个窗口来处理。从中应该能够明白什么叫事件,而消息呢则是一个C中的结构体,其中有几个field中间放了有关这个事件的信息,然后就像一封信一样从操作系统投递到了窗口所在的应用程序。然后应用程序有一个事先注册的”窗口过程“,其实就是一个函数,用来接收这封“信”。其实就是接收到传过来的参数。然后再进行一些判断,作出一定的响应。这个就是所谓的事件驱动。在没有冗长的代码,和展示所有细节的情况下,如果你真的以前对这个过程一无所知,肯定会觉得非常茫然。这个一笔带过的叙述其实只是让你有一个感性的认识。其实在python中使用窗口根本不用管诸葛么多。基本上只是把自己要的窗口和控件,给一些位置的参数,一些文字的提示内容的参数就能把窗口摆好,显示出来。然后再通过代码告诉python,当“这个按钮按下的时候执行这个函数”,然后就能让窗口有响应。最后记得给一个退出窗口的办法就一切OK了。其中能省的复杂度基本上都被库给隐藏掉了。付出的代价是慢一些,但是我就不相信你能感觉出来,除非你用的电脑连vcd都看不流畅。所以大可放心的享受这种便利。

OK,下面来正式的看看怎么在python中创建一个窗口,然后显示出来。

代码: [复制到剪贴板]  
from Tkinter import *
root = Tk()
root.mainloop()

就3行就能够把主窗口显示出来了。root是一个变量名称,其代表了这个主窗口。以后创建控件的时候指定控件创建在什么窗口之中,就要用这个root来表示了。而Tk()是一个Tkinter库之中的函数(其实是类的构造函数,构造了一个对象)。而mainloop则是主窗口的成员函数,也就是表示让这个root工作起来,开始接收鼠标的和键盘的操作。你现在就能够通过鼠标缩放以及关闭这个窗口了。注意到窗口的标题是tk,我们可以进行一些修改

root= Tk(className='bitunion')

然后窗口的标题就变成了bitunion了。下面要作的是把这个窗口的内容填充一下,让其有一些东西。先加入一个标签,所谓标签就是一行字。

代码: [复制到剪贴板]  
from Tkinter import *
root = Tk(className='bitunion')
label = Label(root)
label['text'] = 'be on your own'
label.pack()
root.mainloop()

我们很惊讶的发现窗口变小了,但是其中多了一行字。变小了是因为窗口中已经放了东西了,python的Tkinter非常智能,能够根据内容自动缩放,而不用和传统的windows程序一样,手工的指定绝对坐标了。对于label,它还是一个变量而已。不过这个变量代表了一个标签,也就是那一行字。而这个label的创建是用Label,而Label的参数是root表明了这个控件是root主窗口的成员控件,或者说是子窗口。label['text']表示设置这个标签的text属性为'be on your own',也就是文字内容了。label.pack和root.mainloop一样费解,但是内涵一样深刻。你现在可以简单理解为把label显示出来的功能,因为你把pack去掉,那你就看不到东西了。其实pack是和控件的布局排版有关西的。

再添加一个按钮就能够有更加丰富的内容了,方法是很类似的。看着吧:

代码: [复制到剪贴板]  
from Tkinter import *
root = Tk(className='bitunion')
label = Label(root)
label['text'] = 'be on your own'
label.pack()
button = Button(root)
button['text'] = 'change it'
button.pack()
root.mainloop()

只不过把button替换了label而Button替换了Label。注意一下Button和Label这些都是Tkinter这些库提供的,而button和Button这样大小写之间的差别仅仅是巧合,你能够随便的给变量取名字,但是Button和Label这些则是需要记住的东西,写代码的时候要经常用到的名字。但是点击按钮你会比较失望,因为并没有什么反应。不过也是当然的事情,你并没有告诉计算机对于这样一个按钮的点击操作需要作出一个什么样的反应来反馈给用户。而这个指定作出什么反应的工作只需要一个行,但是作出具体什么样反应的描述则需要新建一个函数来进行处理。

代码: [复制到剪贴板]  
from Tkinter import *
def on_click():
label['text'] = 'no way out'
root = Tk(className='bitunion')
label = Label(root)
label['text'] = 'be on your own'
label.pack()
button = Button(root)
button['text'] = 'change it'
button['command'] = on_click
button.pack()
root.mainloop()

button['command'] = on_click表示对于button(按钮)的点击属性用on_click这个函数来处理。而on_click函数也很简洁,只是把label的文本重新设置一下。这个完成了一个事件消息的处理,如果用C来写,需要比这个长更加不好懂的写法。另外你是否会对on_click中出现label这个变量比较奇怪呢?明明在on_click前面没有定义label这个变量啊。如果我在C中这么写程序,编译器一定会告诉我出错的。而python是怎么知道label这个变量存在,然后没有报错的呢?其实python在你写的时候根本就不用知道其是否存在,只是要在运行的时候找得到label就可以了。而运行的前后关系,是通过时间来关联的而不是代码上前后行的关系。这里由于label= Label(root)先于on_click执行,所以当on_click执行的时候,label就是一个已经定义的变量。如果没有定义呢?那就报告出错喽。

最后一个例子:

代码: [复制到剪贴板]  
from Tkinter import *
def on_click():
label['text'] = text.get()

root = Tk(className='bitunion')
label = Label(root)
label['text'] = 'be on your own'
label.pack()
text = StringVar()
text.set('change to what?')
entry = Entry(root)
entry['textvariable'] = text
entry.pack()
button = Button(root)
button['text'] = 'change it'
button['command'] = on_click
button.pack()
root.mainloop()

这个就比较复杂了。里面有一个StringVar。这个代表一个字符串,但是跟一般字符串不一样。一般的这样'dfsdf'的字符串是不可变的,你只能把变量指定为不同的字符串,但是字符串本身的内容是不可改变的。而StringVar则是可变的字符串。所以了set和get来设置和取得其内容。主要是entry(单行输入框)要求一个这样的属性来设置和接收其输入框的内容。一开始可能不习惯,但是用多了之后会觉得很方便的,因为只要用这个变量text,就能一直得到当前输入框的内容。当你能够完整的把这个例子看懂的时候,你已经入门了。但是离自己写一个有窗口的应用程序还有一定距离。主要是缺少更加丰富的控件和事件响应的处理能力,以及合理排版布局的能力。这个下次再说
转载自http://www.cnblogs.com/taowen/articles/11239.html
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. [Android app] 本地wifi密码查看器源码

    一、功能效果图1. 打开显示本地所有wifi密码2. 不分字母大小写进行搜索3. ZXing生成二维码给别的手机链接二、原理获取本地保存密码的文件进行解析,本地保存wifi密码的路径为: /data/misc/wifi/*.conf生成二维码连接的字符串是根据小米的方式来生成的,格式为:WIFI:T:WPA;P:”…...

    2024/5/1 7:41:27
  2. Python实现简单爬虫

    简单爬虫构架 时序图 Url管理器管理待抓取url集合和已抓取Url集合 通过两个列表(已抓取url列表,未抓取url的列表)防止重复抓取、防止循环抓取 网页下载器 将互联网上Url对应的网页下载到本地的工具 通过的Python urllib2模块来实现 一个网页下载器的示例#coding=utf-8 …...

    2024/5/1 8:35:19
  3. 小熊arm学习总结:iar7.3建立工程报错:cannot open the source file "XXXxxx.h

    当确定头文件等设置都没有问题的时候,可以试一试下面的方法去解决,我亲身体验完美通过:方法一.STM32工程 从IAR6.0 转到 IAR6.3用IAR6.3打开IAR6.0 的工程,编译的时候出现提示错误:extern uint32_t __get_PSP(void); 已经在C:\Program Files\IAR Systems\Embedded Workbe…...

    2024/5/1 5:44:12
  4. 数据流图 系统流程图 程序流程图 程序的系统结构图

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50477517 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!1.数据流图(Data Flow Diagram)简称DFD,它从数据的传递和加工角度,以图形方式来表达系统的逻辑功能,数据在系统…...

    2024/4/26 21:12:43
  5. Haskell教程

    (这两天听ZT哥不断的提起这个语言,Haskell。也许是他强大的数学背景吧,所以他对这个语言非常的情有独钟。于是我就找了一个入门教程来看一下,放到这里备忘。) Haskell教程 by rufi 2003.3.21 -- 2003.4.2 一.序 1.什么是Haskell? Haskell是一种函数编程语言. 1980年代…...

    2024/5/1 14:52:32
  6. linux-格式化

    文件系统支持查看Linux支持的文件系统cat /proc/filesystems这个列举出来的并不就是全部能够支持的全部文件系统类型。 VFS基本涵盖了全部的文件系统,只是支持的程度问题。 不过是代码级别的支持,编译之后,可能会删减一些,所以这个看到的就是删减之后能支持的了。 想要支持…...

    2024/5/1 16:32:53
  7. ASP.NETmvc5下使用DropDownList的使用 ,和asp.net里的DropDownList控件的方法

    前台页面后台代码 用LINQ写的S_ID = u1.CI_ID, S_Name = u1.CI_Name相当于dataTextFileld 和dataValueField...

    2024/5/1 7:40:11
  8. echart显示自定义图标

    可以通过矢量图标实现自定义需求 实现方式 在阿里图标中找到想要的图标,然后将svg改为矢量图标 <svg t="1592984597912" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id…...

    2024/4/24 23:36:40
  9. [原创]自己动手写博客园博文提取器,提取文件保存支持PDF、doc、txt三种格式

    下载地址http://download.csdn.net/detail/w397090770/4443454同样是免积分的 前几天发了一个[原创]自己动手写CSDN博客提取器,提取文件保存支持PDF、doc、txt三种格式 飞程序,有网友反映要做一个可以提取博客园博文,今天我分析了一些博客园的网站,做了一个相似的博客园博…...

    2024/5/1 12:37:24
  10. @Html.DropDownList()的四种用法及自定义DropDownList扩展

    常用方法后台代码:public ActionResult Index() {ViewData["deptOu"] = "SOHO";using (ISession session = new NHibernateHelper(DataBase.ADDB).OpenSession()){IList<t_data_DeptOU> deptOuList = session.QueryOver<t_data_DeptOU>().Lis…...

    2024/5/1 9:23:00
  11. Linux格式化命令

    如果我们购买一个新的虚拟主机空间或者要更改操作程序,会经常使用到磁盘格式化来清空以前的数据,磁盘格式化的方法很多,我们常用的是NTFS和linux格式化命令两种方法来格式化磁盘,我们讲解一下linux格式化命令的详情。linux格式化磁盘命令linux mkfs指令:mkfs使用权限 : 超…...

    2024/5/1 11:21:34
  12. C++Builder/Delphi XE2 UniDAC安装教程

    C++Builder/Delphi XE2 UniDAC安装教程 UniDAC是一个功能强大的非可视化跨数据库的数据访问组件,可用于Delphi,Delphi for .NET,C++Builder,and Lazarus (Free Pascal)。它提供了对流行数据库服务器的统一访问,像Oracle,Microsoft SQL Server,MySQL,InterBase,Firebi…...

    2024/5/1 6:24:40
  13. 新浪博客关闭了吗,不能写博文了,提示:系统繁忙,请稍后再试

    新浪博客关闭了吗,不能写博文了,提示:系统繁忙,请稍后再试。 不知道你们大家有没有一直是这样,我从去年开始发现就一直是这样的,最近几天基本上每天分不同的时间段去测试,还是发不了文。 不信你们看看我的博客,http://blog.sina.com.cn/u/5899195590 一直是空的,什么都…...

    2024/4/28 13:15:34
  14. 百度Apollo5.5与LGSVL模拟器进行连接

    百度Apollo5.5的安装教程请参考我的另一篇Blog。Apollo5.5安装教程 安装之后,建立Apollo的桥接模块:bash scripts/bootstrap_lgsvl.sh bash scripts/bridge.sh # 执行之后,terminal没有任何输出,应该是一直在等待模拟器的数据 在浏览器中打开Dreamview(http://localhost:8…...

    2024/4/24 23:36:36
  15. RabbitMQ的简单用法

    这里主要是讲解的将一条消息放入mq中,然后在mq中进行处理, 生产者: 第一步:创建Queue名: public class ConstantMqName {//查询记录队列public static final String MQ_RECORD_SEARCH_CONTENT= "mq-record-search-content"; }import com.hisi.ie.common.constan…...

    2024/4/28 8:33:33
  16. 声学的一些基本知识(心理声学)

    心理声学(psycho acoustics)是研究声音和它引起的听觉之间关系的一门学科。人耳对声音的感知是高度非线性了。由于人耳听觉系统复杂,人类迄今为止对它的机理和听觉特性的某些问题还不能从生理解剖角度完全解释清楚。所以,就出现了心里声学这一在心理声学和语言声学内对对人耳…...

    2024/4/14 21:05:25
  17. 重装系统后快速恢复hexo博客(保留了原有的博客文件夹)

    前言本人刚假期结束回到宿舍。。发现自己的电脑外设全都没有了反应,重装驱动也不行,于是就只能重装系统了重装系统后发现博客的环境又得重新配置,我就简单记录一下正文首先我把git跟Node还有hexo重装了一遍, 因为重装系统有可能删除了配置文件包括环境变量里面的,没有配置…...

    2024/4/19 13:22:54
  18. ROS机器人编程新书推荐(附免费下载)

    来源网站一本新的ROS书籍:“ROS机器人编程,由TurtleBot3开发人员编写”。 现在,这本书已经出版了英文和中文版本。 你可以下载这本书的pdf。本书的作者想要感谢Morgan、Tully、OpenRobotics的Brian以及所有ROS开发团队、维护者和贡献者。 这本书是对所有ROS社区成员表示感谢…...

    2024/4/29 1:20:59
  19. 怎么设置asp.net中DropDownList下拉列表的高度?

    怎么设置asp.net中DropDownList下拉列表的高度? 转载于:https://www.cnblogs.com/HeroBeast/archive/2007/07/11/814441.html...

    2024/4/14 21:05:21
  20. ARM学习笔记(二)

    嵌入式处理器分类 目前的嵌入嵌入式处理器按其体系结构不同可分为五大类:  ARM(Advance RISC Machine)  MIPS  POWER PC  X86  SH系列ARM体系结构的版本(V1-V6) 每一个ARM处理器都有一个特定的指令集架构ISA(Instruction Set Architecture),每一个ISA版本可以有多种…...

    2024/4/26 23:19:05

最新文章

  1. 31.Gateway网关-跨域问题

    跨域 1.域名不同&#xff1a;www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同&#xff0c;端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求&#xff0c;请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…...

    2024/5/1 17:06:48
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Java深度优先搜索DFS(含面试大厂题和源码)

    深度优先搜索&#xff08;Depth-First Search&#xff0c;简称DFS&#xff09;是一种用于遍历或搜索树或图的算法。DFS 通过沿着树的深度来遍历节点&#xff0c;尽可能深地搜索树的分支。当节点v的所在边都已被探寻过&#xff0c;搜索将回溯到发现节点v的那条边的起始节点。这个…...

    2024/4/30 5:58:20
  4. CTK插件框架学习-事件监听(04)

    CTK插件框架学习-插件注册调用(03)https://mp.csdn.net/mp_blog/creation/editor/136989802 一、主要流程 发送者注册消息事件接收者订阅消息事件接收者相应消息事件 事件监听比插件接口调用耦合性更弱&#xff0c;事件由框架维护&#xff0c;不需要指定发送方和接收方 二、…...

    2024/5/1 10:29:55
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/29 23:16:47
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57