十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1
1 ● eval(), exec(), compile()
|
执行字符串数据类型的python代码 ① eval : 有返回值, 适用于执行计算语句, 例如eval("4+3"). ② exec : 没有返回值, 适用于执行流程控制语句, 例如exec(a = b if b>c else c) ③ complie: code1 = 'for i in range(0,3): print(i)' compile1 = compile(code1, '', 'exec') # 中间表示filename的参数即使没有也要有一个空字符串(其实也可以胡乱写一个字符串) print(compile1) # <code object <module> at 0x0000000002802270, file "", line 1> exec(compile1) exec(compile1) ''' 0 1 2 0 1 2 ''' |
|
compile(str ,filename ,kind ) compile()将一个字符串编译为字节代码, str是将要被编译的字符串, filename是定义该字符串变量的文件, kind参数指定了代码被编译的类型: eval, single, exec 'eval'指一个表达式. 'single'指单个语句, 'exec'指多个语句, 返回一个代码对象,该对象也可以被传递给eval()函数和exec语句来执行
预编译, 可以有效提高程序的执行效率 |
|
eval(), exec()和compile()不要随便使用, 若使用, 也要做好充分的测试. |
2 ● print()函数扩展
|
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) |
|
print("枯藤", "老树", "昏鸦", sep = ",", end = "←") # 枯藤,老树,昏鸦← # sep默认为一个空格" ", end默认为一个换行符 |
|
import time for i in range(0,101,10): time.sleep(1) # 便于观察 char_num = i//2 #打印多少个'*' #per_str = '\r%d%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%d%% : %s'%(i,'*'*char_num) # 等价于: #per_str = '\r%d%% : %s' % (i, '*' * char_num) if i != 100 else '\r%d%% : %s\n' % (i, '*' * char_num) # 或者是: per_str = '\r%d%% : %s' % (i, '*' * char_num) # 但不能是: print(per_str,end='', flush=True)
# 100% : ************************************************** # 每次循环都是从头开始打印在控制台上的 |
|
f = open('print_test', 'a', encoding = 'utf-8') print("This is a log!", file = f) # 用print写日志文件. |
3 ● 有关换行(line feed), 回车(carriage)
|
\r--CR(carriage return, 回车)--把光标移到所在行开头 \n--LF(line feed, 换行)--把光标移到下一行开头。 \r\n—CR+LF—回车+换行 |
4 ● 有关内置函数hash()
|
url = 'https://www.baidu.com/' from urllib.request import urlopen content = urlopen(url).read() dic = {hash(url):content} for key in dic: print(key) print(hash(url)) ''' 4122514777272343416 4122514777272343416 # 在运行一次, 得到: 8389699687043686450 8389699687043686450 ''' # ※在python的一次执行中, 对于相同的可hash的对象, hash()函数返回的都是相同的数字(因为对象在一个生命周期内) |
5 ● filter()函数和map()函数
|
# filter()函数, 类似于列表推导式 def func1(n): if n % 2 == 0: return True li = [3,2,6,9,8]
print(filter(func1, li)) # filter()方法返回一个迭代器 print(list(filter(func1, li)))
''' <filter object at 0x00000000025E99B0> [2, 6, 8] ''' |
|
def func2(n): if n % 2 == 0: return n li2 = [3,2,6,9,8]
print(list(map(func2, li2))) ''' [None, 2, 6, None, 8] '''
def func3(n): return n**2
print(list(map(func3, li2))) ''' [9, 4, 36, 81, 64] ''' |
|
典型案例: 删除 None 或者空字符串 |
|
# def deter(m): # if m and len(m.strip()) > 0: # 注意m必须写在len(m.strip()) > 0之前, 否则会被警示None无法计算长度 # return True
# 等价于: def deter(m): return m and len(m.strip())
lst = ['test', None, '', 'str', ' ', 'END']
print(list(filter(deter, lst))) ''' ['test', 'str', 'END'] |
6 ● 内置函数__import__()
|
__import__('a') # 导入 a.py 模块 |
十五. Python基础(15)--内置函数-1的更多相关文章
- 十六. Python基础(16)--内置函数-2
十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...
- python基础(15):内置函数(一)
1. 内置函数 什么是内置函数? 就是python给你提供的,拿来直接⽤的函数,比如print,input等等,截⽌到python版本3.6.2 python⼀共提供了68个内置函数.他们就是pyth ...
- python基础(内置函数+文件操作+lambda)
一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...
- 第六篇:python基础_6 内置函数与常用模块(一)
本篇内容 内置函数 匿名函数 re模块 time模块 random模块 os模块 sys模块 json与pickle模块 shelve模块 一. 内置函数 1.定义 内置函数又被称为工厂函数. 2.常 ...
- Python基础:内置函数
本文基于Python 3.6.5的标准库文档编写,罗列了英文文档中介绍的所有内建函数,并对其用法进行了简要介绍. 下图来自Python官网:展示了所有的内置函数,共计68个(14*4+12),大家可以 ...
- Python基础编程 内置函数
内置函数 内置函数(一定记住并且精通) print()屏幕输出 int():pass str():pass bool():pass set(): pass list() 将一个可迭代对象转换成列表 t ...
- 学习PYTHON之路, DAY 4 - PYTHON 基础 4 (内置函数)
注:查看详细请看https://docs.python.org/3/library/functions.html#next 一 all(), any() False: 0, Noe, '', [], ...
- Python基础_内置函数
Built-in Functions abs() delattr() hash() memoryview() set() all() dict() help() min() setat ...
- python基础(16):内置函数(二)
1. lamda匿名函数 为了解决⼀些简单的需求⽽设计的⼀句话函数 # 计算n的n次⽅ def func(n): return n**n print(func(10)) f = lambda n: n ...
随机推荐
- (转)c# control.Invoke control.BeginInvoke
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate. 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是do ...
- spring cloud: Hystrix(一):简单使用
在微服务架构中,我们将系统拆分为很多个服务,各个服务之间通过注册与订阅的方式相互依赖,由于各个服务都是在各自的进程中运行,就有可能由于网络原因或者服务自身的问题导致调用故障或延迟,随着服务的积压,可能 ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 创建子网格
jQuery EasyUI 数据网格 - 创建子网格 使用数据网格(datagrid)的详细视图,用户可以展开一行来显示附加的详细信息. 任何内容都可以加载作为行详细,子网格也可以动态加载. 本教程将 ...
- 【调试】Idea如何远程debug之SpringBoot jar包启动
一.Java -jar启动添加如下参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address= -Xdebug是通知JVM工 ...
- Web版记账本开发记录(二)
第二天又开始了,继续开始编辑之路. 今天在弄用户登录,也不知道为什么, 挺简单的一个程序耗时还挺多,在编程的过程中我发现昨天的思路有一些问题, 今天又重新理了一下思路. 还将昨天的表格给完善了一些,自 ...
- webpack+vue多入口环境搭建
项目地址:https://pan.baidu.com/s/1c1Dflp2 使用前提:安装nodejs环境,webpack的配置官网的例子跟着跑一遍,会vue开发 研究webpack+vue研究了一个 ...
- 腾讯tOS死亡或注定,为何国内无自主ROM?
http://tech.sina.com.cn/roll/2017-06-26/doc-ifyhmtrw4006354.shtml 腾讯OS死亡或注定,为何国内无自主ROM? 2017年06月26日 ...
- JavaScript高级程序设计笔记(一)
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...
- html标签积累
<marquee>滚动标签 <marquee>标签,它是成对出现的标签,首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容.&l ...
- KDD Cup 99网络入侵检测数据的分析
看论文 该数据集是从一个模拟的美国空军局域网上采集来的 9 个星期的网络连接数据, 分成具有标识的训练数据和未加标识的测试数据.测试数据和训练数据有着不同的概率分布, 测试数据包含了一些未出现在训练数 ...