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

"""
一共是 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. UVA 127 链表和栈的使用

    刘汝佳的题目感觉都是比较难以处理的,就像这道题目,一看数据简直觉得头大...加上这个英文我也看的想死 最后看别人博客的题意讲解才知道原来是要移牌. 然后如果熟练的使用stack和手写链表的话,这个题目 ...

  2. 阿里云-容器服务之集群服务 k8s(Jenkins+gitlab+k8s的devops)- 03

    ------------恢复内容开始------------ 1.安装gitlab,选择阿里云提供的编排模板,点击确定:配置域名访问,与jenkins设置一致:这里不再重复赘述: 2.如图,需要给je ...

  3. 实验吧web-易-what a fuck!这是什么鬼东西?

    打开链接是一大串符号,是js编码的一种,全部复制下来,粘贴在控制台中回车就拿到flag了.

  4. 图数据库ubentu环境neo4j安装

    1.下载进入官网下载https://neo4j.com/download-center/#releases 2.设置依赖仓库 wget -O - https://debian.neo4j.org/ne ...

  5. 使用java(jdbc)向mysql中添加数据时出现“unknown column……”错误

    错误情况如题,出现这个错误的原因是这样的: 在数据库中,插入一个字符串数据的时候是需要用单引号引起来的. 而下面的代码,注意看: sta.executeUpdate("INSERT INTO ...

  6. 踩一踩win7安装neo4j的坑

    本文使用zip解压方式安装,下载社区版zip 解压到喜欢的文件夹,然后配置环境变量NEO4J_HOME=D:\neo4j-community-3.5.5(自己的解压目录) 配置Path=%NEO4J_ ...

  7. 客户主题分析(tableau)—客户分群

    主要分析方面:客户合理分群 客户分群实现:使用聚类构建指标,需理解聚类的分析逻辑,需使用软件:tableau 聚类方法:选择3指标分别为购买总金额,客户购买次数.类平均购买价格(四类的平均购买价格,四 ...

  8. Idea 我的快捷键

    new对象的快捷键:ctrl+alt+空格 ctrl+alt+空格提示,再加上ctrl+shift+enter 格式化这一行 快捷键自动生成变量名和类型ctrl + alt + v Ctrl+Alt+ ...

  9. Android :TextView使用SpannableString设置复合文本

    TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.Bac ...

  10. 多分类度量gini index

    第一份工作时, 基于 gini index 写了一份决策树代码叫ctree, 用于广告推荐. 今天想起来, 好像应该有开源的其他方法了. 参考 https://www.cnblogs.com/mlhy ...