python之函数初识
一、函数的初识
1、如何定义函数:
def 函数名():
代码...
例如:
def my_len():
l = [1, 2, 3, 4]
count = 0
for i in l:
count += 1
print(count)
2、函数的优点:
1,减少代码的重复率。
2,增强代码的阅读性。
3、函数到底是什么?
函数最主要的目的:封装一个功能。
4、函数如何调用:函数名 ()
my_len()
5、总结
定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
def 是固定的,不能变,他就是定义函数的关键字。
空格 为了将def关键字和函数名分开,必须空,当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。
函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能。
括号:是必须加的!
注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。
调用:就是 函数名() 要记得加上括号。
二、函数的返回值:return
1、函数中如果遇到retrun,则直接结束函数。
2、给函数的执行者返回值。
1,不写return和只写return 返回None
2,return 单个值 原封不动的返回(返回的数据类型也一致)
3,return 多个值 返回一个元组,所有的返回值作为元组的每一个元素
(1)不写return
def func1():
print(111)
print(222)
print(func1()) #111 222 None
(1-2)只写return
def func1():
print(111)
print(222)
return
print(func1()) #111 222 None
(2)return 单个值
def fun1():
a = 1
b = 'hello'
c = [1,2,3]
return a
print(fun1()) # 1
(3)return 多个值
def fun1():
a = 1
b = 'hello'
c = [1,2,3]
return a,b,c
print(fun1()) #(1, 'hello', [1, 2, 3])
注意:工作中,函数中尽量不要出现print,这里只是为了展示函数的用法才使用的
三、函数的参数
1、用一个例子简单了解一下:
#函数定义
def mylen(s):
"""计算s的长度"""
length = 0
for i in s:
length += 1
return length
#函数调用
str_len = mylen("hello world")
print('str_len : %s' %(str_len))
这里我们要告诉mylen函数要计算的字符串是谁,这个过程就叫做传递参数,
简称传参,我们调用函数时传递的这个“hello world”和定义函数时的s就是参数。
这个“hello world”被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。
定义函数时的s,只是一个变量的名字,被称为形式参数,因为在定义函数的时候它只是一个形式并不是真正的数据,
表示这里有一个参数,简称形参。
2、实参
1,位置参数:按照顺序,一一对应
def func1(x,y):
print(x,y)
func1(1,2) #位置参数,1对应传给x,2对应传给y
2,关键字传参:可以不按照顺序,但是必须一一对应
def func1(x,y):
return x+y
print(func1(y=100,x=99)) #关键字参数,我们写实参的时候直接声明了形参y对应100,x对应99
3,混合传参:关键字参数一定要在位置参数后面
def func1(a,b,x,y):
return b+y
print(func1(100,200,y=100,x=99)) #300
3、形参
1,位置参数 按照顺序,一一对应
def func(x,y,z):
print(x,y,z)
func(1,2,3)
2,默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值。
应用场景:不经常改变的参数,但是一直在用。
def func1(x,y,a=666):
print(x,y,a)
func1(1,2) #1 2 666
func1(1,2,333) #1 2 333
注意:
默认参数一般设置为不可变的数据类型(str,int,tuple等),
若默认参数设置为可变的数据类型(list,dict等),那么执行一次后,这个可变的数据类型它始终用的是同一个。
def fun1(x,l1=[]):
l1.append(x)
return l1
res = fun1(20)
print(res,id(res)) #[20] 2192007779592
res1 = fun1(100)
print(res1,id(res1)) #[20, 100] 2192007779592
4、参数总结
实参:
位置参数:按照顺序,一一对应
关键字参数:可以不按照顺序,但是必须一一对应
混合参数:关键字参数一定要在位置参数后面
形参
位置参数:按照顺序,一一对应
默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值
小知识点:只针对于简单的if else 这样的结构,才可以使用。
def fun(x,y):
if x > y:
return x
else:
return y
print(fun(1,2))
上面代码可以下成下面的代码:
def fun(x,y):
return x if x > y else y
print(fun(1,2))
python之函数初识的更多相关文章
- 9.Python初窥门径(函数初识)
Python(函数初识) 一.初识函数 面向过程缺点 : 代码重复,代码描述性不高 函数 : 函数是以功能为导向,一个函数封装一个功能. 函数的优点 : 减少代码重复性,增强了代码的可读性 二.函数的 ...
- 从入门到自闭之Python基础——函数初识
1. 文件操作: 读操作: 格式:f = open("文件路径",mode = "r",encoding = "utf-8") f : 代表 ...
- 《Python》 函数初识
一.函数: 1.函数初识: def 关键字 函数名 # def my_len() 函数名的命名规则跟变量一样,要具有描述性. 函数的优点: 减少代码的重复率 增强代码的阅读性 函数的主要目的:封装一个 ...
- day08 python之函数初识
一,什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print(),len( ...
- python笔记 函数初识
1. 函数: 封装一个功能 def my_len(形参): -> def 声明定义一个函数 my_len 函数名命名规则同变量 ······ - ...
- 孤荷凌寒自学python第十七天初识Python的函数
孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...
- python函数-函数初识
python函数-函数初识 1.函数的定义 语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 2.函数的使用原则---先定义后调用 #定义阶段 ...
- 【python 3】 函数 初识
函数初识 1.函数的定义.调用.返回值 函数的定义.调用.返回值 def demo(): ## 定义函数 (def + 空格 + 函数名 + () + 冒号) ## 如下为函数体 return a # ...
- Python函数初识
一.函数是什么 计算机语言中的函数是类比于数学中的函数演变来的,但是又有所不同.前面的知识中我们学会了运用基础语法(列表.字典)和流程控制语句貌似也能处理一些复杂的问题,但是相对于相似的大量重复性 ...
随机推荐
- jQuery.Ajax IE8,9 无效(CORS跨域)
今天在开发网站的时候,发现一个问题,$.ajax()在 IE8,9 浏览器不起作用,但 Chrome,Firefox ,360,IE10以上等浏览器却是可以的,网上资料很多,查询最后发现是 IE8,9 ...
- jsp内置对象-out对象
1.概念:隐含对象out是javax.servlet.jsp.JspWriter类的实例,是一个带缓冲的输出流,通过out对象实现服务器端向客户端输出字符串. 缓冲区的容量是可以设置的,甚至可以关闭, ...
- 51nod“省选”模测第二场 C 小朋友的笑话(线段树 set)
题意 题目链接 Sol 直接拿set维护\(li\)连续段.因为set内的区间互不相交,而且每个线段会被至多加入删除一次,所以复杂度是对的. #include<bits/stdc++.h> ...
- ArcGIS 10.0发布缓存地图服务(详细版)
1.软件准备ArcGIS Destop10.0,ArcGIS Server10.0,Windows系统下自带的IIS6.0以上服务器 1)安装ArcGIS Destop10.0软件,选择完全安装,安装 ...
- iOS-----------关于组件化
打一个比较形象的比喻,把APP比作我们的人体,把胳膊.大腿.心.肝.肺这些人体器官比作组件,各个器官分别负责他们各自的功能,但是他们之间也有主次之分,试想我们的胳膊.大腿等是不能独立完成某个任务的 ...
- 数据库连接不上的原因以及springBoot的ioc无法自动注入
无法自动注入解决了,数据池的连接还有问题: 错误原因1: :数据库用的是Mysql8版本,以前的配置mysql驱动包却是5.1.37版本.只需修改驱动包为8.0.11版本即可. <!-- mys ...
- jenkins+gitlab配置
jenkins配置 插件配置 Jenkins要实现持续集成自动部署需要安装 gitlab maven Publish Over SSH Git等几个插件 查看已经安装的插件 jenkins上集成 ...
- 如何用Nginx解决前端跨域问题?
前言 在开发静态页面时,类似Vue的应用,我们常会调用一些接口,这些接口极可能是跨域,然后浏览器就会报cross-origin问题不给调. 最简单的解决方法,就是把浏览器设为忽略安全问题,设置--di ...
- 解决topjui中工具栏按钮删除刷新从属表
遇到了这么个问题:当在从属datagrid表格中,点击主表工具栏按钮中的删除,通过后台的多表删除的sql,返回给前台之后,从属表的数据成功在数据库中删除,但是在前台页面显示的时候,只刷新了主表,子表未 ...
- 上传本地文件到GitHub上
问题解决 今天在windows上上传本地文件到github,出现用户名和仓库不匹配的情况,解决方式如下: 打开控制面板,选择用户账户 把该删除的账户删除一下就行了. 上传文件的步骤如下: 将上传的文件 ...