python--内置函数

内置函数

现在python一共为我们提供了68个内置函数,讲述过程:

一、其他中的12个

(一)执行   字符串     类型代码的执行
1  eval执行有意义的字符串 ,有返回值
 print(eval('1+2'))print(eval("print('美丽')"))    #美丽
2  exec执行 有意义 的字符串,简单的  流程控制  ,没有返回值
 exec('for i in range(5):print(i)')    #0,1,2,3,4

注释:

# exec和eval都可以执行 字符串类型的代码
# eval有返回值 —— 有结果的简单计算
# exec没有返回值 —— 简单流程控制
# eval只能用在你明确知道你要执行的代码是什么

3 compile字符串执行 :编译
ret='for i in range(5):print(i)'
c=compile(ret,'','exec')        #用exec执行,有返回值
exec(c)
ret='1+2+3+4'
c=compile(ret,'','eval') #''引号原本的功能是放
print(eval(c)) # 用eval执行,没有返回值,所以需要打印
(二)输入输出
1   input
input('提示:')
2   print()
l='a'
print(l)                 #a
print(l,end='%%')     #  a%%    end是print中默认的以换行做结尾,这里可以改为%%结尾
print(l,end='%%')    #a%%a%%
print(l,2,3,5,6,sep='%%')     #a%%2%%3%%5%%6      sep是print中元素之间默认用空格隔开,这里可以改成%%
print(l,2,3,5,6)    #a 2 3 5 6
f=open('上课',mode='w',encoding='utf-8')     #打开文件夹,之后通过句柄操作文件
l='mmmm'
print(l,file=f)     #print中file默认在控制台打印,可以把file=f文件句柄,改成在文件中打印
f.close()
(三)内存相关
1    hash()   #在程序的一次执行中,hash值只有一个,但是再次执行时,hash值就会改变
print(hash((0,2,3))) #-19文件执行的操作43780824

2 id()就是内存地址
print(id(1))
(四)文件操作相关(1)
1    open
f=open('上课')
print(f.writable())    #False
print(f.readable())    #True
print(f.readline())    #把上课文件中的内容读出来了:mmmm
(五)调用相关
1    callable  判断是否可以被调用
print(callable(a))    #Flase
print(callable(print))  #True
print(callable(globals))   #globals 加上s
(六)模块相关
1  import
import time
print(time.time())   #1515230362.92395
等同于以下例子
t=__import__('time')
print(t.time())   #1515230362.92395
# 某个方法属于某个数据类型的变量,就用.调用
# 如果某个方法不依赖于任何数据类型,就直接调用 —— 内置函数 和 自定义函数
(七)帮助
1   help    查看方法运用
# help(str)
 
(八)查看内置属性
1 dir 查看变量的方法
print(dir([1,2]))
 
二、 基础数据类型相关   38个
(一)和数据结构相关(24)
 1.1和数字相关
1    数据类型
bool
int       整形
float   # 浮点数(有限循环小数,无限循环小数)  != 小数 :有限循环小数,无限循环小数,无限不循环小数
complex 复数,不能比较大小  实部+虚部   两个部分都是浮点数
1+2j
4+5j
2   进制转换
bin   二进制
print(bin(2))   #0b10
oct   八进制
print(oct(2))   #0o2
hex   十六进制
print(hex(2))   #0x2
3  数学运算
abs  取绝对值print(abs(-1))divmod  除余
print(divmod(9,6))    #(1, 3)  商1  余3

round  小数精确
print(round(2,445))     #2
print(round(2,56))    #2

sum   求和   q求和对象是可迭代的  sum(iterable,start)   start开始加的值
错误写法  print(sum(1,2))
print(sum([1,2,3,4]))    #10
print(sum([1,2,3,4],10))     #   第一个数从10 开始加

min   求最小值
print(min(2,5,6,8))   #2
print(min(2,5,6,8,-0.5,key=abs))   #-0.5

max
print(max(2,5,6,8,-1,-8,key=abs))   #8

pow  求幂运算pow(x,y,z)
print(pow(2,3))    2的3次方
print(pow(2,3,3)) #幂运算之后再取余2
(三)列表和元组   可以强转
t=(1,2,3,4)
print(list(t))    #[1, 2, 3, 4]
print(tuple(t)    #再转回元组(1, 2, 3, 4)

 

1.2相关内置函数
1.  reversed  反转
reverse  反转
l=[1,3,6,4]
l.reverse()    #反转l
print(l)
reversed 保留原列表,得到一个反向迭代器 l2
=reversed(l) #生成器 print(l2) #<list_reverseiterator object at 0x018539D0> for i in l2:print(i) #4,6,3,1

 

2  slice   切片
t = (1,2,23,213,5612,342,43)
t1=slice(0,5,2) 
print(t1)    #slice(0, 5, 2)    切片
print(t[t1])  # (1, 23, 5612)     把l从索引0到5开始切片按照每隔2个值切片
化简:
print(t[slice(0,5,2)])   # (1, 23, 5612)

1.3字符串

3 format #格式化输出
print('今天很{},我很{},是个{}'.format('美好','美丽','美女'))
print(format('美丽','>20'))    #把字符串以20个长度为标准,左靠齐
print(format('美丽','<20'))     #把字符串以20个长度为标准,右靠齐
print(format('美丽','^20'))    #把字符串以20个长度为标准,居中
4   bytes
需求把gbk编码的转换为utf-8,python是unicode编码,需要先把'你好'转为gbk 形式
print(bytes('美丽',encoding='GBK'))                                    #等价于==print('美丽'.encode('gbk')) #  #b'\xc4\xe3\xba\xc3'把unicode转换为gbk的bytes类型
print((bytes('美丽',encoding='gbk')).decode('gbk').encode('utf-8'))    #转换成功
注释:
网页编程是二进制存储 照片视频也是二进制 html网页爬取也是二进制

 

5.bytearray   bytearray(s,encoding='utf-8')  转换编码,特点是可以根据字节码改内容,但是你要提前 知道要改内容的号码
b_bytes=bytearray('你好',encoding='utf-8')
print(b_bytes)    #'\xe4\xbd\xa0\xe5\xa5\xbd')
print(b_bytes[0])   #228
print(b_bytes[1])   #189

 

6.memoryview 视觉展示,只是给我们看,不占用内存,但是要调用是时候还是会占用内存,用处比较少
memoryview(bytes('hello,eva',encoding='utf-8')

 

 7.ord字符按照unicode转数字
print(ord(''))    #20320
print(ord('1'))    #49
print(ord('A'))    #65
print(ord(''))    #10084

 

8、chr数字按照unicode转字符,  但是从65(A的数字对应65)开始才能转换
print(chr(97))    #a
print(chr(98))    #
print(chr(65))    #A
 

 

9、ascii   字符在ascii码中的内容就打印出来,不是就转换成\u
print(ascii('')     #'\u4f60'
print(ascii('A') )    #'A'

 

10、repr 用于%r格式化输出    ,不同于print的是:会将打印内容的数据类型也一起打印出来
name='egg'
print('你好%s'%name)   #你好egg
print('你好%r'%name)   #你好'egg'
print(repr('1'))     #'1'
print('1')       #1
print(repr(1))   #1

 

1.4字符串

11.dict

12、set、
13、frozenset

14、len

15、enumerate枚举
dic={'a':'b','c':'d'}
for k,i in enumerate(dic,1):print(k,i)

 

1.5相关内置函数(8)
16、all 判断是否有bool值是Flase的值,---一假均假---用中括号写进要判断的值,
print(all([' ','ni','你']))    #True
print(all(['','ni','你'])) #Flase
特殊情况 : print(all([])) #Ture
print(all([''])) #Flase

 

 17、any 判断bool值是否有True的值-----一真均真
print(any([' ','ni','']))    #True
print(any(['','ni','']))    #True
print(all(['']))    #Flase

 

 18、zip  返回一个迭代器,拉链功能
 
a=['a','b']  #列表
b=['c','d']
ret=zip(a,b)
for i in ret:    #('a', 'c')('b', 'd')print(i)
a
={'a','b'} #字典 b={'c','d'} ret=zip(a,b) for i in ret:print(i) ##('a', 'c')('b', 'd')和上面效果一样 #简化: a=['a','b'] b=['c','d'] c=['e','f'] for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f')print(i) #字典、列表、元祖混用拉链 a=['a','b','g'] #不是一一对应的话,自动去除多余的 b={'c','d']} #dict list tuple 都可以用zip 来拉链 c=('e','f']) for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f')print(i)
 

 

19、filter  filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,

filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
 
def f(x):return x%2==0
g=filter(f,[1,3,5,6,7,8])    #filter 得到是一个迭代器
for i in g:print(i)               #6 8
filter过滤的功能
def a(z):return z%2==1 #函数返回值为Ture,则放到新的迭代器中 ret=filter(a,[1,2,3,4,5,6]) #函数名不加括号,因为前面filter要来调用函数名,得到的ret是一个迭代器 for i in ret: #不调用不打印print(i) 功能解析:把可迭代的值传给某个函数,函数来执行
def a(z):return z%2==0 ret=filter(a,[1,2,3,4,5,6]) for i in ret:print(i) 上面那个filter方法等于这个列表推导式的功能 c=[i for i in [1,2,3,4,5,6] if i%2==1] for i in c:print(i)

取出0到100中能够开方的整数
from math import sqrt def num(s):if sqrt(s)%1==0:return True ret=filter(num,range(0,101)) for i in ret:print(i)
 

 

20、map
Python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,
map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,
map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
 
#例题L = [1, 2, 3, 4, 5, 6, 7, 8]def l(a):     return a**2g=map(l,L)                #map后得到的也是迭代器print(list(g))              #[1, 4, 9, 16, 25, 36, 49, 64]
或者用for
for i in g: print(i)

 

注释:

# 结论:filter()之后元素个数会发生改变,map()之后元素个数不会改变
# #filter只管筛选,不会改变原来的值 map值会改变

21、sorted   排序,有key,默认Flse  从小到大排序   reverse=True  从大到小排序
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则.reverse = True降序或者reverse = False升序,有默认值。
返回值:有序列表:
例
l=[2,1,5,7,-10]
print(sorted(l,key=abs,reverse=True))     #[-10, 7, 5, 2, 1]
等同于sort
l=[2,1,5,7,-10]
l.sort(key=abs,reverse=True)
print(l)          #[-10, 7, 5, 2, 1]

sort使用方法
l=[2,1,5,7,-10]
l.sort()
print(l)   #[-10, 1, 2, 5, 7]

 

 三、匿名函数

 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

#这段代码
def calc(n):return n**n
print(calc(10))#换成匿名函数
calc = lambda n:n**n
print(calc(10))

 

 







 

 

 

 

转载于:https://www.cnblogs.com/zzy-9318/p/8228139.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nancy简单实战之NancyMusicStore(四):实现购物车

原文:Nancy简单实战之NancyMusicStore(四)&#xff1a;实现购物车前言 上一篇&#xff0c;我们完成了商品的详情和商品的管理&#xff0c;这一篇我们来完成最后的一个购物车功能。 购物车&#xff0c;不外乎这几个功能&#xff1a;添加商品到购物车&#xff0c;删除购物车中的商…

剑指 Offer 32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 节点总数 < 1000 解题思路 使用队列实现层序遍历 代码 /*** …

数据库表命名 单数复数_数据是还是数据是? “数据”一词是单数还是复数?

数据库表命名 单数复数Ill cut right to the chase: the word "data" is plural. Its the plural form of Latin word "datum." Many data. One datum.我将紧追其后&#xff1a;“数据”一词是复数形式。 它是拉丁文“基准”的复数形式。 许多数据。 一个基…

《七步掌握业务分析》读书笔记六

分析技术和呈现格式 词汇表 强有力沟通的一个重要内容是一致地使用术语和惯用语。每次谈话都涉及对术语的共同理解。 工作流图&#xff08;也称为流程图、UNL活动图和过程图&#xff09; 工作流程把一个或多个业务过程的细节可视化地呈现出来&#xff0c;以澄清理解或提出过程改…

Mysql数据库--语句整理/提升/进阶/高级使用技巧

一、基础 1、说明&#xff1a;创建数据库CREATE DATABASE database-name 2、说明&#xff1a;删除数据库drop database dbname3、说明&#xff1a;备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat--- …

1104. 二叉树寻路

在一棵无限的二叉树上&#xff0c;每个节点都有两个子节点&#xff0c;树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示&#xff0c;在奇数行&#xff08;即&#xff0c;第一行、第三行、第五行……&#xff09;中&#xff0c;按从左到右的顺序进行标记&#xff1b;…

javascript 代码_如何开始对JavaScript代码进行单元测试

javascript 代码We all know we should write unit tests. But, its hard to know where to start and how much time to devote to tests compared to actual implementation. So, where to start? And is it just about testing code or do unit tests have other benefits?…

个人作业——软件工程实践总结作业

一、请回望暑假时的第一次作业&#xff0c;你对于软件工程课程的想象 1&#xff09;对比开篇博客你对课程目标和期待&#xff0c;“希望通过实践锻炼&#xff0c;增强计算机专业的能力和就业竞争力”&#xff0c;对比目前的所学所练所得&#xff0c;在哪些方面达到了你的期待和…

(转)在阿里,我们如何管理代码分支?

阿里妹导读&#xff1a;代码分支模式的选择并没有绝对的正确和错误之分&#xff0c;关键是与项目的规模和发布节奏相匹配。阿里协同研发平台在经过众多实践历练后&#xff0c;总结出了一套独创的分支管理方法&#xff1a;AoneFlow&#xff0c;通过兼备灵活高效与简单实用的流程…

WIN10系统 截图或者某些程序时屏幕会自动放大怎么办

右击这个应用程序&#xff0c;兼容性&#xff0c;以兼容模式运行&#xff0c;同时勾选高DPI设置时禁止显示缩放即可

css背景图片添加url_CSS背景图片–如何向您的Div添加图片URL

css背景图片添加urlSay you want to put an image or two on a webpage. One way is to use the background-image CSS property. 假设您要在网页上放置一两个图片。 一种方法是使用background-image CSS属性。 This property applies one or more background images to an el…

golang基础01

1.环境变量&#xff1a;go env//代码目录和第三方库文件set GOPATHC:\Users\hanxiaodong\go//go安装目录set GOROOTC:\Gopath里要配置&#xff1a;goroot/bin;和gopath/bin; gopath目录下三个文件夹&#xff1a;pkg&#xff1a;编译好的库文件 .a 文件bin&#xff1a;可执行文件…

hugo 能做web开发吗_如何自托管Hugo Web应用

hugo 能做web开发吗After hosting with Netlify for a few years, I decided to head back to self hosting. There are a few reasons for that, but the main reasoning was that I had more control over how things worked. 在Netlify托管了几年之后&#xff0c;我决定回到…

资源 | 深度学习课程入门与介绍

【1】Andrew NG Deep Learning.ai http://deeplearning.ai/网易云课堂&#xff08;中文字幕&#xff09;&#xff1a;http://mooc.study.163.com/smartSpec/detail/1001319001.htm推荐理由&#xff1a;Andrew Ng老师是讲课的能手&#xff0c;很多人认识他是从Stanford的经典《机…

PostCSS 以及 cssnext语法

本文是对近两天学习postcss的总结&#xff0c;在这里分享给大家。 如有错误&#xff0c;还请指正&#xff01; 什么是postcss postcss 一种对css编译的工具&#xff0c;类似babel对js的处理&#xff0c;常见的功能如&#xff1a; 1 . 使用下一代css语法 2 . 自动补全浏览器前缀…

5187. 收集足够苹果的最小花园周长

给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你一个整数 neededApples &#xff0c…

虚拟机 VMware Workstation12 安装OS X 系统

Windows下虚拟机安装Mac OS X —– VMware Workstation12安装Mac OS X 10.11本文即将介绍WIN虚拟MAC的教程。完整详细教程&#xff08;包含安装中的一些问题&#xff09;【并且适用其他mac os x版本】Windows下 VM12虚拟机安装OS X 10.11(详细教程) 工具/原料 Mac OS X 10.11 镜…

aws dynamodb_DynamoDB备忘单–您需要了解的有关2020 AWS认证开发人员助理认证的Amazon Dynamo DB的所有信息

aws dynamodbThe emergence of cloud services has changed the way we build web-applications. This in turn has changed the responsibilities of a Web Developer. 云服务的出现改变了我们构建Web应用程序的方式。 反过来&#xff0c;这改变了Web开发人员的职责。 We use…

北大CIO走进龙泉寺交流研讨会圆满举行

缘起 2016年4月16日&#xff0c;北京大学信息化与信息管理研究中心秘书长姚乐博士与国家非物质文化遗产蔚县剪纸传承人周淑英女士一起在龙泉寺拜见了中国佛教协会会长、龙泉寺主持学诚法师。在拜见学诚法师时&#xff0c;姚乐博士与学诚法师聊到了“贤二机器僧”和人工智能。姚…

负载均衡种类

http://blog.csdn.net/zhoudaxia/article/details/23672319DNS DNS轮询是最简单的负载均衡方式。以域名作为访问入口&#xff0c;通过配置多条DNS A记录使得请求可以分配到不同的服务器。DNS轮询没有快速的健康检查机制&#xff0c;而且只支持WRR的调度策略导致负载很难“均衡”…