python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

一,匿名函数

def add(x,y)

return x+y

print(add(2,3))

f=lambda x,y:x+y #匿名函数需要lambdb来指定,lambda后直接跟参数,然后是:冒号,冒号后是表达式,只能是中表达式。当要引用匿名函数的时候,要赋值给变量才可以。

print(f(1,2))

二, 三元表达式

条件为真时返回的结果 if 条件判断 else 条件为假时返回的结果

x if x>y else y

x=2

y=1

f=x if x>y else y #因为是表达式,所以要被赋值使用。

print(r)

三,map的使用

list_x=[1,2,3,4,5,6]

def square(x):

reture x*x

r=map(square,list_x)

print(list(r))

四,map与lambda相结合使用

list_x=[1,2,3,4,5,6]

r=map(lambda x:x*x,list_x)

print(list(r)) #例三与例四相同

五,map与lambda相结合,多参数

list_x=[1,2,3,4,5,6]

list_y=[1,2,3,4,5,6]

r=map(lambda x,y:x*x+y,list_x,list_y)

print(list(r))

六,编程模型map/reduce 映射 归约

from functools import reduce

list_x[1,2,3,4,5,6]

r=reduce(lambda x,y:x+y,list_x,10) #reduce为连续计算,连续调用lambda.10参数可以忽略。如果忽略计算方式为,第一次,x=1,y=2,相加算计为3,第二次x=3,y=3,相加为6。第三次x=6,y=4相加为10,第四次,,,,,以次相加计算,一至加到6。当10不忽略的时候,10为x的初始值,第一次为x=10,y=1相加,以次计算......

print(r)

注:reduce()函数内做为参数的函数lambda()必须要有两个参数。

七,过滤,filter

list_x=[1,2,3,4,5,6]

r=filter(lambda x:True if x==1 else False,list_x) #函数filter()要求lambda一定要返回一个真假,或者返回一个能代表真假的,此名也可写为:r=filter(lambda x:x,list_x),因为x为1是真,为0是假

print(list(r))

八,装饰器

8.1)装饰器前奏

要求在每个函数前都要打印出时间

import Time

def f1():

print('This is a function')

def f2():

print('This is a function')

def print_current_time(fuc):

print(time.time())

fuc()

print_current_time(f1)

print_current_time(f2)

8.2)装饰器前奏

import time

def decorator(fuc):

def wrpper():

print(time.time())

fuc()

return wrpper

def f1():

print('This is a function')

def f2():

print('This is a function')

f=decorator(f1)

f()

8.3)装饰器

import time

def decorator():

def wrapper():

print(time.time())

fuc()

return wrapper

@decorator #装饰器 语法堂

def f1():

print('This is a function')

f1()

8.4)装饰器,参数

import time

def decorator():

def wrapper(func_name):

print(time.time())

fuc(func_name)

return wrapper

@decorator #装饰器 语法堂

def f1(func_name):

print('This is a function'+func_name)

f1()

8.5)装饰器,多参数

import time

def decorator():

def wrapper(*args): #可变参数,args可为任一变量

print(time.time())

fuc(*args)

return wrapper

@decorator #装饰器 语法堂

def f1(func_name):

print('This is a function'+func_name)

@decorator

def f2(func_name1,func_name2)

print('This is a function'+func_name1)

print('This is a function'+func_name2)

f1(test_func)

f2(test_func1,test_func2)

8.6装饰器,关键词参数

import time

def decorator():

def wrapper(*args,**kw): #可变参数,args可为任一变量 。关键词参数kw也是任一变量

print(time.time())

fuc(*args,**kw)

return wrapper

@decorator #装饰器 语法堂

def f1(func_name):

print('This is a function'+func_name)

@decorator

def f2(func_name1,func_name2)

print('This is a function'+func_name1)

print('This is a function'+func_name2)

@decorator

def f3(func_name1,func_name2,**kw) #**kw关键词参数

print('This is a function'+func_name1)

print('This is a function'+func_name2)

print(kw)

f1(test_func)

f2(test_func1,test_func2)

f3(test_func1,test_func2,a=1,b=2,c='1,2,3')

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

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

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

相关文章

谷歌大脑提出VeLO优化器,无需调参,最高比Adam快16倍!

文 | 萧箫 发自 凹非寺源 | 量子位还在苦恼怎么给优化器调整更好的参数吗?现在,谷歌大脑搞出了一个新的优化器VeLO,无需手动调整任何超参数,直接用就完事了。与其他人工设计的如Adam、AdaGrad等算法不同,VeLO完全基于A…

程序员面试金典 - 面试题 17.22. 单词转换(BFS)

1. 题目 给定字典中的两个词,长度相等。 写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符。 每一步得到的新词都必须能在字典中找到。 编写一个程序,返回一个可能的转换序列。如有多个可能的转换序列,…

成功:选择比努力更重要,智慧比勤奋更重要

人生三句话: 1、想要什么,比做什么更重要; 2、选择比努力更重要; 3、智慧比勤奋更重要;信息时代的财富,蕴藏在哪里?农业时代财富,蕴藏在土地,谁拥有土地&…

OpenAI新模型惊艳了!对话问答能力逆天

编|昕朋 Aeneas源|新智元OpenAI新模型来了!全新对话模型ChatGPT,可以回答用户问题,还能挑出问题的错误之处。面对不懂的问题,还会承认错误并拒绝回答!当人们翘首期待GPT-4时,OpenAI在…

程序员面试金典 - 面试题 17.17. 多次搜索(Trie树)

文章目录1. 题目2. 解题2.1 暴力超时2.2 Trie树1. 题目 给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。 输出smalls中的字符串在big里出现的所有位置positions&#…

雅虎的Mash-up 之路

当今的互联网,每天都会冒出许多的新产品、新技术、新概念,越来越多的Web N.0已经让我们看得眼花缭乱。现在业界对Mash-up有个比较统一的定义:Mash-up 模式指的是网站采用混合技术搭建,不同的功能模块与不同的外界API接口对接实现。…

python读单行文本求平均值_如何从文本文件python中的数字列表中找到平均值

在文本文件中,有一个名称列表,旁边有一个数字,表示他们在本例中的分数。有没有办法计算出文本文件中所有数字的平均值。在 代码:print("average calculator") option input("option: ") option_class input…

把狗画成擦边猛男,「AI绘画」能有多离谱?

文|哈哈哈波特源|知乎一个AI绘画小程序日增用户65.7万人,一周内突破100万,这个增长速度也算是一夜爆红了,AI画作一时间在朋友圈传得沸沸扬扬,不仅如此,还迅速引起一波短视频热潮,相关…

程序员面试金典 - 面试题 16.03. 交点(数学)

1. 题目 给定两条线段(表示为起点start {X1, Y1}和终点end {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。 要求浮点型误差不超过10^-6。若有多个交点(线段重叠)则返回 X 值最…

终结1.x时代,PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%

源|机器之心PyTorch 官方:我们这次的新特性太好用了,所以就直接叫 2.0 了。前段时间,PyTorch 团队在官方博客宣布 Pytorch 1.13 发布,包含 BetterTransformer 稳定版等多项更新。在体验新特性的同时,不少人…

python randint什么分布_python随机数分布random测试

因为概率问题,所以需要测试一下python的随机数分布。到底是平均(均匀)分布,还是正态(高斯)分布。 测试代码如下: #! /usr/bin/env python #codingutf-8 # # Describe : 测试random随机数分布 #…

LeetCode 1408. 数组中的字符串匹配(暴力查找)

1. 题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。 如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[…

逻辑性不好可以学python吗_如果本文若未能让你学会“Python”,可能真的不适合学习Python...

很多小伙伴们会问学习Python难学吗? python就是以他简单易学出名的。几乎是现在最简单,却可塑性最高的语言了。一般有其它编程语言基础的,自学,三小时左右就能学会。现在Python都有给小朋友的教程,简单程度可见一般。 …

意外地调用了方法或属性访问

我使用JAVASCRIPT动态创建HTML中的元素居然提示,“意外地调用了方法或属性访问”我的方法:function appendTag(element){var f document.createElement("font");f.setAttribute("style","color:red");var text document.createText…

谷歌要完,百度也危了

文 | 天于刀刀当我们在抱怨搜索引擎的时候我们具体在说些什么?也许是饱受诟病的广告?或者是不合理的网页排序?又或是一种最直观的感觉——不好使。但是从来没有人抱怨过搜索引擎这一个模式。尽管这些年,也诞生一些诸如Magi这样让人…

LeetCode 1409. 查询带键的排列(map模拟)

1. 题目 给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。 请你根据以下规则处理所有待查项 queries[i](从 i0 到 iqueries.length-1): 一开始,排列 P[1,2,3,…,m]。对于当前的 i ,请你找…

根据年月日计算是星期几的函数,基姆拉尔森计算公式

算法如下: 基姆拉尔森计算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数。 注意:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月&#…

centos7 如何安装部署k8s_如何在centos7上安装FreeIPA的客户端

1.文档编写目的在前面的文章《如何在Redhat7上安装FreeIPA》介绍了FreeIPA的安装及使用,本篇文章主要介绍如何在RedHat7上安装FreeIPA的客户端并配置。 2.内容概述1.环境准备2.安装FreeIPA客户端及使用3.总结及异常处理 3.测试环境1.centos 7.62.FreeIPA4.6.44.环境…

何恺明新作来了!更快更有效的训练FLIP

文 | Random源 | AIWalkerpaper:https://arxiv.org/abs/2212.00794本文提出一种用于训练CLIP的简单而有效的方案FLIP(Fast Language-Image Pre-training, FLIP),它在训练过程中对图像块进行大比例的随机Mask移除。Mask机制使得我们可以在有限周期内学习到更多的imag…

LeetCode 1410. HTML 实体解析器(哈希map)

1. 题目 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。 HTML 里这些特殊字符和它们对应的字符实体包括: 双引号:字符实体为 " ,对应的字符…