一:内置函数

    常用内置函数如下:

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

#abs:取绝对值
n = abs(-10)
print(n)
 2)any和all
  值为Fslse有:0,None,""->空的字符串,[]空列表,()空元祖
  any:只有字为真即为真
  all:值所有为真即为真
 3)ascii() 自动执行对象的_repr_方法 (了解)
 #ascii()  自动执行对象的_repr_方法
class foo:
def __repr__(self):
return ""
n = ascii(foo())
print(n)
 #all()
#any()
#什么值为Fasle值:0,None,"空字符串","空的元祖","空的字典","空的列表"
print(bool(0)) #“0”输出值为Fasle
print(bool("")) #空字符串输出值为Fasle
print(bool([])) #“空列表”输出值为Fasle
print(bool()) #“空元祖”输出值为Fasle
print(bool({})) #“空字典”输出值为Fasle
 #all() :所有为真才为真
n = all([1,2,3,4,5,])
print(n)
# any():任何一个为真,即为真
n2 = any((0,2,3,4,[],(),-1))
print(n2)

  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'
 #一个汉子转换为一个字节
#字符串转换为字节类型
#bytes(需要转换的字符串,按照什么编码格式)
s = "北京欢迎你"
n = bytes(s,encoding="utf-8") #将“北京欢迎你”字符串转换为utf-8字节类型
print(n)
n = bytes(s,encoding="GBK") #将“北京欢迎你”字符串转换为GBK字节类型
print(n)

  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 :主动把指针调到某一个位置,永远按照(字节)方式找位置,即使有中文一样,屏蔽中文
 #seek主动把指针调到某一个位置,永远按照字节方式找位置,即使有中文一样,屏蔽中文
f = open("db",'r+', encoding="utf-8")
#如果打开模式无b,则read,按照字符读取
date = f.read(1)
#tell:获取当前指针的位置(字节)
print(f.tell())
#调整当前指针位置(字节)
f.seek(f.tell())
#当前指针位置开始向后覆盖
f.write("")
f.close()

  操作文件:

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

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

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

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

  fileno():文件描述符

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

 f = open("db",'a',encoding="utf-8")  #参数a:追加模式【可读;   不存在则创建;存在则只追加内容;】
f.write("") #在db文件中写入3456
f.flush() #将数字3456强制写入内存
input("dsddsds")

  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:
 with open("ha",'r',encoding="utf-8")as f1,open("db",'w',encoding="utf-8")as f2:
time=0 #计数
for line in f1: #读取f1文件每一行
time +=1 #没读取一行自增加一
if time<=10: #当读取f1文件的第10行时,把数据写入f2中
f2.write(line)
else: #否则读取超过10行的数据,break退出循环
break

  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为数字加字母的验证码
 import random
li= [] #将新生成的数据放至列表中
for i in range(6): #一共循环6次
r = random.randrange(0,5) #循环范围在0-5之间,当循环数字为2或者为4时,就把打印(0-9)数字赋值给num
if r == 2 or r == 4:
num = random.randrange(0,10)
li.append(str(num)) #输出是列表的类型需要统一,0-9为数字,65-91是将数据转换至字母
else:
temp = random.randrange(65,91)#accill中65-91相对应的数字母
c=chr(temp)
li.append(c) #将生成数据赋值给li列表
s = "".join(li) #join把生成的字母拼接
print(s)

  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程序,

 s = "print(123)"
#python内部执行流程先编译
# single-->把字符串编译成单行的python程序,
# eval--》将字符串编译成一个“一个表达式,
# exec--》将编译成的代码弄成跟python一样的编码格式的代码
#compile将字符串编译成python代码
r = compile(s,"<string>","exec")#string表示要把一个字符串编译成一个python代码
#执行python代码或字符串,且无返回值
exec(r)
#eval 只能执行表达式,并获取有返回值
s = "9*9"
ret=eval(s)
print(ret)

  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))

  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:所有的局部变量
   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

Python_Day_4(内置函数之篇)的更多相关文章

  1. [Python笔记]第四篇:内置函数

    本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ...

  2. Python函数篇(3)-内置函数、文件处理

    1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...

  3. Python开发【第五篇】内置函数

    abs() 函数返回数字的绝对值 __author__ = "Tang" a = -30 all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为True,如果 ...

  4. 洗礼灵魂,修炼python(42)--巩固篇—type内置函数与类的千丝万缕关系

    type函数的隐藏属性 相信大家都知道内置函数type是用来查看对象的数据类型的.例: 那比如我对int类查看类型呢? 有朋友会说,int是内置类啊,用自定义的应该不会这样,我们自定义一个类呢? 还是 ...

  5. 第六篇:python基础_6 内置函数与常用模块(一)

    本篇内容 内置函数 匿名函数 re模块 time模块 random模块 os模块 sys模块 json与pickle模块 shelve模块 一. 内置函数 1.定义 内置函数又被称为工厂函数. 2.常 ...

  6. Python基础篇【第2篇】: Python内置函数(一)

    Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...

  7. python成长之路第三篇(3)_内置函数及生成器迭代器

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...

  8. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  9. Python成长之路第二篇(1)_数据类型内置函数用法

    数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...

随机推荐

  1. yii2 生成PDF格式的文件

    1 .先把mpdf-development.zip解压的类文件夹放到vendor目录里面,重命名为mpdf 2 .在vendor/composer/autoload_namespaces.php里面添 ...

  2. BigBlueButton的安装

    下来VM文件,打开系统后 sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgrade sudo apt-get install b ...

  3. 用python做些有意思的事——分析QQ聊天记录——私人订制

    之前,写了这篇文章,用python提取全部群成员的发言时间,并简单做了下分析.先补充一下,针对特定单个群成员(这里以  小小白   为例)消息记录的获取. 代码比较简单,主要是正则表达式的书写.(附: ...

  4. HDOJ-三部曲-1002-Etaoin Shrdlu

    ContestsProblemsRanklistStatusStatistics Etaoin Shrdlu Time Limit : 2000/1000ms (Java/Other)   Memor ...

  5. Asp.Net请求管道中的19个事件

    请求管道中的19个事件.(1)BeginRequest: 开始处理请求(2)AuthenticateRequest授权验证请求,获取用户授权信息(3):PostAuthenticateRequest获 ...

  6. List<T>Contains, Exists, Any之间的优缺点对比

    在List<T>中,Contains, Exists, Any都可以实现判断元素是否存在. 性能方面:Contains 优于 Exists 优于 Any 测试的代码: public sta ...

  7. IOS 作业项目(4)步步完成 画图 程序(中)

    一,承接上文,继续本文  [UIButton buttonWithType:UIButtonTypeRoundedRect]; 如此声明的按钮才会有点击闪动的效果!如果直接frame方式声明就不会有. ...

  8. CSS基础:text-overflow:ellipsis溢出文本

    <!DOCTYPE html><html> <head> <title> new document </title> <meta na ...

  9. 通过.htaccess文件让Magento加速

    Magento提速的方法很多,通 过.htaccess文件开启GZip压缩可以非常明显的让Magento加速.在Magento初始安装中已经包含了.htaccess文件,我们只需 要把.htacces ...

  10. magento首页调用最新产品

    这个需要我们自己添加一个block块供我们调用,可参考new products的block类,建立文件app/code/core/Mage/Catalog/Block/Product/Special. ...