python 知识2
零、
type()函数怎么使用
type()的使用方法:type(对象)
type()是接收一个对象当做参考,之后反回对象的相应类型。
>>>type(1)
<type 'int'> #整型
>>>type('iplaypython')
<type 'str'> #字符串
2、
type()返回值是什么类型
>>>type(type(1))
<type 'type'> #type 类型
原来这些返回值本身也是有类型的,它是type类型。
一、
Python列表list的创建
可以把python中的list列表理解为任意对像的序列,只要把需要的参数值放入到中括号[ ]里面就可以了,就像下面这样操作:
names = ['ada','amy','ella','sandy']
列表可以包含不同类型对像,也支持嵌套:
例如a = ['a',567,['adc',4,],(1,2)]
修改列表list中的值
列表是有序的,可以通过python list下标来修改特定位置的值。下面用举例说明的方法来介绍下如何修改列表参数:
>>>a = [1,9,9]
>>>a [0] = 9
>>>a
[9,9,9]
列表的修改操作,也可以把它看成是特定位置重新赋值的操作。
Python list 列表删除操作
python 列表删除最常用到的方法有三种:del、remove、pop,使用方法和用途也并不相同,这里先了解下del这种最方便的入门级列表删除操作方法。
现有列表 names = ['ada','amy','ella','sandy'],要求是把上面列表中的'amy'删除,思路是:先知道'amy'在列表names中的索引位置,之后配合del这个方法来删除。列表del方法具体使用方法如下:
>>>names = ['ada','amy','ella','sandy']
>>>del names[1]
>>>names
['ada','ella','sandy']
列表像是python append、count、extend、index、python list insert、python reverse和sort排序等方法
二、
continue
简单的总结python continue语句作用:跳过剩余循环体,但并不结束循环,跳到最近所在循环体首行。
continue语句在下一次循环前先决条件不能被满足时,整体循环会结束。
求比10小且大于或等于0的偶数,%是求余数的。
>>>x = 10
>>>while x:
>>> x = x-1
>>> if x % 2 != 0:
>>> continue
>>> print x
8
6
4
2
0
三、
pass语句用法总结
1、空语句,什么也不做
2、在特别的时候用来保证格式或是语义的完整性
while True:
>>> pass
举个例子,现实中最好不要写这样的代码,因为执行代码块为pass也就是空什么也不做,这时python会进入死循环。
五、
global语句的作用
在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。
用global语句的使用方法很简单,基本格式是:关键字global,后跟一个或多个变量名
>>>x = 6
>>>def func():
>>> global x
>>> x = 1
>>>
>>>func()
>>>print x
1
用print语句输出x的值,此时的全局变量x值被重新定义为1
python中的global语句是被用来声明是全局的,所以在函数内把全局变量重新赋值时,这个新值也反映在引用了这个变量的其它函数中。
>>>def fun2():
>>> return x
>>>fun2()
>>>print x
1
这里看到fun2函数return返回值是全局变量x,想下它的值为什么是这个?
python assert断言的作用
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
def action_split_confirm_order(self,cr,uid,ids,context=None):
assert len(ids)==1
stock=self.pool('stock.quant')
sale_origin_obj=self.browse(cr,uid,ids,context)
sale_origin_obj.state='confirm'
for line in sale_origin_obj.line_id:
line.state='confirm'
product_id=line.product_id.id
qty=line.nowqty
rurecod=stock.search(cr,uid,[('product_id','=',product_id),('location_id','=',20)])
if rurecod: # 如果存在记录则,更新库存里面的数量即可
# 找到原来的库存数
oldq=stock.browse(cr,uid,rurecod,context).qty
# 存在则累加
stock.write(cr,uid,rurecod,{'qty':oldq-qty})
# sql2=" UPDATE sale_origin_line SET state='cancel' where state='draft' and origin='%s'"%(str(a))
# cr.execute(sql2)
self.message_post(cr, uid, ids, body=u'已确认订单', context=context)
return True
假设while条件为真,则执行代码块会被执行。因为条件永远是真,程序就会一直被执行下行,进入死循环python 跳出循环!
;这个时候就要用到break语句来结束或是continue跳出。
>>>x = 1
>>>while True:
>>> x+=1
>>> print x
>>> break
for循环列表操作方法
>>>a = [1,2,3,4]
>>>for i in a:
>>> print i,
1 2 3 4
for循环元组赋值
>>>x =[('hello','python'),('very','good')]
>>>for (a,b) in x:
>>> print (a,b)
('hello', 'python')
('very', 'good')
在Python语言中除了def语句用来定义函数之外,还可以使用匿名函数lambda,它是Python一种生成函数对象的表达式形式。
匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名。
# 普通python函数
def func(a,b,c):
return a+b+c
print func(1,2,3)
# 返回值为6
# lambda匿名函数
f = lambda a,b,c:a+b+c
print f(1,2,3)
# 返回结果为6
Python open()函数文件打开操作
打开文件会用到open函数,标准的python打开文件语法如下:
open(name[,mode[,buffering]])
open函数的文件名是必须的,而模式和缓冲参数都是可选的。比如说有个a.txt的文本文件,存放在c:\text下,那么你要打开它可以这样操作:
>>>x = open(r 'c:\text\a.txt')
用读的模式打开这个路径下的对应文本文件,如果要打开对像不存在,程序会报错。
二、open()函数文件打开模式参数常用值有哪些?
刚才打开文件过程中用到了‘r’这个参数,在文件打开过程中还会用到很多操作方法,都有不同的参数来表示。'r'读模式、'w'写模式、'a'追加模式、'b'二进制模式、'+'读/写模式。
三、python文件写入操作
>>>f = open('a.txt', 'w')
>>>f.write('hello,')
>>>f.write('iplaypython')
>>>f.close()
第一行:用写的方式打开a.txt这个文件,并赋给f (python变量命名规则)
第二行:f.write方法写入( )括号内的内容
第三行:同第二行意义相同,重点要说明下f.write写入的内容会追加到文件中已存在的数据后,也就是就此时的'iplaypython'是在'hello,'后边显示的。
第四行:最后调用close方法关闭文件,有打开就要有关闭。
四、python文件读取操作方法
要进行读文件操作,只需要把模式换成'r'就可以,也可以把模式为空不写参数,也是读的意思,因为程序默认是为'r'的。
>>>f = open('a.txt', 'r')
>>>f.read(5)
'hello'
read( )是读文件的方法,括号内填入要读取的字符数,这里填写的字符数是5,如果填写的是1那么输出的就应该是‘h’。
打开文件文件读取还有一些常用到的技巧方法,像下边这两种:
1、read( ):表示读取全部内容
2、readline( ):表示逐行读取
Python open()函数文件打开、读、写基础操作就先介绍这些,更深入的文件操作方法在今后的文章中会逐一单独
摘自
http://www.iplaypy.com/wenda/difference.html
DHCP是动态主机配置协议,英文为Dynamic Host Configuration Protocol。
DHCP功能:
保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
DHCP应当可以给用户分配永久固定的IP地址。
DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的 使用该地址。
动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机