文档库 最新最全的文档下载
当前位置:文档库 › python_内置函数_练习3

python_内置函数_练习3

python_内置函数_练习3
python_内置函数_练习3

本练习的重点:通过实现与内置函数相同功能的函数来达到锻炼提升编码能力的目的。

1.abs(x)函数

返回一个数的绝对值。 参数可以是一个整数或浮点数。 如果参数是一个复数,则返

回它的模。 如果 x 定义了 abs(),则 abs(x) 将返回 x.abs()。

2.class complex([real[, imag]]) 函数

返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参

是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。

当从字符串转换时,字符串在 + 或 - 的周围必须不能有空格。例如 complex('1+2j')

是合法的,但 complex('1 + 2j') 会触发 ValueError 异常。

3.isinstance(object, classinfo) 函数

如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回

True。 否则返回 False。 如果 classinfo 是类型对象元组(或由其他此类元组递归

组成的元组),那么如果 object 是其中任何一个类型的实例就返回 True。 如果

classinfo 既不是类型,也不是类型元组或类型元组的元组,则将引发 TypeError 异

常。

In [25]:print(abs(-1))

print(abs(-1.212))

print(abs(complex('1+2j'))) # 返回 sqrt(1+4)

a = complex('1+2j')

1

1.212

2.23606797749979

请实现下面的函数,模仿abs函数的功能,返回数字的绝对值。

In [23]:import math

# 方法1

def my_abs_1(number):

if type(number) == int or type(number) == float:

if number < 0:

return number*(-1)

else:

return number

elif type(number) == complex:

return math.sqrt(number.real**2 + number.imag**2)

#方法2

# 判断变量类型,可以使用isinstance函数,

# 该函数的第一个参数是需要检查类型的对象,

# 第二个参数可以是数据类型,也可以是一个元组,

# 元组里是多个数据类型,只要满足其中一个就返回True

def my_abs_2(number):

if isinstance(number, (float,int)):

if number < 0:

return number*(-1)

else:

return number

elif isinstance(number, complex):

return math.sqrt(number.real**2 + number.imag**2)

if __name__ == "__main__":

print(abs(-1), end = " ")

print(abs(-1.212), end = " ")

print(abs(complex('1+2j')), end = " \n")

print(my_abs_1(-1), end = " ")

print(my_abs_1(-1.212), end = " ")

print(my_abs_1(complex('1+2j')), end = " \n")

print(my_abs_2(-1), end = " ")

print(my_abs_2(-1.212), end = " ")

print(my_abs_2(complex('1+2j')), end = " ")

1 1.21

2 2.23606797749979

1 1.21

2 2.23606797749979

4. sum(iterable, /, start=0)函数

从 start 开始自左向右对 iterable 的项求和并返回总计值。 iterable 的项通常为数

字,而 start 值则不允许为字符串。

对某些用例来说,存在 sum() 的更好替代。 拼接字符串序列的更好更快方式是调用

''.join(sequence)。 要以扩展精度对浮点值求和,请参阅 math.fsum()。 要拼接一

系列可迭代对象,请考虑使用 itertools.chain()。

sum 函数可以获取列表所有数据的总和,模仿这个功能实现下面的函数In [48]:sum ((1.1,2,3))

# sum([1,2,3, [1,2,3]])In [43]:def my_sum (lst):

'''

返回列表里所有数据的总和

:param lst:

:return:

'''

sum = 0

if not isinstance (lst, (list , tuple , set )):

return None

for i in lst:

if isinstance (i, (float , int )):

sum += i

else :

print ("error!!!")

return

return sum

if __name__ == "__main__":

print (sum ([1.1,2,3]), sum ((1.1, 2, 3)), sum ({1.1,2,3}))

print (my_sum([1.1,2,3]), my_sum((1.1, 2, 3)), my_sum({1.1,2,3})) #print(sum([1.1,2,3, [1,2,3]]))

#print(my_sum([1.1,2,3,[1,2,3]]))

5. max(iterable, [, key, default]) max(arg1, arg2,

args[, key]) 函数1 1.212 2.23606797749979

Out[48]: 6.1

6.1 6.1 6.1

6.1 6.1 6.1

返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。

如果只提供了一个位置参数,它必须是非空 iterable ,返回可迭代对象中最大的元

素;如果提供了两个及以上的位置参数,则返回最大的位置参数。

实现下面的函数,实现max()函数同样的功能,如果序列里有非数字类型的数据,可以忽略,如果序列是空的,可以直接返回None In [55]:def my_max (lst):

'''

返回lst 里所有数据的最大值(Tuple, list, set)

:param lst:

:return:

'''

dd = float ("inf")

max_value = -dd

if not isinstance (lst, (list , tuple , set )):

return None

if len (lst) == 0:

return len (lst)

for i in lst:

if isinstance (i, (float , int )):

if i > max_value:

max_value = i

else :

print ("error!!!")

return

return max_value

if __name__ == "__main__":

print (max ([1.1,2,3]), max ((1.1, 2, 3)), max ({1.1,2,3}))

print (my_max([1.1,2,3]), my_max((1.1, 2, 3)), my_max({1.1,2,3})) #print(sum([1.1,2,3, [1,2,3]]))

#print(my_sum([1.1,2,3,[1,2,3]]))

6. min(iterable, [, key, default]) min(arg1, arg2,

args[, key]) 函数返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。

如果只提供了一个位置参数,它必须是非空 iterable ,返回可迭代对象中最小的元

素;如果提供了两个及以上的位置参数,则返回最小的位置参数。

3 3 3

3 3 3

实现下面的函数,实现min()函数同样的功能,如果序列里有非数字类型的

数据,可以忽略,如果序列是空的,可以直接返回None

In [57]:def my_min(lst):

'''

返回lst里所有数据的最小值(Tuple, list, set)

:param lst:

:return:

'''

dd = float("inf")

min_value = dd

if not isinstance(lst, (list, tuple, set)):

return None

if len(lst) == 0:

return len(lst)

for i in lst:

if isinstance(i, (float, int)):

if i < min_value:

min_value = i

else:

print("error!!!")

return

return min_value

if __name__ == "__main__":

print(min([1.1,2,3]), min((1.1, 2, 3)), min({1.1,2,3}))

print(my_min([1.1,2,3]), my_min((1.1, 2, 3)), my_min({1.1,2,3}))

#print(sum([1.1,2,3, [1,2,3]]))

#print(my_sum([1.1,2,3,[1,2,3]]))

1.1 1.1 1.1

1.1 1.1 1.1

7. class int([x]) class int(x, base=10)函数

返回一个基于数字或字符串 x 构造的整数对象,或者在未给出参数时返回 0, 对于浮

点数,它将向零舍入。

可以将float,全是数字的字符串转成int类型的数据

如果 x 不是数字,或者有 base 参数,x 必须是字符串、bytes、表示进制为 base

的 整数字面值 的 bytearray 实例。

In [62]:print(int("45689"), int(456.89))

45689 456

将全是由数字组成的字符串转成int类型数据,例如将字符串"45689" 转成整

数45689

In [73]:# 该种方法可以得到类似的答案,但是类型不一样,需要注意

def my_int(para):

"""

将字符串para转成int类型数据

不考虑para的类型,默认就是符合要求的字符串

传入字符串"45689" 返回整数45689

:param para:

:return:

"""

if isinstance(para, str):

if para.isdigit():

return para

else:

return None

if isinstance(para, float):

para1 = str(para).split(".")[0]

return para1

# 采用字典的方法进行遍历,利用456 = 10*(10*4+5)+6

dict_trans = {'0':0, '1':1, '2':2, '3':3, '4':4,

'5':5, '6':6, '7':7, '8':8, '9':9}

def my_int_2(para):

"""

将字符串para转成int类型数据

不考虑para的类型,默认就是符合要求的字符串

传入字符串"45689" 返回整数45689

:param para:

:return:

"""

tot_num = 0

if isinstance(para, str):

if para.isdigit():

for item in para:

value = dict_trans[item]

tot_num = 10*tot_num + value

return tot_num

else:

return "ERROR"

if isinstance(para, float):

para1 = str(para).split(".")[0] #以小数点来切割,转为字符串

for item in para1:

value = dict_trans[item]

tot_num = 10*tot_num + value

return tot_num

if __name__ == "__main__":

print(int("45689"), int(456.89), type(int("45689")), type(int(456.89)))

print(my_int("45689"), my_int(456.89), type(my_int("45689")), type(my_in

t(456.89)))

print(my_int_2("45689"), my_int_2(456.89), type(my_int_2("45689")), typ

e(my_int_2(456.89)))

8.class str(object='') class str(object=b'',encoding='utf-8', errors='strict') 函数

返回一个 str 版本的 object , 如果未提供 object 则返回空字符串。 在其他情况下

str() 的行为取决于 encoding 或 errors 是否有给出

str ()函数的功能非常强悍,想要模仿实现一个相同功能的函数是非常难的,因此只需要做到将int 类型的数据转换成字符串In [107]:# 通过字典将数字转换为字符

dict_trans = {0:'0', 1:'1', 2:'2', 3:'3', 4:'4',

5:'5', 6:'6', 7:'7', 8:'8', 9:'9'}

# 通过ascii 码表来获得与之对应的数字字符。

# 以3为例,chr(3+48)即可得到字符串'3',

# 其原理,字符串3的ascii 码表十进制数值为51,恰好比3大48,

# 其他数值,也同样如此

def my_str (para):

"""

将int 类型数字转换成字符串

:param para:

:return:

"""

lst = []

is_tag = True

if isinstance (para, int ):

if para < 0:

para = abs (para)

is_tag = False

lst .append(dict_trans[para % 10])

while para // 10 != 0:

para //= 10

lst .append(dict_trans[para % 10])

if not is_tag:

lst .append("-")

lst .reverse()

return "".join(lst)

if isinstance (para, float ):

return None

if __name__ == "__main__":

print (str (-123), str (123.78), type (str (123)), type (str (123.78)))

45689 456

45689 456

45689 456

print(my_str(-123), my_str(123.78), type(my_str(123)), type(my_str(123.7

8)))

-123 123.78

-123 None

9. class float([x])函数

返回从数字或字符串 x 生成的浮点数。

如果实参是字符串,则它必须是包含十进制数字的字符串,字符串前面可以有符

号,之前也可以有空格

将字符串转换成float类型的数据,且字符串都是符

合”xx.xx“格式的字符串,例如"55.55"

In [3]:dict_trans = {'0':0, '1':1, '2':2, '3':3, '4':4,

'5':5, '6':6, '7':7, '8':8, '9':9}

def my_int_2(para):

"""

将字符串para转成int类型数据

不考虑para的类型,默认就是符合要求的字符串

传入字符串"45689" 返回整数45689

:param para:

:return:

"""

tot_num = 0

if isinstance(para, str):

if para.isdigit():

for item in para:

value = dict_trans[item]

tot_num = 10*tot_num + value

return tot_num

else:

return "ERROR"

def my_float(para):

"""

将字符串para转成float类型数据

不考虑para的类型,默认就是符合要求的字符串

传入字符串"456.89" 返回整数456.89

:param para:

:return:

"""

if isinstance(para, str):

lst = para.strip().split(".")

int_value = my_int_2(lst[0])

partial_value = my_int_2(lst[1])

while partial_value > 1:

partial_value *= 0.1

return int_value + partial_value

if isinstance(para, int):

return para+0.0

if __name__ == "__main__":

print(float(" 55.55"), float(55), type(float(" 55.55")), type(float(5

5)))

print(my_float(" 55.55"), my_float(55), type(my_float(" 55.55")), typ

e(my_float(55)))

55.55 55.0

55.55 55.0

10.len(s) 函数

返回对象的长度(元素个数)。

实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如

dictionary、set 或 frozen set 等)。

自己编写函数,实现len()函数相同的功能,获取长度

In [13]:def my_len(para):

"""

获得para对象的长度

:param para:

:return:

"""

count = 0

if not isinstance(para, (tuple, list, str, dict,set)):

return None

for item in para:

count += 1

return count

if __name__ == "__main__":

print("len(1)报错", len("123 "), len([1,2,3, [1,2,3]]), len((1,2,3,

(1,2,3))))

print(my_len(1), my_len("123 "), my_len([1,2,3, [1,2,3]]), my_le

n((1,2,3,(1,2,3))))

len(1)报错 4 4 4

None 4 4 4

11. Yield语句

yield 表达式在定义 generator 函数或是 asynchronous generator 的时候才会用

到。 因此只能在函数定义的内部使用yield表达式。 在一个函数体内使用 yield 表达

式会使这个函数变成一个生成器,并且在一个 async def 定义的函数体内使用 yield

表达式会让协程函数变成异步的生成器。

参考网址1

参考网址2

- 通常的for...in...循环中,in后面是一个数组,这个数组就是

一个可迭代对象,类似的还有链表,字符串,文件。它可以是

mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]。

它的缺陷是所有数据都在内存中,如果有海量数据的话将会非

常耗内存。

- 生成器是可以迭代的,但只可以读取它一次。因为用的时候

才生成。比如 mygenerator = (x*x for x in range(3)),注意这

里用到了(),它就不是数组,而上面的例子是[]。

我理解的生成器(generator)能够迭代的关键是它有一个next()方法,工作原理就是通过重复调

用next()方法,直到捕获一个异常。可以用上面的mygenerator测试。

带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代,工作原理同

上。

yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:

下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。

简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后

(下一行)开始。

带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允

许迭代参数。比如array.extend函数,它的原型是array.extend(iterable)。

send(msg)与next()的区别在于send可以传递参数给yield表达式,这时传递的参数会作为yield

表达式的值,而yield的参数是返回给调用者的值。——换句话说,就是send可以强行修改上一

个yield表达式值。比如函数中有一个yield赋值,a = yield 5,第一次迭代到这里会返回5,a还

没有赋值。第二次迭代时,使用.send(10),那么,就是强行修改yield 5表达式的值为10,本来

是5的,那么a=10

send(msg)与next()都有返回值,它们的返回值是当前迭代遇到yield时,yield后面表达式的

值,其实就是当前迭代中yield后面的参数。

第一次调用时必须先next()或send(None),否则会报错,send后之所以为None是因为这时候

没有上一个yield(根据第8条)。可以认为,next()等同于send(None)。

In [28]:# 简单示例

def my_fun(n):

for i in range(n):

yield i, i+1

if __name__ == "__main__":

for i in my_fun(5):

print(i, end=" ")

print("\n", list(my_fun(5)))

(0, 1) (1, 2) (2, 3) (3, 4) (4, 5)

[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]

In [29]:# 稍微难一点示例

def my_fun_2(n):

for i in range(n):

yield i, i+1

print("i=", i) # 理解的关键在于:下次迭代时,代码从yield的下一语句开始执

行。

print("do some tests!")

print("end.")

if __name__ == "__main__":

for i in my_fun_2(5):

print(i, end=" ")

(0, 1) i= 0

(1, 2) i= 1

(2, 3) i= 2

(3, 4) i= 3

(4, 5) i= 4

do some tests!

end.

12. enumerate(iterable, start=0) 函数

返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对

象。

组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中

In [14]:seasons = ['Spring', 'Summer', 'Fall', 'Winter']

print(list(enumerate(seasons)))

# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

print(list(enumerate(seasons, start=1)))

# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

In [30]:def my_enumerate(sequence, start=0):

"""

实现和enumerate 类似的功能

:param sequence:

:return:

"""

n = start

for elem in sequence:

yield n, elem

n += 1

python考试复习题库

一、填空题 1、Python安装扩展库常用的是_工具。(pip) 2、Python标准库math中用来计算平方根的函数是____。(sqrt) 3、Python程序文件扩展名主要有__和两种,其中后者常用于GUI程序。(py、pyw) 4、Python源代码程序编译后的文件扩展名为___。(pyc) 5、使用pip工具升级科学计算扩展库numpy的完整命令是_______。(pip install –upgrade numpy) 6、使用pip工具查看当前已安装的Python扩展库的完整命令是___。(pip list) 7、在IDLE交互模式中浏览上一条语句的快捷键是____。(Alt+P) 8、使用pip工具查看当前已安装Python扩展库列表的完整命令是___。(pip list) 9、在Python中____表示空类型。(None) 10、列表、元组、字符串是Python的___(有序?无序)序列。(有序) 11、查看变量类型的Python内置函数是______。(type()) 12、查看变量内存地址的Python内置函数是_______。(id()) 13、以3为实部4为虚部,Python复数的表达形式为_或__。(3+4j、3+4J) 14、Python运算符中用来计算整商的是___。(//) 15、Python运算符中用来计算集合并集的是_。(|) 16、使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作_。(A < B ) 17、表达式[1, 2, 3]*3的执行结果为____________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 18、list(map(str, [1, 2, 3]))的执行结果为___________。([‘1’, ‘2’, ‘3’]) 19、语句x = 3==3, 5执行结束后,变量x的值为___。((True, 5)) 20、已知x = 3,那么执行语句x += 6 之后,x的值为_____。(9) 21、已知x = 3,并且id(x)的返回值为496103280,那么执行语句x += 6 之后,表达式id(x) == 496103280 的值为_。(False) 22、已知x = 3,那么执行语句x *= 6 之后,x的值为______。(18) 23、为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为扩展名____的文件。(pyc) 24、表达式“[3] in [1, 2, 3, 4]”的值为______。(False) 25、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为。(None) 26、假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是____________。([6, 7, 9, 11]) 27、使用列表推导式生成包含10个数字5的列表,语句可以写为_____。([5 for i in range(10)]) 28、假设有列表a = [‘name’, ‘age’, ‘sex’]和b = [‘Dong’, 38, ‘Male’],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为___________。(c = dict(zip(a, b))) 29、任意长度的Python列表、元组和字符串中最后一个元素的下标为__。(-1) 30、Python语句”.join(list(‘hello world!’))执行的结果是__________。(’hello world!’) 31、转义字符’\n’的含义是_________。(回车换行) 32、Python语句list(range(1,10,3))执行结果为_________。([1, 4, 7]) 33、表达式list(range(5)) 的值为______。([0, 1, 2, 3, 4]) 34、____命令既可以删除列表中的一个元素,也可以删除整个列表。(del) 35、已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为_。(True) 36、表达式int(‘123’, 16) 的值为___。(291) 37、表达式int(‘123’, 8) 的值为___。(83) 38、表达式int(‘123’) 的值为___。(123) 39、表达式int(‘101’,2) 的值为____。(5) 40、表达式abs(-3) 的值为_。(3)

Python常用内置函数总结

Python常用内置函数总结 一、数学相关 1、绝对值:abs(-1) 2、最大最小值:max([1,2,3])、min([1,2,3]) 3、序列长度:len('abc')、len([1,2,3])、len((1,2,3)) 4、取模:divmod(5,2)//(2,1) 5、乘方:pow(2,3,4)//2**3/4 6、浮点数:round(1)//1.0 二、功能相关 1、函数是否可调用:callable(funcname),注意,funcname变量要定义过 2、类型判断:isinstance(x,list/int) 3、比较:cmp('hello','hello') 4、快速生成序列:(x)range([start,] stop[, step]) 三、类型转换 1、int(x) 2、long(x) 3、float(x) 4、complex(x) //复数 5、str(x) 6、list(x) 7、tuple(x) //元组 8、hex(x) 9、oct(x) 10、chr(x)//返回x对应的字符,如chr(65)返回‘A' 11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65 四、字符串处理 1、首字母大写:str.capitalize 复制代码代码如下:

>>> 'hello'.capitalize() 'Hello' 2、字符串替换:str.replace 复制代码代码如下: >>> 'hello'.replace('l','2') 'he22o' 可以传三个参数,第三个参数为替换次数 3、字符串切割:str.split 复制代码代码如下: >>> 'hello'.split('l') ['he', '', 'o'] 可以传二个参数,第二个参数为切割次数 以上三个方法都可以引入String模块,然后用string.xxx的方式进行调用。 五、序列处理函数 1、len:序列长度 2、max:序列中最大值 3、min:最小值 4、filter:过滤序列 复制代码代码如下: >>> filter(lambda x:x%2==0, [1,2,3,4,5,6]) [2, 4, 6] 5、zip:并行遍历 复制代码代码如下:

python函数中文手册

内置函数 一,文档说明 原始文档来自于python v2.7.2 中文译文和用法尚不完全,您可以自由修改和完善, 您可以在文档结尾鸣谢添上您的名字,我们将会感谢您做的贡献! 二,函数列表 1,取绝对值 abs(x)

Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2, all(iterable) Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3. any(iterable)

Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4. basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj, basestring) is equivalent to isinstance(obj, (str, unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 方法: 5.二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

PYTHON3中文教程

Python已经是3.1版本了,与时俱进更新教程. ?本文适合有Java编程经验的程序员快速熟悉Python ?本文程序在windows xp+python3.1a1测试通过. ?本文提到的idle指python shell,即安装python后你在菜单看到的IDLE(python gui) ?在idle里ctrl+n可以打开一个新窗口,输入源码后ctrl+s可以保存,f5运行程序. ?凡打开新窗口即指ctrl+n的操作. #打开新窗口,输入:#!/usr/bin/python #-*-coding:utf8-*-s1=input("Input your name:")print("你好,%s"%s1)''' 知识点: *input("某字符串")函数:显示"某字符串",并等待用户输入. *print()函数:如何打印. *如何应用中文 *如何用多行注释 ''' 2字符串和数字 但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下: 运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换 #!/usr/bin/python #运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2

b="test" c=str(a)+b d="1111" e=a+int(d)#How to print multiply values print("c is%s,e is%i"%(c,e))''' 知识点: *用int和str函数将字符串和数字进行转换 *打印以#开头,而不是习惯的// *打印多个参数的方式''' #!/usr/bin/python #-*-coding:utf8-*- #列表类似Javascript的数组,方便易用#定义元组word=['a','b','c','d','e','f','g']#如何通过索引访问元组里的元素a=word[2]print("a is:"+a) b=word[1:3]print("b is:")print(b)#index1and2elements of word.c=word[:2]print ("c is:")print(c)#index0and1elements of word.d=word[0:]print("d is:")print(d)# All elements of word.#元组可以合并e=word[:2]+word[2:]print("e is:")print(e)#All elements of word.f=word[-1]print("f is:")print(f)#The last elements of word.g=word[-4:-2]print("g is:")print(g)#index3and4elements of word.h=word[-2:]print("h is:")print(h)#The last two elements.i=word[:-2]print("i is: ")print(i)#Everything except the last two characters l=len(word)print("Length of word is:"+str(l))print("Adds new element") word.append('h')print(word)#删除元素del word[0]print(word)del word[1:3]print (word)''' 知识点: *列表长度是动态的,可任意添加删除元素. *用索引可以很方便访问元素,甚至返回一个子列表 *更多方法请参考Python的文档'''

Python3基础教程二(个人整理)

Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所 指的内存中对象的类型。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。 多个变量赋值 Python允许你同时为多个变量赋值。例如: 以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。 您也可以为多个对象指定多个变量。例如: 以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "zzzzz" 分配给变量 c。标准数据类型 Python3 中有六个标准的数据类型: ?Number(数字) ?String(字符串) ?List(列表) ?Tuple(元组) ?Set(集合) ?Dictionary(字典)

Python3 的六个标准数据类型中: ?不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);?可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 Number(数字) Python3 支持int、float、bool、complex(复数)。 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。 内置的 type() 函数可以用来查询变量所指的对象类型。 此外还可以用 isinstance 来判断: isinstance 和 type 的区别在于: ?type()不会认为子类是一种父类类型。 ?isinstance()会认为子类是一种父类类型。

Python3 常用函数

Python3 常用函数.笔记 Python 3自学.笔记 type()检查变量数据: >>> x = 10 >>> type(x) (cla ss ‘int’) exit( ) 执行到此命令时,程序终止:!!! >>> a = 0 >>> w hile a < 20: a = a + 1 if a == 5: else:#执行到此命令时,程序终止 a = 100 >>> print(a) 5 abs()返回一个数的绝对值: >>> abs(3) 3 >>> abs(-3) 3 while _ _ _ : 循环执行程序: >>> n = 0 >>> w hile n < 3:#(a n d/o r/n o t) n = n + 1 print(n) Continue 继续下一轮循环 Break 退出整个循环 round()对小数进行四舍五入操作: >>> x = 3.1415926 >>> round(x , 2) #保留2位小数

3.14 for _ _ _ in _ _ _ : 可以遍历任何序列的项目(如一个列表或者一个字符串): >>> s = 'a bc def123456' >>> for i in s: print(i) a b c d ...... range( ) 返回一个可迭代对象: >>> range(20) range(0, 20) #默认以0开始 >>> a = 20 >>> for i in ra nge(0 , a , 5): #步长为:5(默认步长为1)print(i) 5 10 15 #计数到20但不包括20 >>> break 退出整个循环: >>> i = 0 >>> w hile i < 10: i = i + 1 if i == 5: Break #执行到此时退出循环结构 >>> print(i) 5 字符串:

python3内置函数大全

一、数学相关 1、绝对值:abs(-1) 2、最大最小值:max([1,2,3])、min([1,2,3]) 3、序列长度:len('abc')、len([1,2,3])、len((1,2,3)) 4、取模:divmod(5,2)//(2,1) 5、乘方:pow(2,3,4)//2**3/4 6、浮点数:round(1)//1.0 二、功能相关 1、函数是否可调用:callable(funcname),注意,funcname变量要定义过 2、类型判断:isinstance(x,list/int) 3、比较:cmp('hello','hello') 4、快速生成序列:(x)range([start,] stop[, step]) 三、类型转换 1、int(x) 2、long(x) 3、float(x) 4、complex(x) //复数 5、str(x) 6、list(x) 7、tuple(x) //元组 8、hex(x) 9、oct(x)

10、chr(x)//返回x对应的字符,如chr(65)返回‘A' 11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65 四、字符串处理 1、首字母大写:str.capitalize 复制代码代码如下: >>> 'hello'.capitalize() 'Hello' 2、字符串替换:str.replace 代码如下: >>> 'hello'.replace('l','2') 'he22o' 可以传三个参数,第三个参数为替换次数 3、字符串切割:str.split 代码如下: >>> 'hello'.split('l') ['he', '', 'o']

最新python常用函数资料

1.map()函数map()是Python 内置的高阶函数,它接收一个函数f和一个list,并通过把函数 f 依次作用在list 的每个元素上,得到一个新的list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数: 因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算: def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出结果: [1, 4, 9, 10, 25, 36, 49, 64, 81] 可以用列表替代 注意:map()函数不改变原有的list,而是返回一个新的list。

利用map()函数,可以把一个list 转换为另一个list,只需要传入转换函数。 由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的list,事实上它可以处理包含任意类型的list,只要传入的函数f可以处理这种数据类型。 假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list: 输入:['adam', 'LISA', 'barT'] 输出:['Adam', 'Lisa', 'Bart'] format_name(s)函数接收一个字符串,并且要返回格式化后的字符串,利用map()函数,就可以输出新的list。 参考代码: def format_name(s): return s[0].upper() + s[1:].lower() print map(format_name, ['adam', 'LISA', 'barT']) 2.reduce()函数 reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和map()类似,一个函数f,一个list,但行为和map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list 的每个元素反复调用函数f,并返回最终结果值。 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:

python2.72内置函数手册

Python2.72内置函数 1、文档说明 中文译文和用法尚待完善。 2、函数列表 1,取绝对值 abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2, all(iterable)

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3. any(iterable) Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4. basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj,basestring) is equivalent to isinstance(obj,(str,unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 方法: 5.二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer. 转换成二进制表达 方法: 6.布尔类型 bool([x]) Convert a value to a Boolean, using the standard truth testing procedure. If x is false or omitted, this returns False; otherwise it returns True. bool is also a class, which is a subclass of int. Class bool cannot be subclassed further. Its only instances are False and True 布尔类型的转化

python常用函数年初大总结

1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的name hasattr(obj,name) 查看一个obj的name space中是否有name getattr(obj,name) 得到一个obj的name space中的一个name setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object delattr(obj,name) 从obj的name space中删除一个name vars(obj) 返回一个object的name space。用dictionary表示 locals() 返回一个局部name space,用dictionary表示 globals() 返回一个全局name space,用dictionary表示 type(obj) 查看一个obj的类型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子类 类型转换函数 chr(i) 把一个ASCII数值,变成字符 ord(i) 把一个字符或者unicode字符,变成ASCII数值 oct(x) 把整数x变成八进制表示的字符串 hex(x) 把整数x变成十六进制表示的字符串

python入门教程3

B u i l t -i n f u n c t i o n d a t a t y p e 常用内置函数数据类型 4

1Python内置数据类型概述 D a t a t y p e s O v e r v i e w 2常用数据类型 C o m m o n d a t a t y p e s 4算数运算符和位运算符 Arithmetic operators and b i t w i s e o p e r a t o r s CONTENT 3比较关系运算和条 件表达式 P y t h o n O v e r v i e w 6内置标准数学函数 B u i l t i n s t a n d a r d mathematical function 5混合运算和数值类 型转换 Mixed operations and numeric type conversions

3 Python内置数据类型概述 ?Python语言中,一切皆为对象,而每个对象都属于某个数据类型。 ?Python的数据类型包括内置的数据类型、模块中定义的数据类型和用户自定义的类型。 ?数值数据类型(int,bool,float,complex) ?序列数据类型(str,tuple,bytes,list,bytearray) ?集合数据类型(set,frozenset) ?字典数据类型(dict) ?特殊数据类型(NoneType,NotImplementedType,EllipsisType) ?其他数据类型(模块,类,对象,函数)

?整数数据类型(int)是表示整数的数据类型。 ?Python的整数数位可以为任意长度数位(只受限制于计算机内存)。?整型对象是不可变对象。

python_内置函数_练习3

本练习的重点:通过实现与内置函数相同功能的函数来达到锻炼提升编码能力的目的。 1.abs(x)函数 返回一个数的绝对值。 参数可以是一个整数或浮点数。 如果参数是一个复数,则返 回它的模。 如果 x 定义了 abs(),则 abs(x) 将返回 x.abs()。 2.class complex([real[, imag]]) 函数 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参 是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。 当从字符串转换时,字符串在 + 或 - 的周围必须不能有空格。例如 complex('1+2j') 是合法的,但 complex('1 + 2j') 会触发 ValueError 异常。 3.isinstance(object, classinfo) 函数 如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回 True。 否则返回 False。 如果 classinfo 是类型对象元组(或由其他此类元组递归 组成的元组),那么如果 object 是其中任何一个类型的实例就返回 True。 如果

classinfo 既不是类型,也不是类型元组或类型元组的元组,则将引发 TypeError 异 常。 In [25]:print(abs(-1)) print(abs(-1.212)) print(abs(complex('1+2j'))) # 返回 sqrt(1+4) a = complex('1+2j') 1 1.212 2.23606797749979 请实现下面的函数,模仿abs函数的功能,返回数字的绝对值。 In [23]:import math # 方法1 def my_abs_1(number): if type(number) == int or type(number) == float: if number < 0: return number*(-1) else: return number elif type(number) == complex: return math.sqrt(number.real**2 + number.imag**2) #方法2 # 判断变量类型,可以使用isinstance函数, # 该函数的第一个参数是需要检查类型的对象, # 第二个参数可以是数据类型,也可以是一个元组, # 元组里是多个数据类型,只要满足其中一个就返回True def my_abs_2(number): if isinstance(number, (float,int)): if number < 0: return number*(-1) else: return number elif isinstance(number, complex): return math.sqrt(number.real**2 + number.imag**2) if __name__ == "__main__": print(abs(-1), end = " ") print(abs(-1.212), end = " ") print(abs(complex('1+2j')), end = " \n") print(my_abs_1(-1), end = " ") print(my_abs_1(-1.212), end = " ") print(my_abs_1(complex('1+2j')), end = " \n") print(my_abs_2(-1), end = " ") print(my_abs_2(-1.212), end = " ") print(my_abs_2(complex('1+2j')), end = " ") 1 1.21 2 2.23606797749979 1 1.21 2 2.23606797749979

Python3基础教程五(个人整理)

Python3 列表它的位置,或索引, - 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 1第一个索引是0,第二个索引是,依此类推。 6个序列的内置类型,但最常见的是列表和元组。Python有序列都可以进行的操作包括索引,切片,加,乘,检查成员。 Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。此外, Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表是最常用的列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:[; list3= , 4, 5], ]Zzzzz, '', 1997, 2000; list2 = [1, 23YYYY list1 = ['';], cd, ab, 开始。列表可以进行截取、组合等。与字符串的索引一样,列表索引从0 访问列表中的值使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示: 以上实例输出结果: 更新列表 你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示: 注意:我们会在接下来的章节讨论append()方法的使用 以上实例输出结果: 删除列表元素 语句来删除列表的的元素,如下实例: del 可以使用. 以上实例输出结果:]1997,2000原始列表'Zzzzz':['YYYY',,]'Zzzzz',2000删除第三个元素: ['YYYY',方法的使用注意:我们会在接下来的章节讨论 remove()

Python列表脚本操作符号用于重复列表。的操作符与字符串相似。+ 号用于组合列表,* 列表对 + 和 * 如下所示: Python列表截取与拼接 Python的列表截取与字符串操作类型,如下所示: L=['YYYY', 'Zzzzz', 'Zzzzz'] >>>L=['YYYY', 'Zzzzz', 'Zzzzz'] >>> L[2]'Zzzzz' >>> L[-2]'Zzzzz' >>> L[1:]['Zzzzz', 'Zzzzz'] >>> 列表还支持拼接操作: >>>squares = [1, 4, 9, 16, 25] ]100, 81, 64, 49, 36[ += squares>>> ], 81, 1002516, , 36, 49, 641>>> squares[, 4, 9, >>> 嵌套列表使用嵌套列表即在列表里创建其它列表,例如:>>>a = ['a', 'b', 'c'] >>> n = [1, 2, 3] >>> x = [a, n] >>> x[['a', 'b', 'c'], [1, 2, 3]]

python内嵌函数列表

本节介绍的函数在解释器中总是可用的,他们被包含在 __builtin__ 模块里.另外每个模块的 __builtins__ 属性经常指的是这个模块(除了当在restricted execution环境下运行时). _(下划线) 默认情况下,变量 _ 用于在交互模式下表示最近一个表达式的运行结果. 参阅 sys.displayhook (118) __import__(name [, globals [, locals [, fromlist]]]) import语句通过调用这个函数来导入模块. name是包含模块名字的字符串, globals是一个可选的定义全局名称空间的字典, locals是定义局部名称空间的字典, fromlist是from语句目标的列表.例如, import spam语句会调用 __import__('spam', globals(), locals(), []) ,而from spam import foo 语句会调用 __import__('spam', globals(), locals(), ['foo']). 如果模块名在包名字之后(如foo.bar)而且fromlist为空时,就返回对应的模块对象.如果fromlist不为空,则只会返回最顶级的包. 这个函数是一个低等级的模块载入接口.它并不执行import语句的所有步骤(通常情况下局部名称空间并不会随模块中包含对象的名称引用的改变而改变.这个函数可以由用户来重新定义,这样为import语句加入新的行为.默认的执行并不会检查locals参数,而globals只用于决定包的内容(这些参数可以使 __import__()能够完整地访问全局和局部名称空间) abs(x) 返回x的绝对值 apply(func [, args [, keywords]]) 对可调用对象func执行函数调用. args是一个包含固定位置参数的元组, keywords是包含关键参数的字典. apply()函数也可以写做 func(*args ,**keywords ). buffer(sequence [, offset [, size]]) 创建一个新的缓冲器对象.缓冲器通常是一个序列(如字符串)的字节导向序列.缓冲器和字符串在许多地方是相同的,但是它不支持字符串方法,而且也不能使用string模块的函数. callable(object) 当object为可调用对象时返回True,否则返回False

python字符串内置函数

a='helLO' print(a.title()) # 首字母大写a='1 2'

执行结果:1 2 1 2 1 2 00000001 2 1 2 3 4 5 6 7 8 # 3 字符串搜索相关 .find() # 搜索指定字符串,没有返回-1 .index() # 同上,但是找不到会报错 .rfind() # 从右边开始查找 .count() # 统计指定的字符串出现的次数 # 上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find s='hello world' print(s.find('e')) # 搜索指定字符串,没有返回-1 print(s.find('w',1,2)) # 顾头不顾尾,找不到则返回-1不会报错,找到了 则显示索引 print(s.index('w',1,2)) # 同上,但是找不到会报错 print(s.count('o')) # 统计指定的字符串出现的次数 print(s.rfind('l')) # 从右边开始查找 # 4字符串替换 .replace('old','new') # 替换old为new .replace('old','new',次数) # 替换指定次数的old为new s='hello world' print(s.replace('world','python')) print(s.replace('l','p',2)) print(s.replace('l','p',5)) 执行结果: hello python heppo world heppo worpd

# 5字符串去空格及去指定字符 .strip() # 去两边空格 .lstrip() # 去左边空格 .rstrip() # 去右边空格 .split() # 默认按空格分隔 .split('指定字符') # 按指定字符分割字符串为数组 s=' h e-l lo ' print(s) print(s.strip()) print(s.lstrip()) print(s.rstrip()) print(s.split('-')) print(s.split()) # 6字符串判断相关 .startswith('start') # 是否以start开头 .endswith('end') # 是否以end结尾 .isalnum() # 是否全为字母或数字 .isalpha() # 是否全字母 .isdigit() # 是否全数字 .islower() # 是否全小写 .isupper() # 是否全大写 .istitle() # 判断首字母是否为大写 .isspace() # 判断字符是否为空格 # 补充 bin() # 十进制数转八进制 hex() # 十进制数转十六进制 range() # 函数:可以生成一个整数序列 type() # 查看数据类型 len() # 计算字符串长度 format() # 格式化字符串,类似%s,传递值能多不能少

内置函数

内置函数 常用函数 1.数学相关 ?abs(x) abs()返回一个数字的绝对值。如果给出复数,返回值就是该复数的模。 ?divmod(x,y) divmod(x,y)函数完成除法运算,返回商和余数。 ?pow(x,y[,z]) pow()函数返回以x为底,y为指数的幂。如果给出z值,该函数就计算x的y次幂值被z 取模的值。

?round(x[,n]) round()函数返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 ?min(x[,y,z...]) min()函数返回给定参数的最小值,参数可以为序列。 ?max(x[,y,z...]) max()函数返回给定参数的最大值,参数可以为序列。

2.序列相关 ?len(object) -> integer len()函数返回字符串和序列的长度。 ?range([lower,]stop[,step]) range()函数可按参数生成连续的有序整数列表。 ?xrange([lower,]stop[,step]) xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为 与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能为我们节省内存。

3.对象及类型 ?callable(object) callable()函数用于测试对象是否可调用,如果可以则返回1(真);否则返回0(假)。可调用对象包括函数、方法、代码对象、类和已经定义了调用方法的类实例。 ?cmp(x,y) cmp()函数比较x和y两个对象,并根据比较结果返回一个整数,如果xy,则返回1,如果x==y则返回0。

python字符串常用函数

字符串常用函数 replace(string,old,new[,maxsplit]) 字符串的替换函数,把字符串中的old替换成new。默认是把string中所有的old值替换成new 值,如果给出maxsplit值,还可控制替换的个数,如果maxsplit为1,则只替换第一个old 值。 >>>a="11223344" >>>print string.replace(a,"1","one") oneone2223344 >>>print string.replace(a,"1","one",1) one12223344 capitalize(string) 该函数可把字符串的首个字符替换成大字。 >>> import string >>> print string.capitalize("python") Python split(string,sep=None,maxsplit=-1) 从string字符串中返回一个列表,以sep的值为分界符。 >>> import string >>> ip="192.168.3.3" >>> ip_list=string.split(ip,'.') >>> print ip_list ['192', '168', '3', '3'] all( iterable) 如果迭代的所有元素都是真就返回真。 >>> l = [0,1,2,3] >>> all(l) Flase >>> l = [1,2,3] >>> all(l) True any( iterable) 如果迭代中有一个元素为真就返回真。 >>> l = [0,1,2,3] >>> all(l) True >>> l = [1,2,3] >>> all(l) True basestring() 这个抽象类型是str和unicode的父类。它不能被调用或初始化,但是它可以使用来测试一

相关文档