##################     内置函数        ####################### 

"""
一共是 68个内置函数: 反射相关的内置函数4个:
setattr() delattr() hasattr() getattr() 和作用域相关的两个:
globals() locals() 数据结构相关的:
set() list() dict() int() float() tuple()
bool() complex() 和字符串相关的:
str() format() bytes() bytearray() memoryview() repr() chr() ascii() ord() 和数学运算相关的
max() pow() sum() abs() min() round() divmod() 和进制转换相关的:
oct() hex() bin() 和字符串执行相关的:
eval() exec() compile() 和迭代器相关的:
next() iter() 面向对象相关的:
object() super() classmethod() staticmethod() issubclass() property() 和处理序列相关的函数:
1,enumerate() 枚举
2,isinstance() 判断是否是某一种数据类型
3,filter() 对序列进行过滤,返回一个列表,
4,map() 对序列进行映射,返回一个可迭代对象,
5,zip() 这是把两个序列,对应的元素合并成为一个元组,然后以列表的格式返回,
6,any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
7,all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
8,len() 方法返回对象(字符、列表、元组等)长度或项目个数。
9,sorted() 其他常用的函数
help() dir() open() len() type() input() print() id() hash() callable() range()
__import__() slice() frozenset() vars() reversed() """

##################     内置函数:callable        #######################

# callable() 函数用于检查一个对象是否是可调用的。
# 如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。
# 对于函数、方法、lambda 函式、 类以及实现了 __call__ 方法的类实例, 它都返回 True。
# 语法
# callable(object) callable(0) # false ##############
def add(a, b):
return a + b
callable(add) # true ##################
class A:
def method(self):
return 0
callable(A) # true ################
a = A()
callable(a) # 没有实现 __call__, 返回 False ##############
class B:
def __call__(self):
return 0
callable(B) # true b = B()
callable(b) # 实现 __call__, 返回 True
################

##################     内置函数:enumerate 枚举        #######################

"""
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法:enumerate(sequence, [start=0]) sequence -- 一个序列、迭代器或其他支持迭代对象。start -- 下标起始位置。
"""
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print(list(enumerate(seasons, start=1))) # 下标从 1 开始
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] # 使用for循环:
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i, element)
# 0 one
# 1 two
# 2 three

##################     内置函数:isinstance()        #######################

"""
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
如果要判断两个类型是否相同推荐使用 isinstance()。
语法:isinstance(object, classinfo) object -- 实例对象。 classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。 """ a = 2
print(isinstance (a,int))
# True
print(isinstance (a,str))
# False
print(isinstance (a,(str,int,list))) # 是元组中的一个返回 True
# True # isinstance() 与 type() 区别:
# type() 不会认为子类是一种父类类型,不考虑继承关系。
# isinstance() 会认为子类是一种父类类型,考虑继承关系。
class A:
pass class B(A):
pass print(isinstance(A(), A)) # True
print(type(A()) == A) # True
print(isinstance(B(), A)) # True
print(type(B()) == A) # False

##################     内置函数:filter()        #######################

"""
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,
然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法:filter(function, iterable)
"""

例题:

# filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_odd(n):
return n % 2 == 1 # 为什么这么写,就是因为除以2 有余数,要么是余数0,就是偶数,要么是余数1,就是奇数,只有这两种情况,
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist) # 过滤出1~100中平方根是整数的数:
import math
def is_sqr(x): # 这是开根号,
return math.sqrt(x) % 1 == 0 # 所有的整数的余数都是0,所以使用这个方法 tmplist = filter(is_sqr, range(1, 101))
newlist = list(tmplist)
print(newlist) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 ##################     内置函数:map()       #######################\\

"""
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的迭代器,
语法:map(function, iterable, ...) function -- 函数 iterable -- 一个或多个序列
Python 2.x 返回列表。
Python 3.x 返回迭代器。
所以这个map和for循环一起使用,而且还可以和匿名函数一起使用, """

例题:

# 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
list1 =[1,2,3,4,5]
# 第一种方式:
def func(x):
return x**2
ret = map(func,list1)
print([i for i in ret if i>10]) # 第二种方式
ret = map(lambda x : x**2,list1)
print([i for i in ret if i>10]) # 提供了两个列表,对相同位置的列表数据进行相加
ret =map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print([i for i in ret]) #[3, 7, 11, 15, 19]

 ##################     内置函数:zip()       #######################

"""
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
语法:zip([iterable, ...]) iterabl -- 一个或多个迭代器; """
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 返回一个对象
print(zipped) # <zip object at 0x103abc288>
print(list(zipped)) # list() 转换为列表 [(1, 4), (2, 5), (3, 6)] a1, a2 = zip(*zip(a,b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
print(list(a1)) # [1, 2, 3]
print(list(a2)) # [4, 5, 6]

 ##################     匿名函数        #######################

"""
匿名函数:
func = lambda x : x**x
函数名 = lambda 参数 :返回值
func 函数名,
lambda 定义匿名函数的关键值和def类似
x 参数 参数可以有多个,用逗号隔开
x**x 返回值 注意:
匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
返回值和正常的函数一样可以是任意数据类型
我们可以看出,匿名函数并不是真的不能有名字。
匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了~~~ """
# 这段代码
def calc(n):
return n ** n
print(calc(10)) # 换成匿名函数
calc = lambda n: n ** n
print(calc(10)) # 用匿名函数做两个数字相乘
func = lambda x,y :x*y
func(2,3) # 这个匿名函数经常可以和filter和map函数进行结合使用队序列进行操作

 ##################     内置函数:反射相关的四个内置函数       #######################

"""
反射: 什么是反射
反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。它有四个重要的方法: getattr 获取指定字符串名称的对象属性
setattr 为对象设置一个对象
hasattr 判断对象是否有对应的对象(字符串)
delattr 删除指定属性 attr是属性英文的前几个字母,属性指的是类中类变量、实例变量和方法。但是要注意不能是私有的,如果你的变量是以“_”开头,那将无法获取。
反射常常用在动态加载模块的场景中。 """
"""
getattr() 函数:
getattr() 函数用于返回一个对象属性值。
getattr(object, name[, default]) object -- 对象。name -- 字符串,对象属性。
default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError hasattr() 函数用于判断对象是否包含对应的属性。
hasattr(object, name) object -- 对象。 name -- 字符串,属性名。
如果对象有该属性返回 True,否则返回 False。 setattr(object, name, value)
setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
object -- 对象。name -- 字符串,对象属性。value -- 属性值。 delattr 函数用于删除属性。
语法:delattr(object, name) -- 对象 name -- 必须是对象的属性。
delattr(x, 'foobar') 相等于 del x.foobar。object
""" class A(object):
bar = 1 def show(self):
print("这是一个普通方法") @classmethod
def dance(cls):
print("这是一个类方法") a = A()
print(getattr(A, 'bar')) # 获取属性 bar 值 1
print(getattr(a, 'bar')) # 获取属性 bar 值 1
ret = getattr(A,"dance")
print(ret) # <bound method A.dance of <class '__main__.A'>>,这是一个地址,
ret() # 加上括号就运行了,
"""
这就是反射:
1,通过一个字符串获取到了属性的值,
2,通过字符串拿到了函数地址,然后加括号就调用了,
""" # getattr(a, 'bar2') # 属性 bar2 不存在,触发异常,报错
# getattr(a, 'bar2', 3) # 属性 bar2 不存在,但设置了默认值
# 所以需要和hasattr进行配合使用,先判断是否有,然后再使用getattr
if hasattr(a, 'bar2'):
getattr(a, 'bar2')

#########################################

1、一行代码实现1--100之和
利用sum()函数求和
sum(range(1,101))
#

#########################################

2、如何在一个函数内部修改全局变量
利用global在函数声明 修改全局变量
a = 5
def func():
global a
a = 10
func()
print(a)

#########################################

#########################################

python语法基础-函数-内置函数和匿名函数-长期维护的更多相关文章

  1. python开发基础04-函数、递归、匿名函数、高阶函数、装饰器

    匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函 ...

  2. Python开发基础-Day11内置函数补充、匿名函数、递归函数

    内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: divmod(a, b) #a.b为数字,a为除数,b ...

  3. 学习Pytbon第十天 函数2 内置方法和匿名函数

    print( all([1,-5,3]) )#如果可迭代对象里所有元素都为真则返回真.0不为真print( any([1,2]) )#如果数据里面任意一个数据为真返回则为真a= ascii([1,2, ...

  4. python面向对象的基础语法(dir内置函数、self参数、初始化方法、内置方法和属性)

    面相对象基础语法 目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的 ...

  5. 十六. Python基础(16)--内置函数-2

    十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...

  6. 十五. Python基础(15)--内置函数-1

    十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...

  7. Python基础编程 内置函数

    内置函数 内置函数(一定记住并且精通) print()屏幕输出 int():pass str():pass bool():pass set(): pass list() 将一个可迭代对象转换成列表 t ...

  8. python内置常用高阶函数(列出了5个常用的)

    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...

  9. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

随机推荐

  1. import torch 报错

    1.进入官网   https://pytorch.org/ 2.复制command到anaconda环境,即可

  2. 题解 P6098 【[USACO19FEB]Cow Land G】

    震惊,蒟蒻学树剖第二天就打题解 所以说,理解之后树剖这种东西其实难度真心不大.至少这种模板题都可以秒切的 这里推荐一个博客: 树剖详解 蒟蒻就是在这个博客上学到的 如果想看我自己写的总结,请点 我的博 ...

  3. java链接redis服务器

    1.首先你需要下载驱动包jedis.jar确保下载最新驱动包. 2.public class RedisUtil { //服务器IP地址 private static String ADDR = &q ...

  4. Cookie的作用范围、设置、创建、获取的方法

    cookie的作用范围 同一浏览器,同一路径 默认情况下, 上级目录设置的cookie,下级目录可以获取到, 而下级目录设置的cookie,上级目录不能获取. 即:在一个页面设置cookie,那么这个 ...

  5. Python说文解字_杂谈08

    1. Python变量到底是什么? Python和Java中的变量本质不一样,python的变量实质是一个指针 int str,便利贴 a = 1 # 1. a贴在1上面 # 2. 它的过程是先生成对 ...

  6. 吴裕雄--天生自然TensorFlow2教程:维度变换

    图片视图 [b, 28, 28] # 保存b张图片,28行,28列(保存数据一般行优先),图片的数据没有被破坏 [b, 28*28] # 保存b张图片,不考虑图片的行和列,只保存图片的数据,不关注图片 ...

  7. 利用tensorflow编写自己的机器学习模型主要步骤

    利用tensorlow编写自己的机器学习模型主要分为两个阶段: 第一阶段:建立模型或者建立网络结构 1.定义输入和输出所需要的占位符 2.定义权重 3.定义具体的模型接口 4.定义损失函数 5.定义优 ...

  8. springboot配置多个yml文件

    新接触了springboot项目,yml一大堆,启动不知道用的哪个,各种百度后: <profiles> <profile> <id>dev</id> & ...

  9. Excel文件比较工具的使用

    本工具用于比较两个文件夹中对应Excel工作簿中单元格数据是否不同. 如果有内容不同的单元格,就在结果报告中表示出来. 点击如下链接,下载. Excel文件比较工具.rar 解压缩后,看到1个exe文 ...

  10. Python之小作业

    文档如下: # name, age, score tom, 12, 86 Lee, 15, 99 Lucy, 11, 58 Joseph, 19, 56 第一栏为姓名(name),第二栏为年纪(age ...