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 ...
随机推荐
- TFS——更改计算机名称,影响TFS使用
今天把自己电脑的计算机名称改了,打开VS的时候,就提示以下的错误: 报错情况 显示错误:工作区 DADI--20141015Q;SD-SERVER\Administrator 未驻留在此计算机上.如果 ...
- JAVA JDBC大数据量导入Mysql
转自https://blog.csdn.net/q6834850/article/details/73726707?tdsourcetag=s_pctim_aiomsg 采用JDBC批处理(开启事务. ...
- CSS:CSS 伪元素
ylbtech-CSS:CSS 伪元素 1.返回顶部 1. CSS 伪元素 CSS伪元素是用来添加一些选择器的特殊效果. 语法 伪元素的语法: selector:pseudo-element {pro ...
- 服务器安装TeamViewer 13
服务器安装TeamViewer 13 服务器上安装TeamViewer,网上找了个教程开始安装,里面有坑,安装时要根据自己的情况而定.Linux系统更新太快,网上教程可能会有一些出入. TeamVie ...
- [转] bae中thinkphp的REWRITE 正确配置方法
URL_MODEL =2下. 官方的:app.conf不能用,害人呀.. 留意以下红色部分,正则要分开来写,坑爹的 正确的配置: handlers: handlers: - expire : .jpg ...
- 作用域 {}代码块 const修饰符 引用
简单分为:全局作用域.局部作用域.语句作用域 如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::” ::aver=20 #include<iostream> usin ...
- Netty 相关目录
Netty 相关目录 Netty 源码学习--客户端流程分析 Netty 源码学习--服务端流程分析 Netty 源码分析--ChannelPipeline Netty 源码学习--EventLoop ...
- 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图
jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...
- python--面向对象:多态与封装
一.多态 :python 天生支持多态多态指的是一类事物有多种形态 eg:文件有多种形态:文本文件,可执行文件鸭子类型:python中崇尚鸭子类型,不崇尚根据继承所得来的相似 优点 : 松耦合 每个相 ...
- to meet you 常用类库与技巧
1.Java的异常体系 2.从概念角度解析Java的异常处理机制 3.从责任角度看Java的异常体系 checked exception 必须try catch 或者继续向上抛出异常,否则编译不能通过 ...