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 初识函数的更多相关文章

  1. python之路——初识函数

    阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...

  2. python基础之 初识函数&函数进阶

    函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

  3. day 09 初识函数

    今日主要学习了 一. 什么是函数二. 函数定义, 函数名, 函数体以及函数的调?三. 函数的返回值四. 函数的参数 一, 什么是函数               如果找不到合适的函数名称 ,用 fu ...

  4. Python之路【第五篇】python基础 之初识函数(一)和文件管理

    转载请注明出处http://www.cnblogs.com/wupeiqi/articles/5453708.html 函数 一.背景                                 ...

  5. Python进阶-I 初识函数(function)

    函数 在java中叫方法. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print() ...

  6. python note 14 其他函数及递归应用

    1.repr用法 print("你好") # 用户看着舒服 print(repr("你好")) # 真实的字符串表示形式(正式的)print("我叫% ...

  7. python之路--初识函数

    一 . 函数 什么是函数 f(x) = x + 1 y = x + 1 # 函数是对功能或者动作的封装 函数的语法 def 函数名(): 函数体 调用: 函数名() def play(): print ...

  8. python记录_day09 初识函数

    一.认识函数 函数:对动作或者功能的封装 格式: 函数声明     def  函数名(): 函数体 函数调用     函数名() #定义函数 def xiao(): print("你的笑像一 ...

  9. 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参

    函数:对功能的封装语法: def 函数名(形参): 函数体 函数名(实参) 函数名:命名规则和变量一样 函数的返回值: return, 函数执行完毕. 不会执行后面逻辑 1. 如果函数中不写retur ...

随机推荐

  1. idea 优先引用项目代码,而非jar包

    1.现有项目,和jar包源码在同一层目录 2.idea直接打开ccccc,右键a,b两个文件中的pom.xml加入maven project,如下: 执行1,2 步骤,在b中引入a,刚引入a在最下方, ...

  2. git push 本地项目推送到远程分支

    大家有的时候,会在本地新建项目,这里说一下在本地项目建立本地git仓库,然后push到远程仓库的步骤 1.在本地项目的文件夹下,git仓库初始化 git init 初始化本地git仓库 2. git ...

  3. class中限定绑定属性__slots__方法

    使用__slots__但是,如果我们想要限制class的属性怎么办?比如,只允许对Student实例添加name和age属性.为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的 ...

  4. Hexo:创建属于你自己的博客

    step: 1.install node.js,git,github 2.npm install -g hexo-cli 3.mkdir hexo 4.cd hexo mkdir blog 5.cd ...

  5. 通过Loadruner对mysql数据库进行增删改查

    操作mysql数据库,是在实现mysql数据源配置的基础上操作,可先阅读:loadrunner参数化使用mysql数据源失败解决方法 写之前先理一下,数据库访问流程:打开数据库  --> 数据库 ...

  6. Windows2008R2操作系统日志清理

    Windows日志路径 c:/windows/system32/winevt/logs

  7. PID控制器介绍

    在维基百科上查到的PID的介绍,收藏一下,慢慢看. https://zh.wikipedia.org/wiki/PID%E6%8E%A7%E5%88%B6%E5%99%A8#%E6%AF%94%E4% ...

  8. azkaban用户管理及权限配置

    参考:https://blog.csdn.net/zlx510tsde/article/details/52287931 官网:https://azkaban.readthedocs.io/en/la ...

  9. 9Linux_LVM_iptables

    LVM 创建物理卷 卷组 逻辑卷 格式化 挂载 扩容 缩小 快照 删除逻辑卷

  10. idea相关

    一些小技巧 ctrl + n 全文搜索文件,未搜索不能关闭,搜索过一个文件,并打开后自动关闭 鼠标点击idea之外也会关闭 双击shift 搜索所有文件 ctrl + d 向下复制一行 idea导入的 ...