Python学习8 函数 匿名函数 内置函数
转换相关的方法-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 函数 匿名函数 内置函数相关推荐
- python学习之最常用的内置函数
python学习之最常用的内置函数 Python 内置函数总共有70余个(通常把内置类也统称为内置函数),覆盖面广,功能强大.不过,对于初学者在初级阶段,掌握下面几个函数是当务之急. (1) 控制台输 ...
- python常用内置函数总结-Python学习教程之常用的内置函数大全
前言 内置函数,一般都是因为使用比较频繁或是元操作,所以通过内置函数的形式提供出来.在Python中,python给我们提供了很多已经定义好的函数,这里列出常用的内置函数,分享出来供大家参考学习,下面 ...
- Python生成器的send方法、递推函数、匿名函数及常用内置函数
1.生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 1.1 什么是send方法? send方法相当于高级的next方 ...
- Python培训教程:Python有哪些比较重要的内置函数?
学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...
- python内置函数open_Python的内置函数open()的注意事项
用法 : open("file_address","open_mode") 例子 : f = open("D:\PycharmProjects\log ...
- python常用内置函数乘法_每个 Python 高手都应该知道的内置函数
每个 Python 高手都应该知道的内置函数 Python 将纳入高中教材,大学 VB 将被 Python 取代, 现在你还对 Python 一无所知吗?去年就被国外一机构预测, 2017 年 pyt ...
- Python中10个常用的内置函数
大家好,我是小张 在 3.8 版本中,Python 解释器共有近 69 个内置函数可供使用,有了它们能极大地提高编码效率, 数量虽然不少,但在日常搬砖中只用到其中一部分,根据使用频率和用法,列出来几个 ...
- python中randrange函数_python 函数中的内置函数及用法详解
总结一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(ab ...
- 编写函数,模拟内置函数 sorted()。
编写函数,模拟内置函数 sorted(). 用python来简单的模拟sorted可以用库函数来进行,也较为简单,我选了min()和sort()来进行模拟 利用min()函数 def sorteds( ...
- MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)
MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...
最新文章
- 【前端】layui日期控件点击一闪而过解决方法
- CentOS6.9下手动编译并安装Python3.7.0
- 周志华机器学习课后习题解析【第二章】
- 暴雪应该从《争霸艾泽拉斯》中吸取什么教训?
- 微服务实践沙龙-上海站
- 女生转行IT与男生有什么不一样?
- spring框架三层架构_Spring框架架构
- java迭代器 异常_java迭代器失效 | 学步园
- idea中连接mysql插入成功数据 在navicat中刷新表格没有数据_MySQL入门简记
- spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
- Feed back TFS 2017 RC upgrade status to product team in product group 2017.03.01
- java actionsupport_【JAVA学习】struts2 中 Actionsupport 的作用
- Python编译与反编译.exe
- windows11安装MAVEN
- LA4487 Exclusive-OR
- MySQL的sql大于号(小于号)的使用
- 不服?来战!2017 CCF BDCI百万元巨奖各有所属
- C# Access数据库操作
- 微信小程序 getPhoneNumber获取用户手机号
- 阿里云ACP云计算错题集1-40
热门文章
- gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
- docker java镜像_Springboot整合MongoDB的Docker开发,其它应用也类似
- 制作斜坡单元的两种方法
- GetType和typeof的区别
- 软件架构设计的6大原则
- 一步步编写操作系统 50 加载内核3
- android 微信两个服务的,微信上线两个新功能
- php date 报错,编译安装PHP报错:ext/date/php_date.lo is not a valid libtool object
- lfsr算法c语言,求助:如何用C语言实现LFSR加密
- 【HDU - 3328】Flipper (栈模拟)