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 ...
随机推荐
- API应用实例
API声明透明 {API声明} type TSetLayeredWindowAttributes = function(wnd: HWND; crKey: DWORD; bAlpha: BYTE; d ...
- js滚动页面到固定位置进行操作
$(window).scroll(function () { var scrollTop = $(this).scrollTop(); var scrollHeight = $("#div& ...
- go routine
无缓冲 channel 是在多个 goroutine 之间同步很棒的工具. 当在 Go 中用 ch := make ( chan bool ) 创建 chennel 时,bool 型的 无缓冲 cha ...
- 由Resin引发的java.lang.IllegalArgumentException: object is not an instance of declaring class(反射中使用)思考
文章目录 背景 原因 解决办法 背景 在java agent中抓取Resin的 某些方法,在invoke的时候出现错误 java.lang.IllegalArgumentException: obje ...
- 2016 ICPC Mid-Central USA Region J. Windy Path (贪心)
比赛链接:2016 ICPC Mid-Central USA Region 题目链接:Windy Path Description Consider following along the path ...
- 剑指offer——50最长不含重复字符和子字符串
题目: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含’a~z”的字符.例如,在字符串“arabcacfr"中,最长的不含重复字符的子字符串 ...
- Java目录事件
当文件系统中的对象被修改时,我们可以监听watch服务以获取警报.java.nio.file包中的以下类和接口提供watch服务. Watchable接口 WatchService接口 WatchKe ...
- 【二】Jmeter接口自动化测试系列之函数使用及扩展
上一篇文章我们了解了Jmeter的参数化的集中方法,虽然方法不是很多,但已经足够使用! 本篇文章,介绍一下Jmeter自带函数的使用和 函数扩展,来满足测试工作中的各种需求! Jmeter自带函数 点 ...
- 不走弯路,微信小程序的快速入门?
微信小程序下载注册地址:https://mp.weixin.qq.com/cgi-bin/wx 微信小程序登开发者平台地址(可以查看小程序APPID):https://mp.weixin.qq.com ...
- (Struts2学习系列一)MyEclipse创建第一个struts2项目
点击MyEclipse菜单栏File按钮,点击new-->Web Project 输入Project name之后点击Finish 项目创建完成. 然后右键项目,点击MyEclipse--> ...