python常用函数总结
2020-08-29 22:21 清风软件测试开发 阅读(1662) 评论(0) 编辑 收藏 举报python常用函数总结
普通函数
一、输入输出函数
1、print()函数
输出函数
向屏幕输出指定的汉字
print("hello world")
print()函数可以同时输出多个字符串,用逗号“,”隔开
print("hello","how","are","you")
print()会依次打印每个字符串,遇到逗号“,”会输出空格,输出的内容是这样的:
hello how are you
print()可以打印整数,或者计算结果
>>>print(300)
300
>>>print(100 + 200)
300
我们也可以把打印的结果显示的再漂亮一些
>>>print("100 + 200 =", 100 + 200) 100 + 200 = 300
注意:对于字符串"100 + 200 ="它会原样输出,但是对于100+200,python解释器自动计算出结果为300,因此会打印出上述的结果。
字符串相加,进行字符串的连接,且不产生空格
print("hello","你好") # 使用”,“进行连接 print("he" + "llo") # 字符串相加,进行字符串的连接,且不产生空格 print(10+30) # 没有使用引号括起来,默认为数值,若是使用引号括起来,就是字符串 # 若是数值使用加号连接,默认是表达式进行计算,返回计算的结果 print("hello"+1) #会报错 # 不同类型的数据不能使用加号连接 # 不同类型的数据能够使用”,“进行连接 print("1 2 3",2+3) # 输入 # input() # 带有提示信息的输入 # name = input("请输入您的姓名:") # print(name)
python中print之后是默认换行的
要实现不换行要加end参数表明
n = 0 while n <= 100: print("n =",n,end=' ') if n == 20: break n += 1 输出: n = 0 n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10 n = 11 n = 12 n = 13 n = 14 n = 15 n = 16 n = 17 n = 18 n = 19 n = 20
多个数值进行比较
print('c'>'b'>'a') print(5>1>2) 输出: True False
2、input()函数
输入函数
Python提供了一个input()函数,可以让用户输入字符串,并且存放在变量中,比如输入用户名
>>> name = input()
jean
如何查看输入的内容:
>>> name
'jean'
或者使用:
>>> print(name)
jean
当然,有时候需要友好的提示一下,我们也可以这样做:
>>> name = input("place enter your name")
place input your name jean
>>> print("hello,", name)
hello, jean
二、进制转换函数
1、bin(),oct(),hex()进制转换函数(带前缀)
使用bin(),oct(),hex()进行转换的时候的返回值均为字符串,且带有0b, 0o, 0x前缀.
十进制转换为二进制
>>> bin(10)
'0b1010'
十进制转为八进制
>>> oct(12)
'014'
十进制转为十六进制
>>> hex(12)
'0xc'
2、’{0:b/o/x}’.format()进制转换函数(不带前缀)
十进制转换为二进制
>>>'{0:b}'.format(10)
'1010'
十进制转为八进制
>>> '{0:o}'.format(12)
'14'
十进制转为十六进制
>>> '{0:x}'.format(12)
'c'
注意:hex函数比格式化字符串函数format慢,不推荐使用.
3、int(’’,2/8/16)转化为十进制函数(不带前缀)
二进制转为十进制
>>> int('1010',2)
10
八进制转为十进制
>>> int('014', 8)
12
十六进制转十进制
>>> int('0xc',16)
12
4、’{0:d}’.format()进制转换为十进制函数
二进制转十进制
>>> '{0:d}'.format(0b11)
'3'
八进制转十进制
>>> '{0:d}'.format(0o14)
'12'
十六进制转十进制
>>> '{0:d}'.format(0x1f)
'31'
5、eval()进制转为十进制函数
二进制转十进制
>>> eval('0b11')
'3'
八进制转十进制
>>> eval('0o14')
'12'
十六进制转十进制
>>> eval('0x1f')
'31'
注意:eval函数比int函数慢,不推荐使用
二进制, 十六进制以及八进制之间的转换,可以借助十进制这个中间值,即先转十进制再转其他的进制,也可以直接使用函数进制转换.
#借助十进制 >>> bin(int('fc',16)) '0b11111100' #利用函数直接转 >>> bin(0xa) '0b1010' >>> oct(0xa) '012' >>> hex(10) '0xa'
三、求数据类型函数
1、type()
n = "hello world" n = type(n) print(n) 输出: <class 'str'>
2、使用type()判断变量的类型
# int float str bool tuple list dict set str1 = 'ss' if type(num) == str: print('yes') 输出: yes str1 = 'ss' print(isinstance(str1,str)) 输出: True 推荐使用isinstance()
3、isinstance()
功能:判断变量是否属于某一数据类型,可以判断子类是否属于父类。
class A(): pass class B(A): def __init__(self): super(B, self).__init__() pass class C(A): def __init__(self): A.__init__(self) n = 0.1 print(isinstance(n,(int,float,str))) print(isinstance(n,int)) print(isinstance(A,object)) b = B() print(isinstance(b,A)) c =C() print(isinstance(c,B)) 输出: True False True True False
四、关键字函数
1、keyword.kwlist()函数
查看关键字 :
import keyword print(keyword.kwlist) 输出: ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
五、删除变量/对象函数
1、del() 函数
变量一旦删除,就不能引用,否则会报错
用法1
n = "hello world"
print(n)
del n
用法2
n = "hello world" print(n) del(n) print(n) 输出: hello world NameError: name 'n' is not defined
六、数学函数 pandas, munpy
1、abs(num) 返回num的绝对值
print(abs(-3))
输出: 3
2、max(num1,num2,…,numn) 返回给定参数的最大值
num1 = 10 num2 = 20 print(num1 > num2) print(max(num1,num2,56)) 输出: False 56
3、min(num1,num2,…,numn) :返回给定参数的最小值
print(min(12,3,34,0))
输出:
0
4、pow(x,y) : 求x的y次方,x^y
print(pow(2,3))
输出:
8
5、round(num,n) : 四舍五入,
参数一:需要进行四舍五入的数据;
参数二:保留小数的位数。若n不写,默认为0
print(round(123.486,2))
输出:
123.49
六、range()函数
range([start,] stop [,step])
实质:创建了一个可迭代对象;一般情况下与for循环一起连用
1、start 可以不写,默认值是0,若给定则从start开始
2、stop 必须给定;
3、取值范围[start,stop)
4、step:步长,若不给则默认为1
''' 需求:使用for循环计算1*2*3...*20的值 ''' accou = 1 for i in range(1,21): accou *= i print(accou) 输出: 2432902008176640000
七、字符串函数
1、eval(str)函数
功能:将字符串转成有效的表达式来求值或者计算结果
可以将字符串转化成列表list,元组tuple,字典dict,集合set
注意:生成了一个新的字符串,没有改变原本的字符串
# 12-3 --> 9 str1 = "12-3" print(eval(str1)) print(str1) print(eval("[1,2,3,4]")) print(type(eval("[1,2,3,4]"))) print(eval("(1,2,3,4)")) print(eval('{1:1,2:2,3:3}')) print(eval('{2,3,5,3}')) 输出: 9 12-3 [1, 2, 3, 4] <class 'list'> (1, 2, 3, 4) {1: 1, 2: 2, 3: 3} {2, 3, 5}
2、len(str)函数
功能:获取字符串长度
str1 = "you are good man"
print(len(str1))
输出:
16
3、str.lower()函数
功能:返回一个字符串中大写字母转化成小写字母的字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "You are good Man" print(str1.lower()) print(str1) 输出: you are good man You are good Man
4、str.upper()函数
功能:返回一个字符串中小写字母转化成大写字母的字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "You are good man" print(str1.upper()) print(str1) 输出: YOU ARE GOOD MAN You are good man
5、str.swapcase()函数
功能:返回字符串中的大写字母转小写,小写字母转大写的字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "You are Good man" print(str1.swapcase()) print(str1) 输出: yOU ARE gOOD MAN You are Good man
6、str.capitalize()函数
功能:返回字符串中的首字母大写,其余小写的字符串
注意:生成了一个新的字符串,没有改变原本的字符串
tr1 = "you Are good man" print(str1.capitalize()) print(str1) str2 = "You are a good Man" print(str2.capitalize()) 输出: You are good man you Are good man
7、str.title()函数
功能:返回一个每个单词首字母都大写的字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "you Are good man" print(str1.title()) print(str1) str2 = "You are a good Man" print(str2.title()) 输出: You Are Good Man you Are good man You Are A Good Man
8、str.center(width[,fillchar])函数
功能:返回一个指定宽度的居中字符串
参数一:指定的参数【必须有】
参数二:fillchar填充的字符,若未指定,则默认使用空格
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "you Are good man" print(str1.center(20,"*")) print(str1) 输出: you Are good man **you Are good man** you Are good man
9、str.ljust(width[,fillchar])函数
功能:返回一个指定宽度左对齐的字符串
参数一:指定字符串的宽度【必须有】
参数二:填充的字符,若不写则默认为空格
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "you Are good man" print(str1.ljust(20,"*")) print(str1) 输出: you Are good man**** you Are good man
10、str.rjust(width[,fillchar])函数
功能:返回一个指定宽度右对齐的字符串
参数一:指定字符串的宽度【必须有】
参数二:填充的字符,若不写则默认为空格
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "you Are good man" print(str1.rjust(20,"*")) print(str1) 输出: ****you Are good man you Are good man
11、str.zfill(width)函数
功能:返回一个长度为width的字符串,原字符右对齐,前面补0
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "you Are good man"
print(str1.zfill(20))
print(str1)
输出:
0000you Are good man
12、str2.count(str1,start,end])函数
功能:返回str1在str2中出现的次数,可以指定一个范围,若不指定则默认查找整个字符串
区分大小写
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "hello" str2 = "Hello hello1 Hello2 hi haha helloa Are good man" print(str2.count(str1,0,20)) 输出: 1
13、str2.find(str1,start,end)函数
功能:从左往右检测str2,返回str1第一次出现在str2中的下标
若找不到则返回-1,可以指定查询的范围,若不指定则默认查询整个字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "hello" str2 = "Hello hello1 Hello2 hi haha helloa Are good man" print(str2.find(str1,5,20)) 输出: 6
14、str2.rfind(str1,start,end)函数
功能:从右往左检测str2,返回str1第一次出现在str2中的小标,若找不到则返回-1,可以指定查询的范围,若不指定则默认查询整个字符串
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "hello" str2 = "Hello hello1 Hello2 hi haha helloa Are good man" print(str2.rfind(str1,10,35)) 输出; 28
15、str2.index(str1,start,end)函数
功能:和find()一样,不同的是若找不到str1,则会报异常
ValueError:substring not found
注意:生成了一个新的字符串,没有改变原本的字符串
str1 = "hello" str2 = "Hello hello1 Hello2 hi haha helloa Are good man" print(str2.index(str1,2,25)) print(str2.index(str1,24,25)) 输出: 6 ValueError: substring not found
16、str.lstrip(char)函数
功能:返回一个截掉字符串左侧指定的字符,若不给参数则默认截掉空字符: \n \r \t 空格
注意:生成了一个新的字符串,没有改变原本的字符串
str3 = " \n\r \t ni hao ma" print(str3) print(str3.lstrip()) str4 = "****ni hao ma****" print(str4.lstrip('*')) 输出; ni hao ma ni hao ma ni hao ma****
17、str.rstrip()函数
功能:返回一个截掉字符串右侧指定的字符,若不给参数则默认截掉空字符: \n \r \t 空格
注意:生成了一个新的字符串,没有改变原本的字符串
str3 = " ni hao ma \n\r \t" print(str3.rstrip()) str4 = "****ni hao ma****" print(str4.rstrip('*')) 输出: ni hao ma ****ni hao ma
18、str2.split(str1,num) 分离字符串
功能:返回一个列表,列表的元素是以str1作为分隔符对str2进行切片,
若num有指定值,则切num次,列表元素个数为num+1
若不指定则全部进行切片
若str1不指定,则默认为空字符(空格、换行\n、回车\r、制表\t)
注意:生成了一个新的字符串,没有改变原本的字符串
str2 = "22hello nihao hi hello haha ello2 hello3 hello" print(str2.split(' ',3)) str3 = "1257309054@qq.com" print(str3.split('@')) list1 = str3.split('@') print(list1[1].split('.')) 输出: ['22hello', 'nihao', 'hi', 'hello haha ello2 hello3 hello'] ['1257309054', 'qq.com'] ['qq', 'com']
19、str2.splitlines()
功能:返回一个列表,列表的元素是以换行为分隔符,对str2进行切片
注意:生成了一个新的字符串,没有改变原本的字符串
str2 = ''' 22 23 hello ''' print(str2.splitlines()) 输出: ['', '22', ' 23', ' hello']
20、str1.join(seq)函数 字符串连接
功能:以指定字符串作为分隔符,将seq中的所有元素合并成为一个新的字符串
seq:list、tuple、string
list1 = ["hello","nihao"] print(" ".join(list1)) 输出: hello nihao str1 = "how are you , i am fine thank you" str3 = "*".join(str1) print(str3) 输出: h*o*w* *a*r*e* *y*o*u* *,* *i* *a*m* *f*i*n*e* *t*h*a*n*k* *y*o*u
21、ord() 求字符的ASCLL码值函数
print(ord("a"))
输出:
97
22、chr() 数字转为对应的ASCLL码函数
print(chr(97))
输出:
a
23、 max(str) min(str)获取最大最小字符
**max(str) **功能: 返回字符串str中最大的字母
str1 = "how are you , i am fine thank you"
print(max(str1))
输出:
y
min(str) 功能:返回字符串str中最小字母
str1 = "how are you , i am fine thank you"
print(min(str1))
输出:
' '
24、str.replace(old , new [, count]) 字符串的替换
str.replace(old , new [, count])
功能:使用新字符串替换旧字符串,若不指定count,则默认全部替换,
若指定count,则替换前count个
str1 = "you are a good man" print(str1.replace("good","nice")) 输出: you are a nice man
25、字符串映射替换
参数一:要转换的字符 参数二:目标字符
dic = str.maketrans(oldstr, newstr)
str2.translate(dic)
str1 = "you are a good man" dic = str1.maketrans("ya","32") print(str1.translate(dic)) 结果: 3ou 2re 2 good m2n
26、str.startswith(str1,start.end) 判断字符串的开头
str.startswith(str1,start.end)
功能:判断在指定的范围内字符串str是否以str1开头,若是就返回True,否则返回False
若不指定start,则start默认从开始,
若不指定end,则默认到字符串结尾
str1 = "hello man" print(str1.startswith("h",0,6)) 输出: True
27、str.endswith(str1,start.end) 判断字符串的结尾
str.endswith(str1,start.end)
功能:判断在指定的范围内字符串str是否以str结束,若是就返回True,否则返回False
若不指定start,则start默认从开始,
若不指定end,则默认到字符串结尾
str1 = "hello man" print(str1.endswith("man")) 输出: True
28、str.encode(编码格式)
对字符串进行编码 默认是utf-8
编码:str.encode()
解码:str.encode().decode()
注意:encode()的编码格式与decode()的编码格式必须保持一致
str4 = "你好吗" print(str4.encode()) print(str4.encode().decode()) print(str4.encode("gbk")) print(str4.encode("gbk").decode("gbk")) 输出: b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97' 你好吗 b'\xc4\xe3\xba\xc3\xc2\xf0' 你好吗
29、str1.isalpha() 字符串为字母
功能:判断字符串【至少含有一个字符】中的所有的字符是否都是字母【a~z A~Z 汉字】
若符合条件则返回True,否则返回False
str5 = "hello你二" print(str5.isalpha()) str5 = "hello " print(str5.isalpha()) 输出: True False
30、str5.isalnum()
功能:判断字符串【至少含有一个字符】中的所有字符都是字母或者数字【09,Az,中文】
str5 = "helloA标红" print(str5.isalnum()) print("12aaa".isalnum()) print("aaa".isalnum()) print(" 111".isalnum()) print("111".isalnum()) print("$$%%qwqw11".isalnum()) print("你好".isalnum()) print( "IV".isalnum()) print('Ⅳ'.isalnum()) 输出; True True True False True False True True True
31、str.isupper()
功能:判断字符串中所有字符是不是大写字符
print("WWW".isupper()) print("wWW".isupper()) print("123".isupper()) print("一二三".isupper()) 输出; True False False False
31、str.islower()
功能:判断字符串中所有字符是不是小写字符
print("WWW".islower()) print("wWW".islower()) print("123".islower()) print("一二三".islower()) print("qwww".islower()) 输出: False False False False True
32、str.istitle()
功能:判断字符串是否是标题化字符串【每个首字母大写】
print("U Wss".istitle()) print("wWW ".istitle()) print("123 ".istitle()) print("一二三".istitle()) print("qwww".istitle()) 输出: True False False False False
33、 str.isdigit()
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字, ,罗马数字
Error: 无
print("123".isdigit()) print("123".isdigit()) print(b"1".isdigit()) print("Ⅳ".isdigit()) print("123.34".isdigit()) print("一".isdigit()) 输出; True True True False False False
34、str.isspace()
功能:判断字符串中是否只含有空格
print("ddd".isspace()) print("".isspace()) print("a ddd".isspace()) print(" aaa".isspace()) print(" ".isspace()) 输出; False False False False True
35、str.isnumeric()
功能:若字符串中只包含数字字符,则返回True,否则返回False
isnumeric()
True: Unicode数字,全角数字(双字节),汉字数字
False: 罗马数字,
Error: byte数字(单字节)
36、str.isdecimal()
功能:检查字符串是否只包含十进制字符【0,9】,如果是返回True,否则返回False
isdecimal()
True: Unicode数字,,全角数字(双字节),
False: 罗马数字,汉字数字
Error: byte数字(单字节)
print("123".isdecimal())
print("123z".isdecimal())
#结果
True
False