作用域相关 *****
globals(): 返回一个字典:包含全部的全局变量。
locals() :返回一个字典:包含的是当前作用域的所有的变量
#b = 2#def func():#a = 1#print(locals())#print(globals())#
#func()
View Code
字符串类型代码的执行 eval, exec, compile 不建议使用***
eval: 执行字符串类型的代码,并返回最终结果
1 s1 = '1+2+3'
2 print(s1) #1+2+3
3 print(eval(s1),type(eval(s1))) #6
4 s2 = "{'name':'alex'}"
5 print(eval(s2),type(eval(s2))) #{'name': 'alex'}
View Code
exec:执行字符串类型的代码,不返回结果。 代码流
1 s3 = '''for i in range(3):2 print(i)3 '''
4 #print(exec(s3))
5 exec(s3)
View Code
compile: 将字符串类型的代码编译。代码对象能够通过eval或exec进行求值
输入输出相关 input ,print *****
input: 函数接受一个标准输入数据,返回为string类型
print:打印输出
1 print(*[1,2,3]) #1 2 3
2 def func2(*args): #函数的定义:*聚合
3 print(*args) #(*(1,2,3)) 函数的执行: *打散 print(1,2,3)
4
5
6 func2(1,2,3) #1 2 3
7
8 #sep 打印多个内容时 分隔符默认是空格
9 print(1,2,3,sep='|') #1|2|3
10 #end 默认换行
11 print(1, end=' ')12 print(222)13 #file
14 with open('t1', encoding='utf-8',mode='w') as f:15 print(666,file=f)
View Code
内存相关hash id ***
hash:获取一个对象(可哈希对象:int,str, bool, tuple)的哈希值
id:获取该对象的内存地址
hash()
字典:会将你所有的key在内存中转化成id
1 dic = {'name':'alex', 'sdkfdsg':'123'}2 print(hash('name')) #对于字符串的内存地址为,等长度的地址
3 print(hash('hsdfjsdj'))4 print(hash(1))5 print(hash(888)) #对于数字就返回888
View Code
文件操作相关 *****
open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
模块相关__import__ ***
__import__:函数用于动态加载类和函数 。
帮助**
help:函数用于查看函数或模块用途的详细说明
print(help(list))
调用相关***
callable:函数用于检查一个对象是否是可调用的。
如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
1 name = 'alex'
2 deffunc1():3 pass
4 print(callable(name)) #False
5 print(callable(func1)) #True
View Code
查看内置属性 ***
dir:函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__di
该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
name = 'alex'
print(dir(name))
range:函数可创建一个整数对象,一般用在 for 循环中。
python2x:range(3)--->[0, 1, 2]
xrange(3)--->迭代器
python3x:range(3)--->range(0, 3) 可迭代对象
next:内部实际使用了__next__方法,返回迭代器的下一个项目。
iter:函数用来生成迭代器(讲一个可迭代对象,生成迭代器)。
进制转换:
bin:将十进制转换成二进制并返回。
oct:将十进制转化成八进制字符串并返回。
hex:将十进制转化成十六进制字符串并返回。
print(bin(100)) # 0b1100100
print(oct(100)) # 0o144
print(oct(7)) # 0o7
print(oct(8)) # 0o10
print(hex(100)) # 0x64
print(hex(10)) # 0xa
数学运算:
abs:函数返回数字的绝对值。
divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
round:保留浮点数的小数位数,默认保留整数。
pow:求x**y次幂。(三个参数为x**y的结果对z取余)
print(divmod(12,5))
print(round(3.141592653,5))
print(pow(2,5))
print(pow(2,5,12))
sum:对可迭代对象进行求和计算(可设置初始值)。
min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。
1 print(min([1,-2,3,-8,101], key=abs)) #导入函数
2
3
4 l = [('alex',1000),('taibai',18),('wuris',500)] #求出最小年龄的元组
5 #方法一:
6 #min1 = min([i[1] for i in l])
7 #for i in l:
8 #if i[1]==min1:
9 #print(i)
10
11 #方法二:
12 deffunc(x):13 return x[1]14 print(min([('alex',1000),('taibai',18),('wuris',500)], key=func))15 '''
16 1. 他会将iterable的每一个元素当作函数的参数传进去17 2. 他会按照返回值去比较大小。18 3. 返回的是遍历的元素 x19 '''
20
21 dic2 = {'a':3,'b':2,'c':1}22 #def func3(x):
23 #return dic2[x]
24 #print(min(dic2,key=func3))
25
26 deffunc4(x):27 return x[1]28 print(min(dic2.items(),key=func4))
求最小值
列表和元祖(2)
list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。
tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。
相关内置函数(2)
reversed:将一个序列翻转,并返回此翻转序列的迭代器。 字典不能翻转*****
slice:构造一个切片对象,用于列表的切片。***
1 l1 = [1, 2, 4, 5, 6]2 print(reversed(l1)) #得到的是迭
3 s1 = 'qwer'
4 for i inreversed(s1):5 print(i)6 字典不能翻转7 l1 = [i for i in range(10)]8 l2 = l1[:5:2]9 l3 = [i for i in range(10, 2
10 sli_obj = slice(0, 5, 2)11 print(l3[sli_obj])12 l4 = ['a', 'b', 'c', 'd', 'e
13 print(l4[sli_obj])
View Code
字符串相关(9)
str:将数据转化成字符串。
format:与具体数据相关,用于计算各种小数,精算等。**
1 print(format('test', '<20')) #左对齐
2 print(format('test', '>20')) #右对齐
3 print(format('test', '^20')) #居中
View Code
bytes:unicode --->bytes 类型 ****
1 a1 = '太白'
2 print(a1.encode('utf-8')) #b'\xe5\xa4\xaa\xe7\x99\xbd'
3 print(a1.encode('utf-8').decode('utf-8')) #太白
4 a1 = '太白'
5 b1 = bytes(a1, encoding='utf-8')6 print(b1)
View Code
ord:输入字符找该字符编码的位置 unicode **
chr:输入位置数字找出其对应的字符 **
ascii:是ascii码中的返回该值,不是就返回他在Unicode的位置(16进制) **
1 print(ord('a'))2 print(ord('中'))3 print(chr(97))4 print(chr(20013))5 print(ascii('a'))6 print(ascii('中')) #'\u4e2d'
View Code
repr:返回一个对象的string形式(原形毕露)。*****
1 print(repr('alex, x'))2 print(repr("{'alex': 'sb'}"))3 '''
4 repr() jason pickle 序列化模块 特殊字符串,python字符串的区别5 '''
View Code
格式化输出%rr
1 msg = 'alex 是%s 的人' % ('德高望重')2 print(msg)3 #格式化输出%rr
4 msg = 'alex 是%r 的人' % ('德高望重')5 print(msg)
View Code
dict:创建一个字典。
set:创建一个集合。
frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
相关内置函数(8)
len:返回一个对象中元素的个数。
sorted:对所有可迭代的对象进行排序操作。*****
1 l1 = [1, 6, 3, 7, 7, 3, 8, 0]2 #l1.sort() # 原列表改变
3 #print(l1)
4 print(sorted(l1)) #形成了新列表
5 print(l1) #原列表不变
6 l2 = [(1, 1000), (2, 18), (4, 250), (3, 500)]7 print(sorted(l2)) #按照元组第一个元素排序
8 deffunc(x):9 return x[1]10 print(sorted(l2, key=func)) #按照元组第二个元素排序
View Code
enumerate:枚举,返回一个枚举对象。
all:可迭代对象中,全都是True才是True ***多做条件判断
any:可迭代对象中,有一个True 就是True ***多做条件判断
1 l1 = [1, '', 5]2 print(all(l1))3 l2 = [1, 2, 5]4 print(all(l2))5 #6 print(any(l1))7 print(any(l2))
View Code
zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
拉链方法 将多个iter纵向组成一个元组(以最短为准)*****
1 l1 = [1, 2, 3, 4, 5, 6]2 tu1 = ('alex', '太白', 'wusir', '女神',)3 dic = {'name': '日天', 'age': 28, 'hobby': 'tea', 'job': 'IT'}4 print(zip(l1, tu1, dic)) #迭代器
5 for i inzip(l1, tu1, dic):6 print(i)
View Code
filter:过滤·。迭代器 *****
1 l1 = [i for i in range(10)]2 deffunc(x):3 return x % 2 ==04 print(list(filter(func, l1)))
View Code
map:会根据提供的函数对指定序列做映射。 循环模式
1 l1 = [1, 2, 3, 4]2 deffunc(x):3 return x**2
4 print(list(map(func, l1)))5 print([i**2 for i inl1])6 print([pow(i, 2) for i in l1])
View Code
*****
print() sum reversed
key :min max sorted filter zip
匿名函数 lambda 表达式 一行函数
普通函数 有且只有返回值的才可以用匿名函数进行简化。 一行函数
函数名 = lambda 函数的参数:函数的返回值
func = lambda x:x*2
def func(x):
return x*2
func = lambda x,y:x+y
print(func(2,3))
# 匿名函数 不单独使用,多与内置函数结合
dic={'k1':10,'k2':100,'k3':30}
#1,利用内置函数匿名函数将dic按照值进行排序。
print(dict(sorted(dic.items(), key=lambda x:x[1])))
l1 = [1,5,7,4,8]
# 利用内置函数匿名函数 计算列表的每个数的2倍。
print(list(map(lambda x:x*2,l1)))
l2 = [5,8,11,9,15]
# 利用内置函数匿名函数,将值大于10的留下来。
print(list(filter(lambda x:x>10,l2)))
# lambda 返回值可以放三元运算
func2 = lambda x: x if x > 2 else x * 2