转换相关的方法-eval

转换相关的方法-json




函数基本语法大纲

函数概念

示例:

题目:

函数的参数


def f(x,y=1,*z,**abc):print(x,y,z,abc,sep="\n")f(1,4,5,3,a=1,b=2,c=3)
#1
# 4
# (5, 3)
# {'a': 1, 'b': 2, 'c': 3}

易错题:
1)

2)
a=1:默认参数,位置参数
*args:可变位置参数
**args:可变关键字参数

关键字参数(**args)在位置参数(*args,a=1,a)的后面
C是对的,C中两个参数都是位置参数,前后都可以

def f(y=1,*z):pass
def f(*z,y=1):pass

函数的返回值

如果一个函数没有返回值,它的返回就是 None。
没有写return,意味着没有返回值

没有返回类型,并且可以返回多个多个值:
示例为返回a/b的商和余数

函数调用函数

递归函数

练习1-求 [n, m) 之间所有整数之和

#1
#定义函数求 [n, m) 之间所有整数之和。
a= int(input("请输入第一个数"))
b=int(input("请输入第一个数"))
def add(n, m):count = 0for i in range(n,m - 1):count += ireturn count
print(add(a,b))

练习2-求 n 的阶乘

#2
#定义函数求 n 的阶乘。n=int(input("请输入一个数"))
def factor(n):count=1for i in range(1,n+1,1):count*=ireturn  count
print(factor(n))

练习3-求阶乘的和

#3
#计算阶乘的和。如 m = 6  1!+2!+3!+4!+5!+6!。
n=int(input("请输入一个数"))
def factor(n):count=1for i in range(1,n+1,1):count*=ireturn  countdef sum1(n):sum1 = 0for i in range(1,n+1,1):sum1 += factor(i)return sum1print(sum1(n))

局部变量和全局变量


代码示例:

查看局部和全局变量:

在python中只有函数可以分割作用域:
只有函数里面定义的才是局部变量,其他都是全局变量

函数注释

函数注意事项

匿名函数





示例:

list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]# 那个列表中的a最大
max_value = max(list1, key=lambda x: x["a"])
print(max_value)

内置函数

内置函数 和 内置类 用到了 匿名函数

sorted(Iterable, key= None, reverse = False)
Iterable:排序规则(排序函数),在sorted内部会将可迭代对象中的每个元素传递给这个函数的参数.根据函数运算的结果进行排序
reverse:是否是倒序, True:倒序 False:正序 key:就可以使用匿名函数

示例:
现在有一个字典{‘小红’:20,‘小明’:18,‘小鱼’:19,‘小雪’:22,‘小东’:17},现在按照年龄排序

dict1 = {'小红':20,'小明':18,'小鱼':19,'小雪':22,'小东':17}
order_dict = sorted(dict1.items(),key=lambda s:s[1])
print(dict(order_dict))
# order_dict 是一个列表[('小东', 17), ('小明', 18), ('小鱼', 19), ('小红', 20), ('小雪', 22)],所以需要转成字典

上面的案例中 key 就使用了匿名函数进行排序条件的制定,即 lambda 的返回值是就是排序条件,默认是升序
示例2;

# 按照数量排序
goods = [('防脱发洗发水', 60, 3), ('格子衬衫', 156, 1), ('牛仔裤', 99, 7), ('运动鞋', 299, 2)]
goods = sorted(goods, key=lambda g: g[2], reverse=True)  # 设置成降序
print(goods)



语法: filter(function. Iterable)
function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function.然后根据function返回的Ture或者False来判断你是否保留此项数据
iterable:可迭代对象


补充:

isinstance(object, classinfo) 判断实例是否是这个类型
object是变量
classinfo 是类型(tuple,dict,int,float)




from functools import reducelist1 = [1, 2, 3, 4, 5, 6, 7]
value = reduce(lambda x, y: x + y, list1)
print(value)  # 28 = 1+2+3+4+5+6+7





示例:
max()和min():

dict1 = {'小红':20,'小明':18,'小鱼':19,'小雪':22,'小东':17}
result = max(dict1.items(),key=lambda s:s[1])
print(result)result = min(dict1.items(),key=lambda s:s[1])
print(result)

综合–密码强度

# 可根据自己的思路进行扩展,完善项目的功能:
# 判断密码强弱:①密码长度至少8位;②密码含有数字;③密码含有字母。
passw=input("the password:")num=ord('0')
#是否包含数字的函数
def IsWithNumber():#含有数字for i in range(len(passw)):if '0'<=chr(num+i)<='9':if passw.find(chr(num + i), 0, len(passw))!=-1:return Trueelse:return False
#是否包含字母的函数
alpha=ord('a')
Alpha=ord('A')
def IsWithAlpha():# 含有字母for i in range(len(passw)):if ('a' <= chr(alpha + i) <= 'z') or ('A' <= chr(alpha + i) <= 'Z'):if passw.find(chr(alpha + i), 0, len(passw)) != -1 or passw.find(chr(Alpha + i), 0, len(passw)) != -1 :return Trueelse:return False#判断密码强弱程度的函数
def ISStrength():if (len(passw)>=8) and IsWithNumber() and IsWithAlpha():return 1elif (len(passw)>=8) and(IsWithNumber() or IsWithAlpha()):return 2elif (len(passw)>=8) or IsWithNumber() or IsWithAlpha():return 3elif (len(passw)<8) or IsWithNumber() or IsWithAlpha():return 4#将相关判断方法封装成一个函数,如判断密码强弱程度的方法、判断是否包含数字的方法、判断是否包含字母的方法。
def Set():count = 3while count > 0:IsWithNumber()IsWithAlpha()ISStrength()if ISStrength() == 1 and IsWithNumber() and IsWithNumber():print('the password is quality')qurey = input('Are you sure ?[Y/N] :')if qurey == 'Y':global passwprint('the setting is ok')print('your password:' + passw)return Trueelif qurey == 'N':passw = input('input the new password:')count -= 1else:print('the password is not quality')passw = input('input the new password:')count -= 1print('end setting')
Set()

Python学习8 函数 匿名函数 内置函数相关推荐

  1. python学习之最常用的内置函数

    python学习之最常用的内置函数 Python 内置函数总共有70余个(通常把内置类也统称为内置函数),覆盖面广,功能强大.不过,对于初学者在初级阶段,掌握下面几个函数是当务之急. (1) 控制台输 ...

  2. python常用内置函数总结-Python学习教程之常用的内置函数大全

    前言 内置函数,一般都是因为使用比较频繁或是元操作,所以通过内置函数的形式提供出来.在Python中,python给我们提供了很多已经定义好的函数,这里列出常用的内置函数,分享出来供大家参考学习,下面 ...

  3. Python生成器的send方法、递推函数、匿名函数及常用内置函数

    1.生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 1.1 什么是send方法? send方法相当于高级的next方 ...

  4. Python培训教程:Python有哪些比较重要的内置函数?

    学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...

  5. python内置函数open_Python的内置函数open()的注意事项

    用法 : open("file_address","open_mode") 例子 : f = open("D:\PycharmProjects\log ...

  6. python常用内置函数乘法_每个 Python 高手都应该知道的内置函数

    每个 Python 高手都应该知道的内置函数 Python 将纳入高中教材,大学 VB 将被 Python 取代, 现在你还对 Python 一无所知吗?去年就被国外一机构预测, 2017 年 pyt ...

  7. Python中10个常用的内置函数

    大家好,我是小张 在 3.8 版本中,Python 解释器共有近 69 个内置函数可供使用,有了它们能极大地提高编码效率, 数量虽然不少,但在日常搬砖中只用到其中一部分,根据使用频率和用法,列出来几个 ...

  8. python中randrange函数_python 函数中的内置函数及用法详解

    总结一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(ab ...

  9. 编写函数,模拟内置函数 sorted()。

    编写函数,模拟内置函数 sorted(). 用python来简单的模拟sorted可以用库函数来进行,也较为简单,我选了min()和sort()来进行模拟 利用min()函数 def sorteds( ...

  10. MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)

    MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...

最新文章

  1. 【前端】layui日期控件点击一闪而过解决方法
  2. CentOS6.9下手动编译并安装Python3.7.0
  3. 周志华机器学习课后习题解析【第二章】
  4. 暴雪应该从《争霸艾泽拉斯》中吸取什么教训?
  5. 微服务实践沙龙-上海站
  6. 女生转行IT与男生有什么不一样?
  7. spring框架三层架构_Spring框架架构
  8. java迭代器 异常_java迭代器失效 | 学步园
  9. idea中连接mysql插入成功数据 在navicat中刷新表格没有数据_MySQL入门简记
  10. spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
  11. Feed back TFS 2017 RC upgrade status to product team in product group 2017.03.01
  12. java actionsupport_【JAVA学习】struts2 中 Actionsupport 的作用
  13. Python编译与反编译.exe
  14. windows11安装MAVEN
  15. LA4487 Exclusive-OR
  16. MySQL的sql大于号(小于号)的使用
  17. 不服?来战!2017 CCF BDCI百万元巨奖各有所属
  18. C# Access数据库操作
  19. 微信小程序 getPhoneNumber获取用户手机号
  20. 阿里云ACP云计算错题集1-40

热门文章

  1. gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
  2. docker java镜像_Springboot整合MongoDB的Docker开发,其它应用也类似
  3. 制作斜坡单元的两种方法
  4. GetType和typeof的区别
  5. 软件架构设计的6大原则
  6. 一步步编写操作系统 50 加载内核3
  7. android 微信两个服务的,微信上线两个新功能
  8. php date 报错,编译安装PHP报错:ext/date/php_date.lo is not a valid libtool object
  9. lfsr算法c语言,求助:如何用C语言实现LFSR加密
  10. 【HDU - 3328】Flipper (栈模拟)