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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求两个集合的交集

letcode原题 排序双指针 如果两个数组是有序的&#xff0c;则可以使用双指针的方法得到两个数组的交集。首先对两个数组进行排序&#xff0c;然后使用两个指针遍历两个数组。初始时&#xff0c;两个指针分别指向两个数组的头部。每次比较两个指针指向的两个数组中的数字&#…

Python学习7 集合Set

区别 集合的基本使用 如果是空集合&#xff0c;使用set {}是字典 pop:无序&#xff0c;随机删除一个元素 add添加一个元素 remove移除指定元素 update合并&#xff0c;合并在原集合上 union合并到一个新的集合上 clear清空 总结&#xff1a; 集合运算 补集&#xff1a; f…

cad怎么快速算面积_用cad算面积的快捷键方法步骤详细,大朗CAD培训班

在绘图的过程中经常需要查询和计算图形的面积&#xff0c;网上有不少人问这方面的问题。都市领航教育将计算面积的方法和相关命令整理一下&#xff0c;希望对初学者有帮助。 查询图形的面积 我们利用边界或编辑多段线命令生成了多段线和面域&#xff0c;不需要再使用查询面积命…

给定没有重复数字的序列,将其全排列

leetcode题目 void backtrack(vector<vector<int>>& res, vector<int>& output, int first, int len){if (firstlen){res.push_back(output);}for (int i first; i < len; i) {std::swap(output[first],output[i]);backtrack(res,output,first1,…

Java web后端4 会话 Cookie Session

会话 会话&#xff1a;指的是一个客户端&#xff08;浏览器&#xff09;与Web服务器之间连续发生的一系列请求和响应的过程。 客户端和服务器的请求和响应的过程&#xff08;对话双方只要有一方发生变化&#xff0c;都属于不同的会话&#xff09; 超时间隔【距离上一次请求的…

将安全信息应用到以下对象时发生错误 拒绝访问_手机资讯:拒绝「京东金融」事件再次发生|如何避免iPhone 应用私自获取照片...

如今使用IT数码设备的小伙伴们是越来越多了&#xff0c;那么IT数码设备当中是有很多知识的&#xff0c;这些知识很多小伙伴一般都是不知道的&#xff0c;就好比最近就有很多小伙伴们想要知道拒绝「京东金融」事件再次发生|如何避免iPhone 应用私自获取照片&#xff0c;那么既然…

C/C++蓝桥杯1 备赛准备

蓝桥杯信息 算法基础学习 1.学习C基础语法 2. 3.做蓝桥杯的真题 赛题&#xff1a;情况 赛题&#xff1a;国赛 赛题&#xff1a;暴力数学练习 暴力的题目类型

手机qq表白代码大全可复制_街机游戏大全~手机版

街机游戏大全~手机版安卓&#xff1a;街机游戏大全~手机版1、街机游戏2、经典游戏游戏介绍安卓手机街机游戏1500合集&#xff0c;街机模拟器街机游戏可以说是一代80、90后的童年回忆&#xff0c;此合集收录1500多款街机经典游戏&#xff0c;仅限安卓系统&#xff0c;这么多游戏…

C++面试 语言基础

指针和引用之间的区别 指针是一个新的变量&#xff0c;指向一个变量的地址。可以通过这个地址来修改另一个变量&#xff1b;引用是变量的别名&#xff0c;对引用的操作就是对变量本身的操作。int a 996; int *p &a;//p是指针&#xff0c;&在此是求地址运算 int &…

中科大 计算机网络13 FTP文件传输协议

FTP FTP&#xff1a;文件传输协议 早期分享文件采用FTP方式 客户端&#xff1a;下载文件 服务器&#xff1a;上传文件 FTP:控制连接 先建立控制连接【调用一系列Socket API】&#xff0c;服务器守候在21端口;进行身份认证【用户名和口令&#xff0c;明文传输】&#xff1b;…

ulead gif animator_搞笑GIF趣图:这风看来很大啊,今天回不来家了7

原标题&#xff1a;搞笑GIF趣图&#xff1a;这风看来很大啊&#xff0c;今天回不来家了7每天更新搞笑GIF趣图&#xff0c;欢迎关注。这风看来很大啊&#xff0c;今天回不来家了&#xff0c;哈哈狗生最痛苦的事一 滩 猫过个生日 又少了个朋友找到单身的理由了这咋还往回炸爆笑GI…

图像放大 问题 即 二维数组放大

参考链接 参考链接 #include <iostream> #include <vector>int N0,K0;int main(){std::cin>>N>>K;std::vector<std::vector<int>>input(N,std::vector<int>(N, 0)); // std::cout << N << " " << K…

pictureselector 图片路径_AI图片无损放大软件

​不知道大家有没有使用过下面的AI智能图片放大网站&#xff0c;他的图片放大效果整体尚可&#xff0c;但是在高倍放大需要收费&#xff0c;且对图片尺寸和文件大小有一定的限制&#xff0c;今天给大家推荐一款Topaz Labs公司开发的图片无损放大软件(免费使用的哦)。软件介绍这…

中科大 计算机网络14 EMail SMTP简单邮件传输协议 POP3邮件传输协议 IMAP消息访问协议 HTTP超文本传输协议

EMail&#xff1a;电子邮件 协议包括发送和拉取的协议 发送的协议&#xff1a;SMTP简单邮件传输协议 拉取的协议&#xff1a;POP3邮件传输协议,IMAP消息访问协议,HTTP超文本传输协议 HTTP超文本传输协议&#xff1a; 可以上载POST和下载GET文件; 用户代理&#xff1a;撰写发…

人工智能工程师需具备的技能_2020年软件测试工程师需要具备的技能--需要学什么--面试题有哪些(灵魂拷问)...

一、2020年软件测试行业的现状2020年开年&#xff0c;一不小心&#xff0c;【新冠】黑天鹅从头上飘过&#xff0c;持续影响全国乃至全球的经济&#xff0c;软件行业公司也迎来了不少的冲击&#xff0c;那么一直打算入行软件测试行业&#xff0c;或者已经在软件测试行业耕耘多年…

C++ 标准库 书籍学习记录笔记 第5章

5.3 迭代器 前置式递增比后置式递增效率更高&#xff0c;因为后者需要一个额外的临时对象&#xff0c;因为他需要存储一个迭代器原本的位置并将其进行返还&#xff0c;因此最好使用pos&#xff0c;而不是pos&#xff1b; 5.3.1 关联式容器的运用实例 修改map默认的递增的方式…

中科大 计算机网络15 DNS域名解析系统

DNS的必要性 DNS域名解析系统&#xff1a;不是直接给人使用的&#xff0c;而是给其他应用使用的 域名到IP地址的转换【使用&#xff1a;web应用&#xff0c;FTP应用。。。】 在应用层跑的基础设施&#xff0c;为其他应用而使用 网络层的工作的设备使用IP地址&#xff0c;用来…

面试题目汇总

1&#xff0c;for循环的时间复杂度 两层for循环 第二层中 的循环变量继承与上层变量时间复杂度是O(n^2)for循环时间复杂度算法理解_bingkxin的专栏-CSDN博客_for循环时间复杂度 for(int i0;i<N;i) {for(int ji;j<N;j){//此处运行次数:NN-1N-2...1123...NN(N1)/2} } for(…

C++基础1 数据类型 常量

使用Dev CPP作为编程环境、 注意dev cpp5.4.0没有格式化代码功能&#xff0c;不要再设置了 设置的常用快捷键 CtrE:多行注释 CtrlShiftE:取消多行注释 CtrlZ&#xff1a;撤销 CtrlShiftZ:取消撤销 CtrlL:折叠函数 CtrlShifL:取消折叠函数 设置Dev Cpp Dev C初始化&#xf…

amd核芯显卡控制面板自定义分辨率_显卡天梯图2020最新版 2020年5月显卡排行榜天梯图...

转眼五月份就到来了&#xff0c;最近各大厂商可谓是你方唱罢我登场啊&#xff0c;发布会一场接着一场&#xff0c;新品和概念产品等一个接着一个的放出&#xff0c;我相信很多小伙伴们都迫不及待了&#xff01;~下面和小编一起来看看吧。2020年5月显卡排行榜天梯图&#xff1a;…