python note 09 初识函数
1、函数
def my_len(): #自定义函数(相当于len)
i = 0
for k in s:
i += 1
print(i)
print(my_len())
#输出None,因为没有返回值
2、返回值
#返回值的3种情况
# 没有返回值 —— 返回None
# 不写return
# 只写return:结束一个函数的继续
# return None —— 不常用
# 返回1个值
# 可以返回任何数据类型
# 只要返回就可以接收到
# 如果在一个程序中有多个return,那么只执行第一个
# 返回多个值
# 用多个变量接收:有多少返回值就用多少变量接收
# 用一个变量接收: 得到的是一个元组
3、break与return的区别
#break会结束当前条件语句和循环语句返回上一层级
#return会结束函数返回此时的值,后面的不再执行
def func():
l = ['老大','老二']
for i in l:
print(i)
if i == '老大':
return None
print('='*10)#此处不打印
ret = func()
print(ret)
#输出 老大
# None
4、形参与实参
#站在实参的角度上:
#按照位置传参
#按照关键字传参
#混着用可以:但是 必须先按照位置传参,再按照关键字传参数
# 不能给同一个变量传多个值
#站在形参的角度上
#位置参数:必须传,且有几个参数就传几个值
#默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的
def classmaste(name,sex='男'):
print('%s:%s' %(name,sex))
classmaste('张三')
classmaste('张三','女')
#输出
#张三:男
#张三:女
5、
#只有调用函数的时候
#按照位置传 : 直接写参数的值
#按照关键字: 关键字 = 值
#定义函数的时候:
#位置参数 : 直接定义参数
#默认参数,关键字参数 :参数名 = '默认的值'
#动态参数 : 可以接受任意多个参数
#参数名之前加*,习惯参数名args,
#参数名之前加**,习惯参数名kwargs
#顺序:位置参数,*args,默认参数,**kwargs
def sum(*args):
n = 0
for i in args:
n+=i
return n
print(sum(1,2)) #输出3
print(sum(1,2,3))#输出6
print(sum(1,2,3,4)) #输出10
def func(**kwargs):
print(kwargs)
func(a = 1,b = 2,c =3) #输出{'b': 2, 'a': 1, 'c': 3}
func(a = 1,b = 2) #输出{'b': 2, 'a': 1}
func(a = 1) #输出{'a': 1}
# 动态参数有两种:可以接受任意个参数
#*args : 接收的是按照位置传参的值,组织成一个元组
#**kwargs: 接受的是按照关键字传参的值,组织成一个字典
#args必须在kwargs之前
def func(*args,default = 1,**kwargs):
print(args,kwargs)
6、动态参数的另一种传参方式
#站在形参的角度上,给变量加上*,就是组合所有传来的值。
def func(*args):
print(args)
func(1,2,3,4,5)
#站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
def func(*args):
print(args)
l = [1,2,3,4,5]
func(*l)
7、相关练习
1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func(l):
return l[1::2]
print(func([1,2,3,4,5,6,7,8]))
2、写函数,判断用户传入的值(字符串、列表、元组)长度是否大于5。
def func(x):
if len(x) > 5:
print("长度大于5")
return len(x)
print(func('abcd'))
3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
def func(l):
if len(l) > 2:
print(l[0:2])
return l[:2]
func([2,3,4,5])
4、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数,并返回结果。
def func(s):
dic = {'num':0,'alpha':0,'space':0,'other':0}
for i in s:
if i.isdigit():
dic['num']+=1
elif i.isalpha():
dic['alpha'] += 1
elif i.isspace():
dic['space'] += 1
else:
dic['other'] += 1
return dic
print(func('+0-0skahe817jashf wet1'))
5、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
def func(x):
if type(x) is str and x:
for i in x:
if i == ' ':
return True
elif x and type(x) is list or type(x) is tuple:
for i in x:
if not i:
return True
elif not x:
return True
print(func([]))
6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def func(dic):
for k in dic:
if len(dic[k]) > 2:
dic[k] = dic[k][:2]
return dic
print(func(dic))
7、写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b):
if a>b:
return a
else:
return b
print(func(1,5))
python note 09 初识函数的更多相关文章
- python之路——初识函数
阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...
- python基础之 初识函数&函数进阶
函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...
- day 09 初识函数
今日主要学习了 一. 什么是函数二. 函数定义, 函数名, 函数体以及函数的调?三. 函数的返回值四. 函数的参数 一, 什么是函数 如果找不到合适的函数名称 ,用 fu ...
- Python之路【第五篇】python基础 之初识函数(一)和文件管理
转载请注明出处http://www.cnblogs.com/wupeiqi/articles/5453708.html 函数 一.背景 ...
- Python进阶-I 初识函数(function)
函数 在java中叫方法. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print() ...
- python note 14 其他函数及递归应用
1.repr用法 print("你好") # 用户看着舒服 print(repr("你好")) # 真实的字符串表示形式(正式的)print("我叫% ...
- python之路--初识函数
一 . 函数 什么是函数 f(x) = x + 1 y = x + 1 # 函数是对功能或者动作的封装 函数的语法 def 函数名(): 函数体 调用: 函数名() def play(): print ...
- python记录_day09 初识函数
一.认识函数 函数:对动作或者功能的封装 格式: 函数声明 def 函数名(): 函数体 函数调用 函数名() #定义函数 def xiao(): print("你的笑像一 ...
- 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参
函数:对功能的封装语法: def 函数名(形参): 函数体 函数名(实参) 函数名:命名规则和变量一样 函数的返回值: return, 函数执行完毕. 不会执行后面逻辑 1. 如果函数中不写retur ...
随机推荐
- zookeeper的读写流程
zookeeper的读写流程 基本架构 节点数要求是奇数. 常用的接口是 get/set/create/getChildren. 读写流程 写流程 客户端连接到集群中某一个节点 客户端发送写请求 服务 ...
- windows 下借助7zip实现命令行解压缩
windows 下借助7zip实现命令行解压缩 64位电脑下载 https://www.7-zip.org/a/7z1805-x64.exe 安装 安装目录下所有文件如下: 在命令行下只需要用到 7z ...
- AD中批量创建域用户
EXCEL表中的各列说明情况: A列:姓 B列:名 C列:姓名 D列:账号 E列:密码 此表格另存为person .csv 的格式到AD的C盘目录下,用记事本打开如下图所示: 打开CMD,右键以管理员 ...
- linux杂记
find [path] -name fileName find /home/audio/mrcp-asr/audio -type f -newermt '2019-04-23 00:00' ! -ne ...
- ASP.NET Core 1.1版本之Hello word
1.下载ASP.NET Core 1.1版本,并且安装. 2.新建一个工作文件夹,本文以WebApiFrame名称为例建立一个新的文件夹: mk WebApiFrame 3.启动命令行,在命令行中进入 ...
- 用自己的话简要阐述struts2的执行流程
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件.核心控制器FilterDispatcher是Struts ...
- vscode中使用markdown(转)
vscode 是微软推出一款轻量级的文本编辑工具,类似于sublime,由于其拥有丰富的插件,安装使用也非常简单,所以深受广大程序员的喜爱. markdown 是一种可以使用普通文本编辑器编写的标记语 ...
- vue富文本编辑器
基于webpack和vue 一.npm 安装 vue-quill-editor 二.在main.js中引入 import VueQuillEditor from 'vue-quill-editor'/ ...
- springboot学习五:IDEA外部tomcat发布
pom.xml配置 屏蔽自带tomcat <dependency> <groupId>org.springframework.boot</groupId> < ...
- eclipse安装中文语言包
打开eclipse官网 https://www.eclipse.org/ 选择Projects 搜索框输入:Babel 点击搜索 选择Downloads 根据eclipse启动图画里的版本选择要下载的 ...