python那些事儿编程技巧_python一些编程技巧(持续更新)

def xxx(x1,x2,n=3):

#一般函数中会传递数一个或数个可变参数以及一个默认位置参数

#可变参数 *karg

def xxx(*xx):

s=0

for i in xx:

s+=i

return s

#可以在函数中输入一个或多个变量,系统默认将多个变量组成tuple来处理

num=[1,2,3,4]

print(xxx(*num)) #如果参数就是个列表,那么在函数之中,可以对列表名加个可变参数符号*,将列表变成可变参数传递

#关键词参数,可以不受限制的输入,以dict的形式传入

def xxx(name='bob',age=24,**kw):

print({'NAME':name,'AGE':age,'others':kw})

print(xxx('bob',24,city='nanjing',nation='china'))

print(xxx('bob',24,city='nanjing',nation='china',waihao='stupid'))

#和上面可变参数一样,如果输入参数本身就是一个字典,则可以将字典名加上**,将字典中的元素传递函数当中

d={'city':'nanjing','nation':'china','birth':1994}

print(xxx(**d))

#命名关键词参数,限制关键词的输入

#例如只想要city和nation的信息,在关键词之前加上* 如果函数参数中有可变参数。则不需要加*

def xxx(name='bob',age=24,*,city,nation): def xxx(name='bob',age=24,*args,city,nation)

print({'NAME': name, 'AGE': age, 'city':city,'nation':nation})

xxx(city='nanjing',nation='china')

#一个完整的函数中包括必选参数、默认参数、可变参数、命名关键字参数和关键字参数,顺序不能打乱

def xxx(name,age=24,*args,city,**kw):

def xxx(name,age=24,*,city,**kw):

#递归函数 (一个函数在内部调用函数自身)

#比如阶乘函数:

def xxx(n):

if n==1:return 1

return n*xxx(n-1)

#函数式编程 (高阶函数) 将函数本身作为变量赋予另一个函数

#map(),reduce(),filter(),sorted()

def F(x,y,f): #这里f本身就是一个函数

return f(x)+f(y)

print(F(1,-4,abs))

#map/reduce的用法 (高阶函数)

'''map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。'''

def fun(x):

return x*x

print(list(map(str,[3,4,5,6,7]))) #将列表所有元素转换为字符串

'''reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)'''

from functools import reduce # 阶乘/累乘

def f(x,y):

return x*y

print(reduce(f,[1,2,3,4,5,6]))

#过滤函数filter() filter(fun,list),筛选掉那些不满足函数的值,用法和map相似

#返回0-1000内所有的回数(左到右或右到左一样)

def huishu(x):

s=str(x)

return s[::]==s[::-1]

print(list(filter(huishu,range(10,1001))))

#sorted()排序函数 对象时iterable对象

#sorted(l,key=function,reverse=False) key实现自定义排序,reverse=True实现倒序

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

L=np.array(L)

#对列表名字实现排序

def byname(l):

return l[0]

print(sorted(L,key=byname)

print(sorted(L,key=lambda l:l[0])) 利用匿名函数

#对成绩高低实现排序

def byscore(s):

return s[1]

print(sorted(L,key=byscore,reverse=True))

#函数中return函数 ‘闭包’

#还未更新

#匿名函数 lambda

def is_odd(n):

return n%2==1

print(list(filter(is_odd,range(1,20))))

print(list(filter(lambda x:x%2==1,range(1,20))))

#装饰器 decorator

#还未更新

#偏函数 partial function 将函数的 关键词参数 修改为默认值

#把一个函数的某些参数固定住并赋予一个新的函数,使新函数在使用起来更简单

from functools import partial

max2=partial(max,10)

print(max2(1,2,3,4,5)) 等价于 print(max2(10,2,3,4,5))

int2=partial(int,base=6) #int2改为六进制

print(int2('120'))

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

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

相关文章

python获取股票数据_python根据股票代码获取当前数据

1.[代码][Python]代码 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import re import datetime def getStockInfo(url): """根据url获取信息""" stockList [] request urllib2.Request(url) response urllib2.urlopen(req…

struts2 中文乱码问题,自定义过滤器通用解决方法

问题描述 在JSP中使用form表单向后台action中传递中文参数,后台action接收到参数出现中文乱码。JSP页面统一采用了utf-8编码格式。由于struts2默认采用的编码为utf-8,根据官方文档的提示,编码格式改为GBK,就能解决中文乱码。遂改之。但是,改为…

LeetCode 1819. 序列中不同最大公约数的数目

文章目录1. 题目2. 解题1. 题目 给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如,序列 [4,6,16] 的最大公约数是 2 。 数组的一个 子序列 本质是一个序列,可以通过删除数组中的某些元素…

python concat_python-pd.concat()不合并在同一索引上

我有一个包含称为fcst的预测的df,如下所示: yhat yhat_lower yhat_upper ds 2015-08-31 -0.443522 -19.067399 17.801234 2015-09-30 6.794625 -31.472186 46.667981 ... 进行此转换后: fcst2 fcst["yhat"].to_frame().rename(columns{"…

1803无法升级到2004_汽车排放国标是什么意思:1/2/3/4/5/6的升级是为了什么?

全球各大汽车工业强国或地区都有汽车排放制造标准,知名度较高的有以下四组。美标欧标日标国标在上述标准中欧洲与日本开始实施的节点比较早,美国轻型汽车排放法规「Tier」与上世纪90年代开始实施,国标则是从2000年才开始。之所以要为汽车制造…

LeetCode LCP 28. 采购方案(排序 + 二分查找)

文章目录1. 题目2. 解题1. 题目 小力将 N 个零件的报价存于数组 nums。 小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案。 注意:答案需要以 1e9 7 (1000000007) 为底取模&…

html中输出语句怎么写,JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)...

JavaScript 输出JavaScript 没有任何打印或者输出的函数。JavaScript 显示数据JavaScript 可以通过不同的方式来输出数据:使用 window.alert()弹出警告框。使用 document.write()方法将内容写到 HTML 文档中。使用innerHTML写入到 HTML 元素。使用 console.log()写入…

c语言中阶乘相加怎么表示_c语言中如何计算n的阶乘

c语言计算n阶乘的方法:首先创建一个脚本文件,并编写头文件;然后定义一个“i”变量用来循环,以及定义变量“n”;接着用“sum”来保存结果;最后运行该脚本文件即可实现n阶乘。C语言中求阶乘的计算其实就是从1…

@service注解_Spring 中 @Component、@Service 等注解如何被解析?

前言Component和Service都是工作中常用的注解,Spring如何解析?1.Component解析流程找入口Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpat…

SAP中货源清单创建的几种方法

SAP中采购货源清单创建的方法有以下几种:1、ME01 手动逐个创建。2、ME05 系统自动批量创建。3、通过信息记录中的菜单“附加”-“源清单”创建。4、通过采购合同中的菜单“项目”-“维护货源清单”创建。5、通过计划协议中的菜单“项目”&…

svg载入html,SVG系列教程:SVG简介与嵌入HTML页面的方式

随着技术向前的推进,SVG相关的讨论也越渐频繁。为了紧跟时代的步伐,我也开始步入SVG相关技术的探索与学习之中。从这篇文章开始会在W3cplus站点上陆续向大家推出有关于SVG相关的教程、译文或案例等。感兴趣的同学可以跟随着教程一起了解与学习SVG相关的知…

LeetCode LCP 30. 魔塔游戏(优先队列)

文章目录1. 题目2. 解题1. 题目 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。 每个房间的补血道具/怪物对于血量影响记于数组 nums,其中: 正数表示道具补血数值,即血量增加对应数值;负数表…

字符变量赋值规则_Java的常量、变量、数据类型(基础篇二)

标识符标识符:是指在程序中自己定义的内容,如类名、方法名、变量名等等。命名规则:是有硬性要求的关键字:是指Java已经定义好的单词,具有特殊含义,比如public、static、class、void等等标识符可以包含英文字…

python桌面快捷图标_Python创建、删除桌面、启动组快捷方式的例子分享

一、Python创桌面建快捷方式的2个例子 例子一: 代码如下: import os import pythoncom from win32com.shell import shell from win32com.shell import shellcon def createDesktopLnk(filename,lnkname): shortcut pythoncom.CoCreateInstance( shell.CLSID_Shell…

EF---延迟加载技术

EF---延迟加载技术 及时加载延迟加载IQueryabler和IEnumerable优秀:必要的等待(拼接sql)按需加载 Include 实体状态add,remove,savechanges根据EF包装实体的State进行相应的增删改查操作。如何控制包装实体的状态entry 普能实体与EF实体的区别…

html中li的圆点,CSS中li圆点样式

li {list-style-type:符号名称}css中用list-style-type指定列表(lists)前面符号,如下:li {list-style-type:符号名称}符号名称可用的值为:disc :  CSS1 实心圆circle :  CSS1 空心圆square :  CSS1 实心方块decimal :  CSS1 阿拉伯数字lower-rom…

selenium定位输入框_[Selenium 粗浅笔记] 用Selenium填写表单

要做什么Steiner:[Selenium] 简单介绍​zhuanlan.zhihu.com我们用刚才学到的知识去用selenium来模拟与表单交互,还好有个可以练习的网站 test website 拿这个网站来试试输入用户名,密码ps: 其实这个自己在本地写个网页就行了,ajax…

LeetCode LCP 29. 乐团站位(数学 等差数列)

文章目录1. 题目2. 解题2.1 模拟超时2.2 优化通过1. 题目 某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员。 乐团共有 9 种乐器,乐器编号为 1~9,每位成员持有 1 个乐器。 为保证声…

python三引号注释_python使用三引号来注释的具体原因?

Why didnt python just use the traditional style of comments like C/C/Java uses: /** * Comment lines * More comment lines */ // line comments // line comments // Is there a specific reason for this or is it just arbitrary? 解决方案 Python doesnt use triple…

HiveQL: 数据定义

文章目录1. Hive 数据库2. 修改数据库3. 创建表3.1 管理表3.2 外部表4. 分区表、管理表5. 删除表6. 修改表学习自《Hive编程指南》1. Hive 数据库 create database DBname; hive (default)> show databases; OK default hive Time taken: 0.023 seconds, Fetched: 2 row(s…