您的位置:首页 > 编程语言 > Python开发

python 常用方法总结

2015-12-01 16:25 197 查看


1.isalnum()方法


描述

Python isalnum() 方法检测字符串是否由字母和数字组成。


语法

isalnum()方法语法:
str.isa1num()


参数


无。


返回值

如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False


实例

以下实例展示了isalnum()方法的实例:
#!/usr/bin/python

str = "this2009";  # No space in this string
print str.isalnum();

str = "this is string example....wow!!!";
print str.isalnum();


以上实例输出结果如下:
True
False


2.Python lower()方法


描述

Python lower() 方法转换字符串中所有大写字符为小写。


语法

lower()方法语法:
str.lower()


参数

无。


返回值

返回将字符串中所有大写字符转换为小写后生成的字符串。


实例

以下实例展示了lower()的使用方法:
#!/usr/bin/python

str = "THIS IS STRING EXAMPLE....WOW!!!";

print str.lower();


以上实例输出结果如下:
this is string example....wow!!!


3.enumerate 函数

用法:用于遍历序列中的元素以及它们的下标:

>>> for i,j in enumerate(('a','b','c')):

print i,j

0 a

1 b

2 c

>>> for i,j in enumerate([1,2,3]):

print i,j

0 1

1 2

2 3

>>> for i,j in enumerate({'a':1,'b':2}):

print i,j

0 a

1 b

>>> for i,j in enumerate('abc'):

print i,j

0 a

1 b

2 c


4.eval()函数

eval
通常用来执行一个字符串表达式,并返回表达式的值。

eval(expression[, globals[, locals]])


有三个参数,表达式字符串,
globals
变量作用域,
locals
变量作用域。
其中第二个和第三个参数是可选的。
如果忽略后面两个参数,则
eval
在当前作用域执行。

>>> a=1
>>> eval("a+1")
2
>>>


如果指定
globals
参数

>>> a=1
>>> g={'a':10}
>>> eval("a+1",g)
11
>>>


如果指定
locals
参数

>>> a=10
>>> b=20
>>> c=20
>>> g={'a':6,'b':8}
>>> l={'b':9,'c':10}
>>> eval("a+b+c",g,l)
25
>>>


如果要严格限制
eval
执行,可以设置
globals
__builtins__
,这样
这个表达式只可以访问
__builtin__
module。


忠告

exec
,
eval
给我带来了极大的灵活性,同时也带来了隐含的危险性,
当我们使用它们的时候应该总是记得详细指定其执行的作用域。

5.python本身没有switch语句,解决方法有以下3种:

A.使用dictionary
#coding:utf8
#add minus divide using python
from __future__ import division
def jia(x,y):
return x+y
def jian(x,y):
return x-y
def cheng(x,y):
return x*y
def chu(x,y):
return x/y
operator={"+":jia,"-":jian,"*":cheng,"/":chu}
def f(x,o,y):
print(operator.get(o)(x,y))
f(1,'+',3)
f(1,'-',3)
f(2,'*',3)
f(1,'/',3)

B.使用lambda
  def calc(a, b, o):
return {'+': lambda x, y: x + y, '-': lambda x, y: x - y, '*': lambda x, y: x * y}[o](a, b)

calc(10, 20, '+')
C.Brian Beck提供了一个类 switch 来实现其他语言中switch的功能
# This class provides the functionality we want. You only need to look at
# this if you want to know how this works. It only needs to be defined
# once, no need to muck around with its internals.
class switch(object):
def __init__(self, value):
self.value = value
self.fall = False

def __iter__(self):
"""Return the match method once, then stop"""
yield self.match
raise StopIteration

def match(self, *args):
"""Indicate whether or not to enter a case suite"""
if self.fall or not args:
return True
elif self.value in args: # changed for v1.5, see below
self.fall = True
return True
else:
return False

# The following example is pretty much the exact use-case of a dictionary,
# but is included for its simplicity. Note that you can include statements
# in each suite.
v = 'ten'
for case in switch(v):
if case('one'):
print 1
break
if case('two'):
print 2
break
if case('ten'):
print 10
break
if case('eleven'):
print 11
break
if case(): # default, could also just omit condition or 'if True'
print "something else!"
# No need to break here, it'll stop anyway

6、join()函数

语法: 'sep'.join(seq)

参数说明

sep:分隔符。可以为空

seq:要连接的元素序列、字符串、元组、字典

上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );


以上实例输出结果如下:
a-b-c


7.zip()函数

一、定义:

zip([iterable, ...])

zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。

二、用法示例:

读者看看下面的例子,对zip()函数的基本用法就可以明白了:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)
[(1, 2, 3), (4, 5, 6)]


8.split()方法

描述

Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

语法

split()方法语法:
str.split(str="", num=string.count(str)).

参数

str -- 分隔符,默认为空格。

num -- 分割次数。

返回值

返回分割后的字符串列表。

实例

以下实例展示了split()函数的使用方法:
#!/usr/bin/python

str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );


以上实例输出结果如下:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']


9.sort函数

sort函数是序列的内部函数

函数原型:
L.sort(cmp=None, key=None, reverse=False)

函数作用:

它是把L原地排序,也就是使用后并不是返回一个有序的序列副本,而是把当前序列变得有序

参数说明:

(1) cmp参数

cmp接受一个函数,拿整形举例,形式为:

def f(a,b):

return a-b

如果排序的元素是其他类型的,如果a逻辑小于b,函数返回负数;a逻辑等于b,函数返回0;a逻辑大于b,函数返回正数就行了

(2) key参数

key也是接受一个函数,不同的是,这个函数只接受一个元素,形式如下

def f(a):

return len(a)

key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序

(3) reverse参数

接受False 或者True 表示是否逆序

sort举例:

(1)按照元素长度排序

[align=left]L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}][/align]
[align=left]def f(x):[/align]
[align=left] return len(x)[/align]
sort(key=f)
[align=left]print L[/align]

[align=left]输出:[/align]

[align=left][{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}][/align]

[align=left](2)按照每个字典元素里面key为1的元素的值排序[/align]

[align=left]L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}][/align]
[align=left]def f2(a,b):[/align]
[align=left] return a[1]-b[1][/align]
[align=left]L.sort(cmp=f2)[/align]
[align=left]print L[/align]

[align=left]输出:[/align]

[align=left][{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}][/align]
[align=left]注意:[/align]

sorted函数是内建函数,他接受一个序列,返回有序的副本

他与sort的唯一区别就是会返回副本

10.Strip()函数

函数原型

声明:s为字符串,rm为要删除的字符序列

s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符

注意:

1. 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')

例如:



2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

例如 :



11.移位操作

左移运算符 <<

方法: X<<N 将一个数字X所对应的二进制数向左移动N位.

举例:

3<<2

解法:11向左移动两位变为1100,即12.

右移动运算符 >>

方法: X>>N 将一个数字X所对应的二进制数向右移动N位.

举例:

3>>2

解法:11向右移动两位变为0.

10>>1

解法:10的二进制是1010,向右边移动一位是101,即5.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: