Python学习 day15
一、内置函数(共68个)
1、作用域相关(2)
locals(*args, **kwargs) -- 返回本地作用域中的所有名字
globals(*args, **kwargs) -- 返回全局作用域中的所有名字
ps:注意区分global、nonlocal关键字
2、迭代器/生成器相关(3)
next(iterator, default=None) -- 调用迭代器内部__next__()方法,同时做了封装,设置默认值则不抛出异常
iter(source, sentinel=None) -- 调用__iter__()方法,获取迭代器
range(start=0, stop, step=1) -- 返回一个整数序列的可迭代对象,注意:不是迭代器
3、数据类型 - 基础数据类型相关()
3.1、数据类型(4)
bool()
int()
float() -- float对应的浮点数,记住在计算机里并不是真正数学意义上的这个数,是存在误差的,当小数位数过多时就会不准确
complex() -- complex,即复数,明显是把什么东西强转成复数,或者说就是定义一个复数,如 complex(12+3j) :
另外,复数实部和虚部都是浮点数,且j不区分大小写
3.2、进制转换(3)
bin() -- 转为二进制
oct() -- 转为八进制
hex() -- 转为十六进制
PS:以10为例,可以直接表示成二进制0b1010,八进制0o12,十六进制0xa,这些在赋值时都可以直接使用,打印出来默认还是十进制的,除非用进制转换转换一下。
3.3、数学运算(7)
abs() -- 计算绝对值
divmod() -- 返回(除、余)
round(number, ndigits=None) -- 小数精确,ndigits表示保留几位小数
pow() -- 幂运算,三个参数表示幂运算后再取余
Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
sum(iterable, start) -- 求和 传入一个可迭代对象和start,start表示求和从哪里开始,即把start加入总和中
min(*args, key=None) -- 计算最小值 可传入多个参数或一个可迭代对象,key可以传入一个func,表示按照每个数根据该方法得到的返回值取最小值
max(*args, key=None) -- 计算最大值 可传入多个参数或一个可迭代对象,key可以传入一个func,表示按照每个数根据该方法得到的返回值取最大值
4、其他(12)
callable() -- 判断一个变量是否可调用
dir() -- 返回一个变量的所有方法
help() -- 打印帮助文档(这个方法会直接打印,没有返回值)
__import__() -- 引用文件,import关键字实际调用的就值这个方法,使用方法:
import time
print(time.time()) # 一般使用方法 t = __import__("time")
print(t.time()) # 可以重定义模块名
open() -- 打开一个文件
id() -- 返回变量的内存地址
hash() -- 得到可哈希(即不可变)的对象的哈希值,对于相同可hash对象的hash值在一次程序的执行过程中总是不变的
input() -- 返回控制台输入的值
print() -- 打印,除了通常的使用方法外,print可以传参,打印效果会有不同,如:
print('你好,哈哈', end='')
print('你好,哈哈', end='')
print('你好,哈哈', end='')
结果:
可以看到打印结果并没有换行
print还有其他用法,如:
# 指定输出多个值之间的分隔符
print(1, 2, 3, 4, 5, sep='|') # 打印到文件
f = open('file', 'w')
print('文件文件', file=f)
f.close()
exec() -- 执行一段字符串类型的代码,无返回值,exec执行流程控制语句也需要保持缩进
eval() -- 执行一段字符串类型的代码,有返回值,eval是不能执行带流程控制的语句的
注意:exec和eval要慎用,会给用户执行非法代码的机会,而且执行的代码是嵌入上下文的,可以调用当前空间里的变量。
compile() -- 将字符串类型的代码编译。编译后的对象可以通过exec语句执行或eval进行求值。参数说明:
source:字符串或AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。
filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。
model:制定编译代码的种类,可以指定为“exec”、“eval”、“single”。当source中包含流程语句时,model应指定为“exec”;当source中只包含一个简单的求值表达式,model应指定为“eval”;当“source”中包含了交互式命令语句,model应指定为“single”。
指定为“single”示例:
code = "input('请输入:')"
code_comp = compile(code, '', 'single')
exec(code_comp) code1 = "1 + 2"
code_comp1 = compile(code1, '', 'single')
exec(code_comp1)
结果:
single模式即交互模式,类似于python的命令行交互模式。
二、小程序
1、打印进度条
import time
for i in range(0, 101, 2):
print("\r进度:{}{}%".format("*"*(i//2), i), end="")
time.sleep(0.05)
这个程序利用了\r回到行首,print设置参数end=""实现
最新文章
- zookeeper原理解析-数据存储
- jQuery 事件
- 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Section 5 The accuracy of simple random samples
- Interleaving Positive and Negative Numbers
- iOS开发网络篇—网络编程基础(二)
- Understanding and Using Servlet Filters
- binlog/relay_log的清理
- HDU4632:Palindrome subsequence(区间DP)
- B树,B-树,B+树,B*树
- CentOS添加字体
- 使用gem安装jekyll错误记录
- Linux内核分配内存的方式
- hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】
- bootStrap的使用
- 第28月第4天 __bridge_transfer
- Animate.css(一款有意思的CSS3动画库)
- octave基本指令4
- RabbitMQ 消息应答机制(message acknowledgments)
- 路由策略和策略路由 &; route-map
- django学习笔记(1)
热门文章
- spring Aop概念
- 编写高质量代码改善C#程序的157个建议——建议147:重构多个相关属性为一个类
- 编写高质量代码改善C#程序的157个建议——建议124:考虑在命名空间中使用复数
- 自己(转)JAVA中toString方法的作用
- poj—1753 (DFS+枚举)
- JDK8新特性:使用stream、Comparator和Method Reference实现集合的优雅排序
- struts2的validate输入验证
- Android-显示意图和隐式意图
- vector容器(一)
- RobotFramework做接口自动化(内部接口需要登录token)