python禁用内置函数_Python_Day_4(内置函数之篇)

一:内置函数

常用内置函数如下:

919d1ce4f18acdb5bf8f41ce139e3268.png

1)abs:取一个数字的绝对值

#abs:取绝对值

n = abs(-10)

print(n)

2)any和all

值为Fslse有:0,None,""->空的字符串,[]空列表,()空元祖

any:只有字为真即为真

all:值所有为真即为真

3)ascii() 自动执行对象的_repr_方法 (了解)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #ascii() 自动执行对象的_repr_方法

2 classfoo:3 def __repr__(self):4 return "123"

5 n =ascii(foo())6 print(n)

View Code

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #all()

2 #any()

3 #什么值为Fasle值:0,None,"空字符串","空的元祖","空的字典","空的列表"

4 print(bool(0)) #“0”输出值为Fasle

5 print(bool("")) #空字符串输出值为Fasle

6 print(bool([])) #“空列表”输出值为Fasle

7 print(bool()) #“空元祖”输出值为Fasle

8 print(bool({})) #“空字典”输出值为Fasle

View Code

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #all() :所有为真才为真

2 n = all([1,2,3,4,5,])3 print(n)4 #any():任何一个为真,即为真

5 n2 = any((0,2,3,4,[],(),-1))6 print(n2)

View Code

4)bin,oct,hex

#接收一个十进制,并把十进制转换至二进制[0b101:其中0b-->表示一个特殊函数,即表示是二进制]

# bin()

print(bin(5))

#接收一个十进制,并把十进制转换为八进制【0o5:其中0o-->是表示八进制】

# oct()

print(oct(5))

#接收一个十进制,并把十进制转化为一个十六进制【0x5:0x-->表示为十六进制】

# hex()

print(hex(5))

5)bytes:将字符串转换为字节类型

utf-8编写:一个汉子占三个字节,一个字节是8位

#b'\xe7\xbd\x97\xe6\x89\xbf\xe7\x94\xb2'

GBK编码:一个汉子占两个字节

#b'\xc2\xde\xb3\xd0\xbc\xd7'

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #一个汉子转换为一个字节

2 #字符串转换为字节类型

3 #bytes(需要转换的字符串,按照什么编码格式)

4 s = "北京欢迎你"

5 n = bytes(s,encoding="utf-8") #将“北京欢迎你”字符串转换为utf-8字节类型

6 print(n)7 n = bytes(s,encoding="GBK") #将“北京欢迎你”字符串转换为GBK字节类型

8 print(n)

View Code

6)str:字节转换至字符串

#字符串用什么编译成字节的,需要用同样的编码编回

s = str(bytes("北京欢迎你",encoding="utf-8"),encoding="utf-8")

print(s)

7)open:文件操作

打开方式:文件句柄 = open("文件路径",‘打开模式’)文件打开模式有:

r ,只读模式【默认】

w,只写模式【不可读;不存在则创建;存在则清空内容;】

x, 只写模式【不可读;不存在则创建,存在则报错】

a, 追加模式【可读; 不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

r+, 读写【可读,可写】:可指定位置,但是会覆盖原有的位子

w+,写读【可读,可写】:先清空

x+ ,写读【可读,可写】

a+, 写读【可读,可写】:每次写在最后,不能放在指定的位置

"b"表示以字节的方式操作

rb 或 r+b

wb 或 w+b

xb 或 w+b

ab 或 a+b

注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

#tell:获取当前指针的位置(字节)

#seek :主动把指针调到某一个位置,永远按照(字节)方式找位置,即使有中文一样,屏蔽中文

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #seek主动把指针调到某一个位置,永远按照字节方式找位置,即使有中文一样,屏蔽中文

2 f = open("db",'r+', encoding="utf-8")3 #如果打开模式无b,则read,按照字符读取

4 date = f.read(1)5 #tell:获取当前指针的位置(字节)

6 print(f.tell())7 #调整当前指针位置(字节)

8 f.seek(f.tell())9 #当前指针位置开始向后覆盖

10 f.write("999")11 f.close()

View Code

操作文件:

read()  :无参数时,读取文件中全部文件

:有参数时,带“b”:表示读取方式按照“字节”读取

:有参数时。不带“b”:表示读取方式按照“字符”方式读取

write():写数据,打开方式中含有“b”:则按照“字节”方式写,否则无“b”,按照“字符”方式写文件

fileno():文件描述符

flush():强刷,把写的数据强刷值内存中

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 f = open("db",'a',encoding="utf-8") #参数a:追加模式【可读; 不存在则创建;存在则只追加内容;】

2 f.write("3456") #在db文件中写入3456

3 f.flush() #将数字3456强制写入内存

4 input("dsddsds")

View Code

reabable:判断文件是否可读

f = open("db",'w',encoding="utf-8") #w:表示只写模式,不可读

print(f.readable()) #readable判断文件是否可读

readline:表示每次仅读取一行

truncate:截断数据,即指针后的数据清空,只截取指针前面的数据

f = open("db",'r+',encoding="utf-8") #r+:可读可写文件

f.seek(2) #把指针一至问价第一行的第二元素,

f.truncate()#把指针后面的数据清空,只是截取指针前面的数据

f.close() #关闭文件

for循环文件对象:f = open("db",'r+')

for line in f:

print(line) #一行行读取文件

关闭文件

关闭文件方式一:

f = open("db",'r+',encoding="utf-8") #r+:可读可写文件

f.seek(2) #把指针一至问价第一行的第二元素,

f.truncate()#把指针后面的数据清空,只是截取指针前面的数据

f.close() #关闭文件

关闭文件方式二:

#with open("hh.txt",'r',encoding="utf-8") as f #打开文件hh.txt并赋值给变量f

2.6不支持同时打开两个或者多个文件操作,3.0则支持同时打开多个文件  #with open('db')as f

#  pass

3.0 则支持同时打开多个文件

with open('db')as f,open('db2')as f:

同时打开两个文件,把一个文件读的数据写入另外一个文件

with open("ha",'r',encoding="utf-8")as f1,open("db",'w',encoding="utf-8")as f2:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 with open("ha",'r',encoding="utf-8")as f1,open("db",'w',encoding="utf-8")as f2:2 time=0 #计数

3 for line in f1: #读取f1文件每一行

4 time +=1 #没读取一行自增加一

5 if time<=10: #当读取f1文件的第10行时,把数据写入f2中

6 f2.write(line)7 else: #否则读取超过10行的数据,break退出循环

8 break

View Code

callable :表示是否可以被执行

def f1():

pass

f1()

f2=123

print(callable(f1)) #表示可执行“TRUE”

print(callable(f2)) #表示不可被执行“FALSE”

chr,ord 函数

#chr:将asscill码中的数字转换至字母

r = chr(65)

print(r)

#ord:将asscill码中的字母转换至数字

r2 =ord("B")

print(r2)

random模块:

#import random #需要导入random模块

#i = random.randrange(65,91) #表示在一个范围内随机生成一组数字或者字母

例如:6为数字加字母的验证码

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importrandom2 li= [] #将新生成的数据放至列表中

3 for i in range(6): #一共循环6次

4 r = random.randrange(0,5) #循环范围在0-5之间,当循环数字为2或者为4时,就把打印(0-9)数字赋值给num

5 if r == 2 or r == 4:6 num = random.randrange(0,10)7 li.append(str(num)) #输出是列表的类型需要统一,0-9为数字,65-91是将数据转换至字母

8 else:9 temp = random.randrange(65,91)#accill中65-91相对应的数字母

10 c=chr(temp)11 li.append(c) #将生成数据赋值给li列表

12 s = "".join(li) #join把生成的字母拼接

13 print(s)

View Code

compile、eval、exec函数

compile:将字符串编译成python代码(用于python模板引擎)

eval:执行python代码或字符串,并获取返回值

#eval函数:表示将python字符串转换成一个算数表达式并返回结果

r = '9*6-8'

print( eval(r)) #46

exec:只能执行表达式,且无返回值(None)

#exec函数:只执行表达式,无返回值(None)

r = '9*6-8'

print(exec(r)) #None

single:把字符串编译成单行的python程序,

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 s = "print(123)"

2 #python内部执行流程先编译

3 #single-->把字符串编译成单行的python程序,

4 #eval--》将字符串编译成一个“一个表达式,

5 #exec--》将编译成的代码弄成跟python一样的编码格式的代码

6 #compile将字符串编译成python代码

7 r = compile(s,"","exec")#string表示要把一个字符串编译成一个python代码

8 #执行python代码或字符串,且无返回值

9 exec(r)10 #eval 只能执行表达式,并获取有返回值

11 s = "9*9"

12 ret=eval(s)13 print(ret)

View Code

dir:快速获取某一个类、列表、字典、某块或者对象提供哪些功能

#print(dir(dict))  #查看字典提供哪些功能

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

divmod:计算分页

r = divmod(100,3)

print(r[0]) #0表示商的整数

print(r[1]) #1表示商的余数

n1,n2 =divmod(100,2)

print(n1,n2) #n1表示商的整数,n2表示商的余数

对象和类的关系

1)、对象是类的实例

2)、字典是dict实例,列表是list实例,元祖是tulp是实例

isinstance:判断对象是否是某个类的实例

s=[22,34,4,56,]

r=isinstance(s,list)

print(r) #True

filter:筛选数字

格式为filter(函数,可迭代对象(字典,列表))

#filter筛选数字,格式为filter(函数,可迭代对象(字典,列表))

def f2(a):

if a> 22: #列表的第一个元素开始于22比大小,如TRUE则把数据赋值给ret,否则抛弃数字

return True

li = [11,22,3,34,55,77,]

ret = filter(f2,li) #把列表li作为参数传给F2,

print(list(ret))

8f900a89c6347c561fdf2122f13be562.pngView Code

filter与lambda结合使用

#lambda表达式:自动返回return,如条件成立返回TRUE,否则返回FALSE

li = [22,33,44,556,6,77,88,]

result = filter(lambda a:a>22,li) #将lamdba函数与li列表中的每一个数字对比大小,大于列表的数字即返回TRUE,否则返回FASLE

print(list(result)) #将返回结果转换至列表形式

map函数和lamdba函数使用

格式:#map(函数,可迭代的对象(可以for循环的东西)

def f1(a):

return a+100

li = [22,33,4,5,6]

ret = map(f1,li) #将列表中的每一个元素加100,并把结果返回给ret

print(list(ret))#将返回数字转换至列表形式

def f2(a):

return a+100

li = [22,33,55,7,78,97,]

ret = map(lambda a:a+100,li)#将列表中的每一个数字同过lamdba加100,并把结果返回给ret

print(list(ret)) #将返回数字转换至列表形式

globals:所有全局变量

locals:所有的局部变量e2b6f1923e227f657f7a234483af7906.png

hash:将对象转换一个hash值,一般用于字典的key保存

heple:查看帮助

len:查看字节长度

# s = "李杰"

# print(len (s),type(s))

#

# s="李杰"

# b= bytes(s,encoding='utf-8') #将字符转换为字节查看

# print(len(b))

#

# #2.7 for“李杰”

# #3.0 for "李杰"

例子:len:取字符串长度

r = '1234567890'

print(len(r)) #10

关于嵌套while知识扩展:

在嵌套的while循环中,break只是结束当前循环,并未结束整个循环语句

flag = True #将True赋值给flag

while flag: #当条件为真执行下面while循环

while True: #如果第二个while语句为真,则返回bbb,否则退出本次循环

print('bbb')

flag = False #条件不成立,执行break,并执行第一个while语句,返回aaa

break

print('aaa')

# bbb

# aaa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值