Day 9 :初识函数
Python函数:1、函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
2、函数能提高应用的模块性,和代码的重复利用率。
Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义函数:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。(定义时使用的参数,是形参)
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。

例:
def quadratic_func(length,breadth ):
'''
这是一个计算面积的函数
:param length: 长度
:param breadth: 宽度
:return: 面积
'''
ret = length * breadth
return ret
函数的调用:
义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
如下实例调用了quadratic_func()函数:

return :返回值的关键字是return
return的作用:
1、结束整个函数
2、能够返回相应的值
如果不写return ,默认返回None!
return也可以返回多个值,(以元组的方式返回,逗号隔开)
1、练一练:写函数,检查获取传入列表或者元组对象的所有奇数位索引对应的元素,并将其新的列表返回给调用者
#方法1:
def odd_num(lis):
new_lis = []
for i in range(len(lis)):
if i % 2 == 1:
new_lis.append(lis[i])
return new_lis
print(odd_num([0,1,2,3,4,5,6,7]))
#方法2:切片
def odd_num(lis):
new_lis = lis[1::2]
return new_lis
print(odd_num([0,1,2,3,4,5,6,7]))
2、写函数,计算字符串中【数字】、【字母】、【空格】以及其他的个数
#isdigit:检测字符串是否为数字。
#isalpha:检测字符串是否为字母。
#isspace:检测字符串是否为空格
def examine_str(str_type):
digeit_num = 0
alpha_num = 0
space_num = 0
other_num = 0
for i in str_type:
if i.isalpha():
alpha_num += 1
elif i.isdigit():
digeit_num += 1
elif i.isspace():
space_num += 1
else:
other_num += 1
return {'digeit_num':digeit_num,
'alpha_num':alpha_num,
'space_num':space_num,
'other_num':other_num
}
ret = examine_str('23414 16as dfjk$*((*$$')
print(ret)
备注:解耦在写一个函数时候,把 一个大功能尽量分成多个小功能,并且功能与功能之间影响减到最小,不宜把一个很复杂的功能写一个函数里
函数的参数
默认参数:1、如果函数调用时,没有传递默认参数,则使用函数调用时默认的值,如果传参,则使用传递的参数

位置参数:位置参数必须在前。
动态参数:*args,**kwargs.
[*] 是动态参数的标识符,args,相当于一个变量,也可以写别的,但是推荐使用args,kwargs
参数不固定时,就用动态参数
*args:代表一个数组,在python中显示为元组
**kwargs:相当于关键字参数,在Python中显示为字典模式,也可以传入字典
如果在定义函数时同时使用*args,**kwargs,作为参数,则可以接受所有参数
def my_test(*args,**kwargs):
print(args)
print(kwargs)
my_test(,,,*[,,],a = ,b =)
my_test(,,,,,,a = ,b =)
#2个的输出结果相同
'''
(, , , , , )
{'a': , 'b': }
(, , , , , )
{'a': , 'b': }
'''
练一练:
1、写函数,传入N个数,返回字典{‘max’:最大值,‘min’:最小值}
#例lis = [31,42,65,8,33,68]
dic = {}
min_num = lis[0]#假设 lis 0 是小值
max_num = lis[0]#假设 lis0 是最大值
for i in lis:
if i < min_num:
min_num = i
dic['min'] = min_num
elif i > max_num:
# 第一次和31比较,条件不成立,第二次和42比较,条件成立,则max_num = 42,添加至字典,第三次,再次循环条件再次成立,
# 因为key相同,再次更新字典,一次类推,找出最大值
max_num = i
dic['max'] = max_num
print(dic)
#函数写法
def max_min(*args):
min_num = args[0]
max_num = args[0]
for i in args:
if i < min_num:
min_num = i
elif i > max_num:
max_num = i
return {'max':max_num,'min':min_num}
print(max_min(123,4,2342,5,346,7))
2、写函数,计算图形面积计算圆的面积,正方形的面积,长方形的面积
调用函数(‘圆形’,圆半径) 返回圆的面积 π*半径的平方
调用函数(‘正方形’,边长) 返回正方形的面积 长的平方
调用函数(‘长方形’,长,宽) 返回长方形的面积 长*宽
def figure_area(name,*args):
def rectangle(x,y):
return '长方形面积是',x*y
def square(x):
return '正方形面积是',x*x
def circle(r):
return '圆形面积是',3.14*r*r
if name == '长方形':
return rectangle(*args)
elif name == '正方形':
return square(*args)
elif name == '圆形':
return circle(*args)
else:
return '无法计算'
print(figure_area('长方形',5,20.1))
3、写函数,传入一个参数N,返回N的阶乘
例 cal(5),计算5*4*3*2*1
def my_cal(num):
ret = 1
for i in range(1,num+1):
ret *= i
return ret
print(my_cal(5))
4
Day 9 :初识函数的更多相关文章
- python之路——初识函数
阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...
- python基础 (初识函数&函数进阶)
函数基础部分 .什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...
- Day06 (黑客成长日记) 初识函数和返回值的作用
定义函数: 1.初识函数: 我们在学习字符串时,有这样的操作: li = 'tsy be ba bvake ' print(len(li)) 这样可以打印出li的长度,我们利用了python中的len ...
- python基础之 初识函数&函数进阶
函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...
- Python基础之文件的初识函数
初识函数函数定义:定义一个事情或者功能. 等到需要的时候直接去用就好了了. 那么这里定义的东西就是一个函数即函数: 对代码块和功能的封装和定义1.1常用形式: def 函数名(): 函数体1.2 函数 ...
- Python_初识函数
为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你计算'hello world'的长度,你怎么计算? 这个需求对于现在的你其实不难,我们一起 ...
- 08-Python之路---初识函数
Python之路---初识函数️ 程序员三大美德: 懒惰 因为一直致力于减少工作的总工作量. 缺乏耐性 因为一旦让你去做本该计算机完成的事,你将会怒不可遏. 傲慢 因为被荣誉感冲晕头的你会把程序写得让 ...
- Python初识函数
Python初识函数 函数理论篇 什么是函数 在编程语言中的函数不同于数学中的函数.不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于: 1.数学中的函数当输入的 ...
- Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数
Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...
- C++ 初识函数模板
1. 前言 什么是函数模板? 理解什么是函数模板,须先搞清楚为什么需要函数模板. 如果现在有一个需求,要求编写一个求 2 个数字中最小数字的函数,这 2 个数字可以是 int类型,可以是 float ...
随机推荐
- Python每日一题 002
做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 在此生成由数字,字母组成的20位字 ...
- JAVA并发工具类---------------(Fork/Join)
Fork/Join 分而治之 将一个大任务分成数个小任务执行,然后将这些小人物执行后的结果进行join汇总: (假设:你要计算1到1000的总和,你可以把它分成1-100,101-200,...... ...
- DOS和DDOS攻击
1.什么是DOS攻击 首先注意这里是DOS(Denial Of Service)攻击,并非DoS.DoS是微软早期的系统版本. DoS即Denial Of Service,拒绝服务的缩写.DoS是指故 ...
- Address already in use: JVM_Bind 8083端口被占用的几个解决办法
运行Tomcat时若出现Address already in use: JVM_Bind 端口被占用,一般使用下面几个办法可以解决: 假设端口为8083 1.启动cmd, 执行命令netstat -a ...
- 1089 Insert or Merge (25 分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- vue-lic脚手架中引入font-awesome
1.安装font-awesome npm i font-awesome --production 2.在main.js中引用 import 'font-awesome/css/font-awesome ...
- react-loadable路由懒加载
load.js import Loadable from 'react-loadable'; import './styles/load.styl' // 按需加载组件 export default ...
- 第二记 Java数据类型
一.数据类型 java中数据类型分为基本数据与引用数据类型两大类,其中又有更细致的划分,下面以图展示 二.基本数据类型封装类 Java是一门面向对象的语言,但是在一些情况下基本数据类型无法满足Java ...
- 如何用json 与jsonp 的区别去回答你的面试官?
常常 有面试官这样问我们,虽然用过无数次,但是回答不上岂不是尴尬,那我们浅析一下它们的区别? 1. json JSON是一种基于文本的数据交换格式,用于描述复杂的数据,举个例子: var nax=[ ...
- 《代码大全2》读书笔记 Week3
<代码大全2>第六.七章 作者在第六章中从抽象数据类型(Abstract Data Type)出发阐释类(class)的概念,给出创建类的原因以及创建高质量的常涉及的设计问题.抽象数据类型 ...