Python函数Day5
一、内置函数
globals() 将全部的全局变量以字典的形式返回
locals() 将当前作用域的所有变量以字典的形式返回
a = 1
b = 2
def func(x):
c = 3
d = 4
print(locals()) # 当前作用域的所有变量以字典的形式返回
print(globals()) # 全局所有的变量以字典的形式返回
func(1) # 结果
{'d': 4, 'c': 3, 'x': 1}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000221481C87B8>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/骑士计划1期/Day13/review.py', '__cached__': None, 'a': 1, 'b': 2, 'func': <function func at 0x00000221465A2E18>}
eval() 把字符串的引号去除,执行字符串的内容并返回
s = '1 * 2 * 3'
print(eval(s),type(eval(s))) # 结果
6 <class 'int'>
exec() 执行字符串里的代码,但不返回结果
s = '''
for i in range(3):
print(i)
'''
exec(s) # 结果
0
1
2
总结:字符串里的结果,需要得到结果就用eval
字符串里是没结果或者是代码流,就用exec
但是两者都不建议使用,除非字符串不做任何的修改
compile() 函数将一个字符串编译为字节代码,通过exec或者eval来执行
语法:compile(source, filename, mode[, flags[, dont_inherit]])
source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
flags和dont_inherit是用来控制编译源码时的标志
s = "for i in range(3):print(i)"
com = compile(s,'','exec') # 编译为直接代码对象
exec(com) # 结果
0
1
2
input() 函数接受一个标准输入数据,返回为 string 类型
用户输入的内容都是str类型,一般后面要添加strip() 去除两端空格
>>>a = input("input:")
input:>? 123
>>>type(a)
<class 'str'>
print() 打印内容
语法:print(self, *args, sep=' ', end='\n', file=None)
sep='' 用来分隔,分割符,默认是空格
end='\n' 打印结尾内容,默认是换行符
file=None 写入的文件对象,默认是None
print('h','e','l','l','o','',sep='-',end='')
print(123) # 结果
h-e-l-l-o-123
注意:print() 能接收可变参数*args,不能接收关键字参数**kwargs
print() 能打印*args,不能打印**kwargs
print(*[1,2,3]) # 加*将列表打散
print([1,2,3]) # 结果
1 2 3
[1, 2, 3]
id() # 获取对象的内存地址
字符串的ID是等长度的
print(id(1))
print(id(''))
print(id('abc')) # 结果
1954570464
1585777572976
1585778570328
hash() # 获取对象的哈希值,
只针对不可变数据类型,可变数据类型是不可哈希的,哈希可变数据类型会报错。
print(hash('abc'))
print(hash('qwertyuioplkjhgfdsazxcvbbnm')) # 结果
5828273204391538033
7013223571618619052
整型的哈希值跟值一致
print(hash(1))
print(hash(10000)) # 结果
1
10000
open() 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写
语法:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
__import__ 函数用于动态加载类和函数
help() 函数用于查看函数或模块用途的详细说明
help(list) # 结果
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
| __contains__(self, key, /)
| Return key in self.
|
| __delitem__(self, key, /)
| Delete self[key]. ......
callable 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
print(callable('abc'))
print(callable(str)) # 结果
False
True
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。
print(dir()) # 结果
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
print(dir(str)) # 结果
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
range() 函数可创建一个整数列表,一般用在for循环总
for i in range(3):
print(i) # 结果
0
1
2
python2版本:range(3) -----> [0,1,2] 列表
xrange(3)-----> 迭代器
python3版本:range(3) -----> range(0,3) 可迭代对象
next() 调用__next__()方法,返回迭代器的下一个项目
语法:next(iterator, default=None)
iter() 调用__iter__()方法,函数用来生成迭代器
语法:iter(source, sentinel=None)
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
可以用于and or 的条件判断
b = bool(1 > 3 and 5 < 6 or 7 > 2 and 9 > 0 or 1 > 6)
print(b) # 结果
True
空参数返回False
print(bool()) # 结果
False
int()
用途:① 将字符串变成数字
a = int('')
print(a,type(a)) # 结果
123456 <class 'int'>
② 取整
print(int(5.938576)) # 结果
5
③ base关键字,base代表是进制,前面的内容必须是该进制的数字;将对应进制转换为十进制数
a = int('',base=2)
print(a) # 结果
12
float() 函数用于将整数和字符串转换成浮点数。
print(float(1))
print(float('')) # 结果
1.0
999.0
complex 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。(一般用于科学计算领域)
print(complex(1,2))
print(complex('')) # 结果
(1+2j)
(1+0j)
bin() 将十进制数转化为二进制,0b代表二进制
oct() 将十进制数转化为八进制,0o代表二进制
hex() 将十进制数转化为十六进制,0x代表二进制
print(bin(999))
print(oct(999))
print(hex(999)) # 结果
0b1111100111
0o1747
0x3e7
abs() 返回数字的绝对值
一般与排序、比较大小相结合
>>>abs(-99)
99
divmod() 计算除数与被除数的结果,返回商和余数的元组
一般用于项目的分页功能
>>>divmod(100,9)
(11, 1)
round() 保留浮点数的小数位数(四舍五入)
无第二参数默认不保留小数位
>>>round(3.14159265358979323846,6)
3.141593
>>>round(3.14159265358979323846)
3
pow() 返回 xy(x的y次方) 的值,对第三个参数取余
>>>pow(2,3)
8
>>>pow(2,3,3) # 2的3次幂的结果取3取余
2
sum() 对可迭代对象求和
语法:sum(iterable,startnum初始值) 在第二个参数设置初始值
>>>sum([1,2,3])
6
>>>sum([1,2,3],100) # 第二个参数可设置初始值,默认0
106
min() 求可迭代对象的最小值
max() 求可迭代对象的最大值
语法:min(*args, key=None)
key关键字是可调用的对象,例如函数名,将每个元素当参数调用到函数里,默认是按每个元素的第一个值排大小
>>>min([-1,-2,1],key=abs)
-1
dic = {'a':1,'b':2,'c':3}
def func(x): # 定义函数,字典的键值对元组传入
return x[1] # 获取元组的索引返回比较 a = (min(dic.items(),key=func)) # 将字典的键值对形成元组
print(a) # 结果
('a', 1)
步骤:①它会将iterable的每一个元素当作函数的参数传进去
② 它会按照函数返回值来比较大小
③ 函数会返回的是遍历的元素
Python函数Day5的更多相关文章
- python笔记 - day5
python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数作用域的查找顺序
函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...
- Python函数讲解
Python函数
- Python函数信息
Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python函数解析
对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
随机推荐
- 图片缩放——利用layui的滑块
@layui官网文档.@参考博客 参考博客中能实现,但是效果差强人意,在前辈的基础上进行了改造,并支持了动态多图列表 <%@ page language="java" con ...
- 无法嵌入互操作类型"NationalInstruments.TestStand.Interop.UI.ExecutionViewOptions"。请改用适用的接口
参考一下文章说明, 修改Interop.UI动态库的引入属性为 False,不再报错: VS2010,VS2012,VS2013中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法 在VS2 ...
- c# Invoke的新用法
在C# 3.0及以后的版本中有了Lamda表达式,像上面这种匿名委托有了更简洁的写法..NET Framework 3.5及以后版本更能用Action封装方法.例如以下写法可以看上去非常简洁: voi ...
- 利用cglib给javabean动态添加属性,不用在建VO
有的时候 比如你用的是hibernate或者Spring jdbc 来做dao层进行数据库相关的操作的时候,若果是单表的操作的时候 还比较简单 hibernate可直接返回(get,load)你的需要 ...
- JS正则验证6位数字组成,验证纯中文组成
常见的简单规则还有6位数字组成的密码,如果想要6位数字以上,第二个参数可以不设置.验证是否是纯中文,可以用Unicode字符区间,在网上找到了验证中文的表达式,然后查了查看Unicode编码的表格,这 ...
- html的输出&,空格,大小于号
最近定做安装程序,因为这次定做名字里有&符号,用微软的txt文本打开配置文件,在配置文件里修改了名称,名称在文本里显示正常,但是定做出来后,发现&符号变成了_下划线,在本来的& ...
- springboot的mapper.xml在src下问题
在pom.xml里面的build标签加上resources说明 <resources> <!-- mapper.xml文件在java目录下 --> <resource&g ...
- Jackson使用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/m0_37076574/article/d ...
- Word 固定行间距公式图片显示不全、Word Eculid 字体导致行间距过大、Word 行间距过大
1. 前言 1.有些文章行间距要求是固定值,比如,固定值15磅,但是这样会导致有些公式.图片显示不全.例如下图: 2.Euclid这个字体很容易导致行间距超大. 2. 解决方案 1.把固定值15磅改为 ...
- go 食用指南
Golang高效食用秘籍 一.关于构建 1.1 go环境变量 $ go env // 查看go 的环境变量 其中 GOROOT 是golang 的安装路径 GOPATH 是go命令依赖的一个环境变量 ...