赞
踩
list.append(x)
list(iter)
print() 内置函数,用于输出指定内容,默认 print() 输出内容后换行,如果要在一行显示,需在 print() 中用 , 号分割,语法格式:
print(objects, sep=' ', end='\n', file=sys.stdout)
\n
print() 默认输出后,会进行换行 “\n”,如果想更改,可以使用
end=""
进行更改
print() 括号内打印字符时需要用单引号(')或双引号(")引用,引号必须是英文下的引号,中文会报错,语法错误
example:
x = 10
y = 20
print("Hello, World!")
print(x, y)
print(x, y, sep="; ")
print(x, end="...")
print(y)
Hello, World! # 输出结果
10 20
10; 20
10...20
input() 内置函数,用于输入指定内容,输出为字符串类型,语法格式:
input("object")
example:
a = input("请输入密码: ") # 将输入的内容赋值给 a
print(a)
print(type(a))
请输入密码: 123 # 输出结果,输入任意字符,如:123
123
<class 'str'>
len() 内置函数,用于返回字符串、列表、字典、元组等的长度,语法格式:
len(object)
标点符号和空格也算一个长度
example:
a = "Hello, World!"
print(len(a)) # 输出结果:13
range() 内置函数,用于遍历数字序列,语法格式:
range(start, stop, step)
example:
for i in range(0, 5):
print(i)
0 # 输出结果
1
2
3
4
type() 内置函数,如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象,语法格式:
class type(name, bases, dict)
example:
num = 20
print(type(num)) # 输出结果:<class 'int'>
class X(object):
a = 1
X = type('X', (object,), dict(a=1))
print(X) # 输出结果:<class '__main__.X'>
isinstance() 内置函数,用来判断数据类型是否是相对应的类型,它返回的是布尔值(True
或 False
),语法格式:
isinstance(object, type)
example:
num = 20
n = isinstance(num, int)
print(n) # 输出结果:True
id() 内置函数,用于返回变量所指的内存地址,语法格式:
id(object)
example:
num = num01 = 20
print(id(num)) # 输出结果:2689225392976
print(id(num01)) # 输出结果:2689225392976
list() 内置函数,用于将序列转换为列表,语法格式:
list(object)
example:
a = {10, 20, 30}
b = list(a)
print(type(a)) # 输出结果:<class 'set'>
print(b) # 输出结果:[10, 20, 30]
print(type(b)) # 输出结果:<class 'list'>
tuple() 内置函数,用于将序列转换为元组,语法格式:
tuple(object)
example:
a = [10, 20, 30]
b = tuple(a)
print(type(a)) # 输出结果:<class 'list'>
print(b) # 输出结果:(10, 20, 30)
print(type(b)) # 输出结果:<class 'tuple'>
str() 内置函数,用于将序列转换为字符串,语法格式:
str(object)
example:
a = 2135
b = str(a)
print(type(a)) # 输出结果:<class 'int'>
print(b) # 输出结果:2135
print(type(b)) # 输出结果:<class 'str'>
bool() 内置函数,用于评估任何值,并返回 True 和 False,语法格式:
bool(object)
object:待转换为布尔值的数据类型
任何字符串都是 True,空字符串除外。任何数字都是 True,除了 0。任何列表、元组、集合和字典都是 True,空的除外。
False 除了空值(例如:()
、[]
、{}
、""
、 数字 0
)之外,计算为 None
的值。当然,结果为 False。
example:
print(bool("张三")) # 输出结果:True
print(bool()) # 输出结果:False
max() 内置函数,用于返回元素中最大值,字符类型取字母表排序的靠后字母,语法格式:
max(object)
字母表中大写在前,小写在后
example:
a = "Hello, World!"
b = '6546186638948'
print(max(a)) # 输出结果:r
print(max(b)) # 输出结果:9
min() 内置函数,用于返回元素中最小值,字符类型取字母表排序的靠后字母,语法格式:
min(object)
空格比字母值还要小
example:
a = "Hello, World!"
b = '6546186638948'
print(max(a)) # 输出结果:空格
print(max(b)) # 输出结果:1
enumerate() 内置函数,用于将序列组合为一个索引序列,多用于在 for 循环中,可以同时输出索引值和元素内容,语法格式:
enumerate(object, start)
example:
mylist = [10, 20, 30]
for index, i in enumerate(mylist):
print(index, i)
0 10 # 输出结果
1 20
2 30
lambda 内置函数,用于创建 lambda 函数,语法格式:
result = lambda [arg01[, arg02[,... [, argn]]]]: expression
通常情况下,这样的函数只使用一次,使用 lambda 表达式时,需要定义一个变量,用于调用该 lambda 表达式
example:将 lambda 函数赋值给一个变量,通过这个变量间接调用该 lambda 函数
num = lambda x, y: x + y
print(num(1, 2)) # 输出结果:3
sum() 内置函数,用于计算可迭代对象之和,语法格式:
sum(iterable[, start])
example:
mylist = [10, 20, 30]
print(sum(mylist)) # 输出结果:60
print(sum(mylist, 50)) # 输出结果:110
sorted() 内置函数,用于按字母排序,不改变原有列表,语法格式:
sorted(iterable, [key[, reverse]])
example:
mylists = ["zero", "banana", "Orange", "Kiwi", "cherry"]
x = sorted(mylists)
y = sorted(mylists, key=lambda mylist: mylist[2])
z = sorted(mylists, reverse=True)
print(x) # 输出结果:['Kiwi', 'Orange', 'banana', 'cherry', 'zero']
print(mylists) # 输出结果:['zero', 'banana', 'Orange', 'Kiwi', 'cherry']
print(y) # 输出结果:['Orange', 'cherry', 'banana', 'zero', 'Kiwi']
print(z) # 输出结果:['zero', 'cherry', 'banana', 'Orange', 'Kiwi']
zip() 内置函数,用于接收一系列可迭代对象作为参数,将对象中对应的元素打包成一个个元组(tuple),然后返回列表(list),语法格式:
若传入参数的长度不等,则返回列表的长度和参数中长度最短的对象相同。利用
*
号操作符,可以将 list unzip(解压)
如果提前不对 zip() 函数进行数据类型转换,则只能进行遍历一次,第二次就是空值
zip([iterable, iterable, ...])
example:
name = ['zhangsan', 'lisi', 'wangwu'] age = ['20', '24', '25', '26'] mydict = zip(name, age) print(dict(mydict)) # 输出结果:{'zhangsan': '20', 'lisi': '24', 'wangwu': '25'} print(dict(mydict)) # 输出结果:{} a = [1, 2, 3] b = [4, 5, 6] c = list(zip(a, b)) print(c) # 输出结果:[(1, 4), (2, 5), (3, 6)] print(c) # 输出结果:[(1, 4), (2, 5), (3, 6)] aa, bb = zip(*c) print(aa, bb) # 输出结果:(1, 2, 3) (4, 5, 6)
set() 内置函数,用于将一系列可迭代对象转换成集合,语法格式:
set([iterable, iterable, ...])
example:
myset = set("abcde")
myset01 = set(['10', '20', '30'])
myset02 = set(['10'])
print(myset) # 输出结果:{'b', 'e', 'a', 'c', 'd'}
print(myset01) # 输出结果:{'10', '30', '20'}
print(myset02) # 输出结果:{'10'}
round() 内置函数,返回 number 舍入到小数点后 ndigits 位精度的值。如果 ndigits 被省略或为 None,则返回最接近输入值的整数,语法格式:
结果值会舍入至最接近的 10 的负 ndigits 次幂的倍数;如果与两个倍数同样接近,则选用偶数。因此,round(0.5) 和 round(-0.5) 均得出 0 而 round(1.5) 则为 2。ndigits 可为任意整数值(正数、零或负数)。如果省略了 ndigits 或为 None ,则返回值将为最接近 number 的整数。否则返回值与 number 的类型相同
round(number[, ndigits=None])
example:
print(round(3.4)) # 输出结果:3
print(round(3.5)) # 输出结果:4
print(round(3.1445, 2)) # 输出结果:3.14
print(round(3.1464, 2)) # 输出结果:3.15
print(round(3.145, 2)) # 输出结果:3.15
print(round(3.155, 2)) # 输出结果:3.15
print(round(3.165, 2)) # 输出结果:3.17
print(round(3.1450, 2)) # 输出结果:3.15
print(round(3.1554, 2)) # 输出结果:3.16
print(round(3.1655, 2)) # 输出结果:3.17
filter() 内置函数,用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表,语法格式:
filter(function, iterable)
在调用 filter() 函数时,iterable 会被遍历,它的元素会被逐一传入 function 函数中,function 函数若返回 True,则元素被保留;若返回 False,则元素被过滤。最后遍历完成,已保留的元素被放到一个新的容器数据中
example:过滤出大于 50 的数
def num(x): return x > 50 num01 = [66, 12, 91, 28, 92, 50, 4, 80, 99] num02 = filter(num, num01) num03 = list(filter(num, num01)) print(num02) # 输出结果:<filter object at 0x000001405661B310> print(num03) # 输出结果:[66, 91, 92, 80, 99] num01 = [66, 12, 91, 28, 92, 50, 4, 80, 99] # 用 lambda 函数替代 num02 = list(filter(lambda x: (x > 50), num01)) print(num02) # 输出结果:[66, 91, 92, 80, 99]
filter() 函数默认输出的是生成器对象,需要用 list() 函数转换为列表
map() 内置函数,数用于对容器中的元素进行映射(或变换),语法格式:
map(function, iterable)
在调用 map() 函数时,iterable 会被遍历,它的元素被逐一传入 function 函数中,在 function 函数中对元素进行变换
example:将列表中的数字乘以二
def num(x): return x * 2 num01 = [1, 2, 3, 4, 5] num02 = map(num, num01) num03 = list(map(num, num01)) print(num02) # 输出结果:<map object at 0x0000026078ADB490> print(num03) # 输出结果:[2, 4, 6, 8, 10] num01 = [1, 2, 3, 4, 5] # 用 lambda 函数替代 num02 = list(map(lambda x: (x * 2), num01)) print(num02) # 输出结果:[2, 4, 6, 8, 10]
map() 函数默认输出的是生成器对象,需要用 list() 函数转换为列表
super() 内置函数,用于调用父类(超类)的一种方法,在子类中可以通过 super() 方法来调用父类方法,解决多继承带来的重复调用(菱形继承)、查找顺序(MRO)问题,语法格式:
super(type[, object-or-type])
Python3 用 super().xxx 代替 Python2 super(Class, self).xxx
MRO——方法搜索顺序:MRO 是 method resolution order,主要用于在对继承是判断方法、属性的调用路径顺序,其实也就是继承父类方法时的顺序表,super() 函数严格按照 MRO 顺序执行。Python 中针对类提供了一个内置属性 __mro__
可以查看方法的搜索顺序
在搜索方法时,是按照 __mro__
的输出结果从左到右的顺序查找的
单继承:
class A: def __init__(self): self.n = 2 def add(self, m): print('self is {0} @A.add'.format(self)) self.n += m class B(A): def __init__(self): self.n = 3 def add(self, m): print('self is {0} @B.add'.format(self)) super().add(m) self.n += 3 b = B() b.add(2) print(b.n) print(B.__mro__) self is <__main__.B object at 0x106c49b38> @B.add # 输出结果 self is <__main__.B object at 0x106c49b38> @A.add 8 (<class '__main__.B'>, <class '__main__.A'>, <class 'object'>)
整体流程:
class B(A): class A:
def add(self, m): def add(self, m):
super().add(m) 1.---> self.n += m
self.n += 3 <----2. <----|
(5+3=8) (3+2=5)
super().add(m)
调用父类方法def add(self, m)
时, 此时父类中self
并不是父类的实例而是子类的实例, 所以b.add(2)
之后的结果是 5(n=3,m=2,3+2) 而不是 4(n=2,m=2,2+2)
多继承:
class A: def __init__(self): self.n = 2 def add(self, m): print('self is {0} @A.add'.format(self)) self.n += m class B(A): def __init__(self): self.n = 3 def add(self, m): print('self is {0} @B.add'.format(self)) super().add(m) self.n += 3 class C(A): def __init__(self): self.n = 4 def add(self, m): print('self is {0} @C.add'.format(self)) super().add(m) self.n += 4 class D(B, C): def __init__(self): self.n = 5 def add(self, m): print('self is {0} @D.add'.format(self)) super().add(m) self.n += 5 d = D() d.add(2) print(d.n) print(D.__mro__) self is <__main__.D object at 0x10ce10e48> @D.add # 输出结果 self is <__main__.D object at 0x10ce10e48> @B.add self is <__main__.D object at 0x10ce10e48> @C.add self is <__main__.D object at 0x10ce10e48> @A.add 19 (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)
整体流程:
class D(B, C): class B(A): class C(A): class A:
def add(self, m): def add(self, m): def add(self, m): def add(self, m):
super().add(m) 1.---> super().add(m) 2.---> super().add(m) 3.---> self.n += m
self.n += 5 <------6. self.n += 3 <----5. self.n += 4 <----4. <--|
(14+5=19) (11+3=14) (7+4=11) (5+2=7)
dir() 内置函数,如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表,语法格式:
dir([parameter])
""
(表示字符串)、[]
(表示列表)、()
(表示元组)等,也可以是函数、类、方法等example:
print(dir()) # 输出结果:['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'bmi']
print(dir(())) # 输出结果:['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
chr() 内置函数,函数返回值类型为 String,其数值表达式值取值范围为 0~255,语法格式:
chr(i)
example:
for i in range(256): print(chr(i), end='') """输出结果:""" !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„ †‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ for i in range(48, 58): print(chr(i), end='') # 输出结果:0123456789 for i in range(65, 91): print(chr(i), end='') # 输出结果:ABCDEFGHIJKLMNOPQRSTUVWXYZ for i in range(97, 123): print(chr(i), end='') # 输出结果:abcdefghijklmnopqrstuvwxyz
ord() 内置函数,函数返回值类型为 int 类型,语法格式:
ord(c)
examle:
print(ord('0')) # 输出结果:48
print(ord('a')) # 输出结果:97
print(ord('A')) # 输出结果:65
open() 内置函数,用于创建或者打开指定文件并创建文件对象,语法格式:
file = open(filename[, mode[, buffering[, encoding[, errors[, newline[, closefd[, opener]]]]]]])
mode 参数列表如下:
参数 | 说明 |
---|---|
t | 文本模式(默认) |
x | 写模式,新建一个文件,如果文件存在,则报错 |
b | 二进制模式 |
+ | 打开一个文件进行更新(读写模式) |
U | 通用换行模式(不推荐) |
r | 只读模式打开文件,文件的指针将会放在文件的开头。文件必须存在 |
rb | 只读模式以二进制格式打开文件,文件的指针将会放在文件的开头,一般用于非文本文件。例如:图片、声音等。文件必须存在 |
r+ | 读写模式打开文件,写入新的内容覆盖原有内容,文件的指针将会放在文件的开头。文件必须存在 |
rb+ | 读写模式以二进制格式打开文件,文件的指针将会放在文件的开头,一般用于非文本文件。例如:图片、声音等。文件必须存在 |
w | 只写模式打开文件。文件如果存在,则将其覆盖,否则创建新文件 |
wb | 只写模式以二进制格式打开文件,一般用于非文本文件。例如:图片、声音等。文件如果存在,则将其覆盖,否则创建新文件 |
w+ | 读写模式打开文件,先清空原有内容,再写入内容。文件如果存在,则将其覆盖,否则创建新文件 |
wb+ | 读写模式以二进制格式打开文件,一般用于非文本文件。例如:图片、声音等。文件如果存在,则将其覆盖,否则创建新文件 |
a | 追加模式打开文件。如果该文件存在,文件指针将会放在文件的末尾,否则,创建新文件写入 |
ab | 追加模式以二进制格式打开文件。如果该文件存在,文件指针将会放在文件的末尾,否则,创建新文件写入 |
a+ | 读写、追加模式打开文件。如果该文件存在,文件指针将会放在文件的末尾,否则,创建新文件写入 |
ab+ | 读写、追加模式以二进制格式打开文件。如果该文件存在,文件指针将会放在文件的末尾,否则,创建新文件写入 |
打开一个不存在的文件,example:
file = open('test.txt', 'w')
print("打开文件", file) # 输出结果:打开文件 <_io.TextIOWrapper name='test.txt' mode='w' encoding='cp936'>
以二进制形式打开文件,example:
file = open('picture.png', 'rb')
print(file) # 输出结果:<_io.BufferedReader name='picture.png'>
打开文件时指定编码方式,example:
file = open('test.txt', 'r', encoding='utf-8')
print(file) # 输出结果:<_io.TextIOWrapper name='test.txt' mode='r' encoding='utf-8'>
upper() 方法,用于以大写形式返回字符串,语法格式:
str.upper()
example:
a = "Hello, World!"
print(a.upper()) # 输出结果:HELLO, WORLD!
lower() 方法,用于以小写形式返回字符串,语法格式:
str.lower()
example:
a = "Hello, World!"
print(a.lower()) # 输出结果:hello, world!
strip() 方法,用于从开头或结尾删除任何字符,默认是空格,语法格式:
str.strip("object")
example:
mystr = " Hello, World! "
mystr01 = ", Hello, World! "
print(mystr.strip()) # 输出结果:Hello, World!
print(mystr01.strip(",")) # 输出结果: Hello, World!
lstrip() 方法,用于去掉字符串左侧的空格和特殊字符,语法格式:
str.lstrip("object")
example:
mystr = " Hello, World! "
mystr01 = ", Hello, World! "
print(mystr.lstrip()) # 输出结果:Hello, World!
print(mystr01.lstrip(",")) # 输出结果: Hello, World!
rstrip() 方法,用于去掉字符串右侧的空格和特殊字符,语法格式:
str.rstrip("object")
example:
mystr = " Hello, World! "
mystr01 = ", Hello, World!"
print(mystr.rstrip()) # 输出结果: Hello, World!
print(mystr01.rstrip("!")) # 输出结果:, Hello, World
replace() 方法,用于替换字符串,语法格式:
str.replace(old, new[, max])
example:
a = "Hello, World! Hello, Python!"
print(a.replace("H", "h")) # 输出结果:hello, World! hello, Python!
print(a.replace("H", "h", 1)) # 输出结果:hello, World! Hello, Python!
split() 方法,用于返回一个列表,指定字符串中的分隔符来分割列表,语法格式:
str.split(type="", num=string.count(str))[n]
example:以 “,
” 号分割成列表
a = "Hello, World!, test"
b = "kkkpythonkiskkkgoodkk"
print(a.split(",")) # 输出结果:['Hello', ' World!', ' test']
print(a.split(",", 1)) # 输出结果:['Hello', ' World!, test']
print(a.split(",", 1)[0]) # 输出结果:Hello
print(b.split("k")) # 输出结果:['', '', '', 'python', 'is', '', '', 'good', '', '']
对于分隔符出现在首尾的情况,在首尾处分割,会产生同一个空串,对于出现在字符串中间的情况,单独出现,和普通情况没有区别,如果出现多个,两个分隔符中间就会产生一个空串
format() 方法,用于接受传递的参数,格式化它们,并将它们放在占位符 “{}
” 所在的字符串中,语法格式:
str.format(value)
您还可以使用索引号
{0}
将参数放到占位符中,不过需要确定索引号和参数位置所对应,否则会导致输出的顺序混乱
example:将数字插入字符串
age = 20
txt = "张三今年 {}"
print(txt.format(age)) # 输出结果:张三今年 20
example:接受多个参数
name = "张三"
age = 20
txt = "{} 今年 {}"
print(txt.format(name, age)) # 输出结果:张三今年 20
example:使用索引号
name = "张三"
age = 20
txt = "{0} 今年 {1}"
print(txt.format(name, age)) # 输出结果:张三今年 20
example:
print("我叫{},今年{}岁了".format("张三", "20")) # 输出结果:我叫张三,今年20岁了 print("我叫{0},今年{1}岁了".format("张三", "20")) # 输出结果:我叫张三,今年20岁了 print("我叫{1},今年{0}岁了".format("张三", "20")) # 输出结果:我叫20,今年张三岁了。注意索引号和参数位置顺序 print("我叫{name},今年{age}岁了".format(name="张三", age="20")) # 输出结果:我叫张三,今年20岁了 print("我叫{name},今年{age}岁了".format(age="20", name="张三")) # 输出结果:我叫张三,今年20岁了。以 key=value 的形式无需注意索引号和参数位置顺序 mylist = ["张三", "20"] print("我叫{List[0]},今年{List[1]}岁了".format(List=mylist)) # 输出结果:我叫张三,今年20岁了 print("我叫{0[0]},今年{0[1]}岁了".format(mylist)) # 输出结果:我叫张三,今年20岁了 mydict = {"name": "张三", "age": "20"} print("我叫{Dict[name]},今年{Dict[age]}岁了".format(Dict=mydict)) # 输出结果:我叫张三,今年20岁了 print("我叫{name},今年{age}岁了".format(**mydict)) # 输出结果:我叫张三,今年20岁了 class value: name = "张三" age = "20" print("我叫{Value.name},今年{Value.age}".format(Value=value)) # 输出结果:我叫张三,今年20岁了 args = [",", "。"] kwargs = {"name": "张三", "age": "20"} print("我叫{name}{}今年{age}岁了{}".format(*args, **kwargs)) # 输出结果:我叫张三,今年20岁了
*args
表示任何多个无名参数,它是一个tuple
或list
;**kwargs
表示关键字参数,它是一个dict
。
数字格式化
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为 2) |
5 | {:x<4d} | 5xxx ) | 数字补 x (填充右边, 宽度为 4 |
10 | {:x<4d} | 10xx ) | 数字补 x (填充右边, 宽度为 4 |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (宽度为 10) |
13 | {:<10d} | 13 | 左对齐 (宽度为 10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | ‘{:b}’.format(11) | 1011 | 二进制 |
11 | ‘{:d}’.format(11) | 11 | 十进制 |
11 | ‘{ 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/595259 推荐阅读 相关标签 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。 |