# 作用域相关(2)
locals() # 返回本地作用域中的所有名字
globals() # 返回全局作用域中的所有名字
# 迭代器/生成器相关(3)
range()
print('__next__' in dir(range(10))) # False --> 可迭代的,但不是迭代器
print('__next__' in dir(iter(range(10)))) # True --> iter()转换之后,就成为迭代器了
# next(迭代器) # 迭代器.__next__() == next(迭代器)
# iter(可迭代的) # 迭代器 == iter(可迭代的);迭代器 == 可迭代的.__iter__()
# 其他(12)
# 1. 字符串类型代码的执行(3)
eval()
exec()
# 两者相同与不同
# 相同点:
eval('print(123)') # 123
exec('print(123)') # 123
# 不同点:
print(eval('1+2+3+4')) # 10
print(exec('1+2+3+4')) # None ,没有返回值
# eval 和 exec都可以执行字符串类型的代码,但eval有返回值,exec没有返回值
# eval 只能用在你明确知道你要执行的代码是什么
# eval --> 有结果的简单计算
# exec --> 简单流程控制:
code = '''for i in range(10):
print(i * '*')
'''
exec(code)
compile(): 将字符串类型的代码编译,代码对象能够通过exec语句来执行或者eval()进行求值
流程语句使用exec
code1 = 'for i in range(10):print(i)'
compile1 = compile(code1,'','exec')
exec(compile1)
简单求值表达式用eval
code2 = '1 + 2 + 3 + 4'
compile2 = compile(code2,'','eval')
print(eval(compile2)) # 10
交互语句用single
code3 = 'name = input("please input your name:")'
compile3 = compile(code3,'','single')
name #执行前name变量不存在
exec(compile3) #执行时显示交互命令,提示输入
print(name) # 提示有错误,但没有错(pycharm不知道什么逻辑)
name #执行后name变量有值
"'pythoner'"
# 2.输入输出(2)
input()
print()
print('我们的祖国是花园\n',end='') # print() 里 end默认等于 \n (默认回车)
print('我们的祖国是花园\n',end='')
print('我们的祖国是花园',end='')
print('我们的祖国是花园',end='')
print('我们的祖国是花园\n')
print('我们的祖国是花园\n')
print(1,2,3,4,5,sep='|') # 1|2|3|4|5 ,指定输出多个值之间的分隔符
# 3. 内存相关(2)
id() # 内存地址
hash() #
# 对于相同的可以哈希的数据的哈希值再一次程序执行过程中总是不变的
# 字典的寻址方式
print(hash(1223)) # 1223
print(hash('qwewqrfsd')) # 字符串可哈希,不报错
print(hash(('1','ad'))) # 元组可哈希,不报错
print(hash([1,2,3])) # 报错,不可哈希
# 4. 文件操作相关(1)
f = open('a.txt')
print(f.writable()) # 检测当前文件可不可以写
print(f.readable()) # 检测当前文件可不可以读
# 5. 模块相关(1)
import 模块 # 导入模块
__import__()
t = __import__('time')
print(t.time())
# 6. 帮助(1)
help()
help(str) # 和dir()差不多,但help()是查看方法名以及它的用法
# 7. 调用相关(1)
callable() # 返回True或False,一般用来检测是不是一个函数
print(callable(print)) # 查看这个函数名可不可以调用
def func():pass
print(callable(func))
# 8. 查看内置属性(1)
dir() # 查看一个变量拥有的方法
print(dir([]))
# 某个方法属于某个数据类型的变量,就用 . 调用
# 若某个方法不依赖与任何数据类型,就直接调用 --> 内置函数 和 自定义函数
基础数据类型相关(38)
和数字相关(14)
1. 数据类型(4)
bool
int
float --> 浮点数
小数:有限循环小数;无限循环小数;无限不循环小数。其中前两个属于浮点数。
complex --> 复数
python里复数用 j 表示
5 + 12j
复数之间不能比较大小
# 基本不用
2. 进制转换相关(3)
bin() --> 二进制
print(bin(10)) # 0b1010 0b代表二进制
oct() --> 八进制
print(oct(10)) # 0o12 0o代表八进制
hex() --> 十六进制
print(hex(10)) # 0xa 0x代表十六进制
3. 数学运算(7)
abs():求绝对值
divmod():接收两个参数
# div:除法
# mod:取余
# Return the tuple (x//y, x%y).
print(divmod(7,2)) # (3,1)
# 应用:做分页
round():精确值
print(round(3.1415926,2)) # 3.14 精确到小数点后两位
pow():求幂运算
pow(2,3) # 8
pow(3,3) # 27
pow(2,3,3) # 若三个数,则先进行2的3次方,在对3取余
pow(3,3,4) # 若三个数,则先进行3的3次方,在对4取余
sum(iterable,start) # 里面必须是可迭代的,且必须是数 start是从几开始加
min()
print(min([1,2,3,4])) # 1
print(min(1,2,3,4)) # 1
print(min(1,2,3,-4)) # -4
print(min(1,2,3,-4,key=abs))# 1 # 全部取绝对值之后再比较
max()
print(max([1,2,3,4])) # 4
print(max(1,2,3,4)) # 4
print(max(1,2,3,-4)) # 3
print(max(1,2,3,-4,key=abs))# -4 # 全部取绝对值之后再比较,注意,输出的是取绝对值之前的数