python十大常用函数_自己整理的Python的常用函数

两种输入方式

sys.stdin.readline( )会将标准输入全部获取,而input()不会获取字符串末尾的换行符。

如何对字符串表达式进行计算

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

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

set 用法

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

收件人去重,并保持原来的收件人顺序

mailto = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa']

addr_to = list(set(mailto))

addr_to.sort(key = mailto.index)

随机数

import random

random.randint(1,10) #no. between 0 and 10

字符串转换为ASCII

ord(str)

ASCII转换为字符串

chr(ascii)

十六进制转换为十进制

while True:

try:

string = input()

print(int(string, 16))

except:

break

怎么判断键是否为空

#生成一个字典

d = {'name':Tom, 'age':10, 'Tel':110}

#打印返回值

print d.has_key('name')

#结果返回True

遍历字典键值

for key,value in a.items():

print(key+':'+value)

检验字符串中某个字符出现的次数

str.count(sub, start=0, end=len(string))

--sub 搜索的子字符串

--start 字符串开始搜索的位置

--end 字符串中结束搜索的位置

返回一个二进制数

-- bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

>>> bin(10)

'0b1010'

>>> bin(20)

'0b10100'

-- 为了将一个数字转换为八进制数,可以使用oct().

-- 为了将一个数字转为十六进制数,可以使用hex().

输入字符串分为两个整型变量

N,m = map(int,raw_input().split())

创建一个二维矩阵的方法

a = [[0]*(N+1) for _ in range(m+1)]

dp = [[0 for i in range(N+1)] for j in range(m+1)]

-- 表示a包含有m+1个子列表,其中每一个子列表都包含有N+1个元素

判断字符串为空

str=""

if str.strip()=="":

print("str is null")

if not str.strip():

print("str is null")

如何验证一个字符串是否包含有相同长度超过2的子串

def fun3(s):

for i in range((len(s)-3)):

if s[i:i+3] in s[i+1:]:

return False

break

return True

删除字典元素的方法

如果是清空字典中所有元素信息,clear()方法是用来清除字典中的所有数据,因为是原地操作,所以返回None(也可以理解为没有返回值)

>>> x['name'] = 'lili'

>>> x['age'] = 20

>>> x

{'age': 20, 'name': 'lili'}

>>> returned_value = x.clear()

>>> x

{ }

>>> print returned_value

None

如果是删除指定信息,移除字典数据pop()方法的作用是:删除指定给定键所对应的值,返回这个值并从字典中把它移除。注意字典pop()方法与列表pop()方法作用完全不同。

>>> x = {'a':1,'b':2}

>>> x.pop('a')

1

>>> x

{'b': 2}

怎么根据字典的值查找对应的key

student = {'小萌': '1001', '小智': '1002', '小强': '1003', '小明': '1004'}

-- 充分利用 keys() 、values()、index() 函数

>>> list (student.keys()) [list (student.values()).index ('1004')]

最终得到结果是:'小明'

判断字符串中的所有字符是否为 字母/数字/字母数字的组合

#用isdigit函数判断是否数字

print(str_1.isdigit())

Ture

print(str_2.isdigit())

False

print(str_3.isdigit())

False

#用isalpha判断是否字母

print(str_1.isalpha())

False

print(str_2.isalpha())

Ture

print(str_3.isalpha())

False

#isalnum判断是否数字和字母的组合

print(str_1.isalnum())

False

print(str_2.isalnum())

False

print(str_1.isalnum())

如何将列表变为带索引的序列

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']

>>> list(enumerate(seasons))

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

>>> list(enumerate(seasons, start=1)) # 小标从 1 开始

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

python 怎么对一个数字进行开方

使用math模块

import math

math.sqrt(144) # 12

使用内置函数pow

pow(144, 0.5) # 12

使用数学表达式

144**0.5 # 12.0

字符串替换其中某一个字符

str.replace(c,'haha')

字符串比较

>>> import operator

>>> operator.eq('hello', 'name');

False

>>> operator.eq('hello', 'hello');

True

使用正则表达式切分字符串

import re

re.split(rex, str)

-- rex 正则表达式格式

-- str 要被切分的字符串

python strip()

a = '*'

str.strip() -- 删除字符串左右的*符号

str.lstrip(a) -- 表示删除字符串左边的*符号

str.rstrip(a) -- 表示删除字符串右边的*符号

向一个列表中的指定位置插入和删除元素

快速创建一个list

1. split方法

a_List = str.split('sep')

2. list函数和range函数

a_List = list(range(10))

新增item

1. concatenation添加

这种方法添加的是另外一个列表,且两个列表可以组合成为一个新的列表,例如:

a_List = a_List + [1,0,2]

2. append方法添加。

该方法在原列表末尾添加一个item,item的类型任意

a_List.append('hello') //在原有列表末尾添加一个类型为字符串的item

a_List.append(['hello']) //在原有列表末尾添加一个类型为列表的item

3. extend方法添加

类似于concatenation,只接受列表参数,然后把列表中的item分解,最后添加到原有列表

a_List.extend('hello') //在原有列表末尾添加5个字符item,因为它把hello视为列表

>>> a.extend('hello')

>>> a

['wang', 'h', 'e', 'l', 'l', 'o']

a_List.extend(['hello']) //在原有列表末尾添加1个item

4.insert方法添加

insert()方法,可以在原列表中插入item

a_list.insert(0,'c') //在原有列表的0位置添加一个字符

a_list.insert(0.['c']) //在原有列表的0位置添加一个列表

删除元素有三种方法:

1. remove: 删除单个元素,删除首个符合条件的元素,按值删除

举例说明:

>>> str=[1,2,3,4,5,2,6]

>>> str.remove(2)

>>> str

[1, 3, 4, 5, 2, 6]

2. pop: 删除单个或多个元素,按位删除(根据索引删除),同时返回被删除的item值;若不指定索引,默认删除最后一个item

举例说明:

>>> str=[0,1,2,3,4,5,6]

>>> str.pop(1) #pop删除时会返回被删除的元素

1

>>> str

[0, 2, 3, 4, 5, 6]

3. del:它是根据索引(元素所在位置)或者切片来删除

举例说明:

del a_List[0] //删除列表的第一个值

del a_List[:2] //删除列表的前两个值

其他

检索列表的值,四种方式:in、not in、count、index,后两种方式是列表的方法。

示例列表:a_list = ['a','b','c','hello']:

判断值是否在列表中,in操作符:

'a' in a_list //判断值a是否在列表中,并返回True或False

判断值是否不在列表,not in操作符:

'a' not in a_list //判断a是否不在列表中,并返回True或False

统计指定值在列表中出现的次数,count方法:

a_list.count('a') //返回a在列表中的出现的次数

查看指定值在列表中的位置,index方法:

a_list.index('a') //返回a在列表中每一次出现的位置,默认搜索整个列表

a_list.index('a',0,3) //返回a在指定切片内第一次出现的位置

字符串大小写转换

str.lower()

str.upper()

深拷贝和浅拷贝

# 对于数字和字符串而言,深拷贝,浅拷贝都一样,因为永远指向同一个内存地址

import copy

n1 = 123

n2 = n1

print(id(n1))

print(id(n2))

n2 = copy.copy(n1)

n2 = copy.deepcopy(n1)

# 对于字典,元组,列表而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的

1. 赋值。只创建一个变量,且该变量指向原来的内存地址。

2. 浅拷贝,在内存中只额外创建第一层数据

3. 深拷贝。在内存中将所有数据重新创建一份

怎么样直接获取整除和求余的结果

c, d = divmod(m, n)

-- 其中,c = m//n, d = m%n

什么是python的函数闭包

在一个内部函数里,对外部作用域(但不是全局作用域)的变量进行引用,那么内部函数和它的环境变量结合在一起,就形成了一个闭包。

局部作用域可以访问外部作用域,但是不能更改外部作用域中的变量,一旦进行了修改,就会将外部作用域中的变量当成是一个局部变量。

为了解决这个问题,可以在内部函数中重新声明一个变量,使用关键字nonlocal使得解释器能够从外部作用域查找变量名。

创建闭包的条件:

闭包函数中存在执行完毕仍然存在的对象

new 和 init的区别

其中,init主要是用于初始化实例,如果要新添加属性,可以使用。new主要是用于生成实例,当继承一些不可变动的类,比如str,int,等,可以使用new来进行重载。

init是当实例对象创建完成以后被调用的,然后设置实例对象属性的一些初始值,而new则是实例在创建之前被调用,她的作用是创建实例并返回这个实例。

也就是说,new在init之前被调用,new的返回值将传递给init方法的第一个参数,然后init给这个实例设置一些参数。

单个下划线 _ 与双下划线__的区别

单下划线

解释器。 单下划线在交互解释器中最后一次执行语句的返回结果。

作为名称使用。 单下划线被用作一个被丢弃的名称,例如: n = 42

for _ in range(n):

print('hello')

_还可以被用作函数名。这种情况,单下划线经常被用作国际化和本地化字符串翻译查询的函数名。

以单下划线做前缀的名称指定了这个名称是“私有的”。

双下划线

任何__spam这种形式(至少以两个下划线做开头,绝大部分都还有一个下划线做结尾)的标识符,都会文本上被替换为_classname__spam,其中classname是当前类名,并带上一个下划线做前缀。

另一种是魔术变量: spam

python的自省有哪些

type()/ dir()/ getattr()/ hasattr()/ isinstance()

待更新...

python 怎么调用shell脚本

test.sh:

#!/bin/bash

echo "hello world!"

exit 3

如果我们需要获得os.system的正确返回值,那使用位移运算可以还原返回值:

>>> n = os.system(test.sh)

>>> n >> 8

>>> 3

os.popen(cmd):

这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)。使用os.popen调用test.sh的情况:

>>> file = os.popen(test.sh)

>>> file.read()

>>> ‘hello world!\n’

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值