day9.初识函数
python3 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
def func(len):
'''
计算字符串长度
:return:len
''' i = 0
for k in len:
i += 1
return i st = 'abcdefg'
lens = func(st)
print(lens)
### 此为定义一个简单的函数的定义,包括注释
函数调用
定义一个函数以后可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
如下实例调用了 printme() 函数:
def printme(str):
print(str)
return printme('打印任意输入值')
printme('这个函数很无聊')
打印任意输入值
这个函数很无聊
参数传递
位置参数
如下事例,按照参数位置传递参数。有多少个位置则传递多少个参数。
若想自定义参数,则需要在传参过程中自定义关键字
def func(name,sex):
print(name+'性别是'+sex)
return func('小明','男')
小明性别是男
def func(name,sex='男'):
print(name+'性别是'+sex)
return func(sex='女',name='小花')
小花性别是女
默认参数(??)
# 如果调用函数时没有传递参数,则会使用默认参数
def func(name,age,sex='男'):
print(name,age,sex)
return func('abc','')
##############################################
这里我用字符串格式化写了一个小函数,为啥默认函数不能用,先留着后面看看。讲道理即使不写性别应该是男?
def func(name,age,sex='男'):
print('这个人的名字是:{},年龄是:{},性别是:{}'.format( name,age,sex))
return na = input('请输入名字:')
ag = input('请输入年龄:')
se = input('请输入性别:')
func(na,ag,se)
请输入名字:小明
请输入年龄:12
请输入性别:
这个人的名字是:小明,年龄是:12,性别是:
动态参数(不定长参数)
动态参数有两种:可以接受任意个参数
*args : 接收的是按照位置传参的值,组织成一个元组
**kwargs: 接受的是按照关键字传参的值,组织成一个字典
args必须在kwargs之前
实例1:
def func(*args):
print(args)
return
func(20,12,34)
l1=[1,2,3,4,5,6]
func(l1)
func(*l1) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散。给序列加和不加 * 的结果就是是否将其原封不动或打散
(20, 12, 34)
([1, 2, 3, 4, 5, 6],)
(1, 2, 3, 4, 5, 6)
实例2:
def func(**kwargs):
print(kwargs)
return func(a=12,b=34)
l1={'a':12,'b':22,'c':55}
func(**l1)
{'a': 12, 'b': 34}
{'a': 12, 'b': 22, 'c': 55}
*args
直接传入列表数据和 *[ 列表 ] 的结果是一样的。都能输出成元祖
def liebiao(*args):
print(args) liebiao(1,2,3,4,5)
liebiao(*[1,2,3,4,5]) (1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
**kwargs
接受的是按照关键字传参的值或者给字典加** 都能使结果组织成一个字典
def zidian(**kwargs):
print(kwargs) zidian(**{'name':'alex','age':1000})
zidian(name = 'tom',age = 1000) {'name': 'alex', 'age': 1000}
{'name': 'tom', 'age': 1000}
day9.初识函数的更多相关文章
- 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 ...
随机推荐
- windows server 2008开启共享文件设置
之前设置过共享文件,将共享文件映射成磁盘,重新去设置另外服务器的时候,又到网络上找,特此记录 设置网络共享需要开启的服务如下: 以下服务都相关,需要全部开启后才能保证共享正常:1,UPnP Devic ...
- maven:打包时报错,报’找不到符号’
参考文章:https://www.cnblogs.com/kelly-one/p/7349930.html 问题描述: 工程开发调试都没有问题,就是不能导出WAR包,用mvn clean packag ...
- python学习第9-10天,函数。
函数初识 为什么要使用函数? 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 函数的定义与 ...
- 二进制补码除法——计算机底层整数除法模拟之Java实现
前面讲到布思算法的计算机底层模拟的时候,我们是借助于一个可以储存.表示任意N位的二进制补码的BinaryQueue实现的,现在我们模拟计算机底层整数除法还是要借助于它: BinaryQueue类代码: ...
- 软件测试-历史bug回顾(持续更新~)
1.第一次编写程序的时候非常不容易看出的错误就是 = 和 == 的区别. 赋值符号,判断符号之间有着天差地别.导致一直循环错误,一直苦苦找寻愿意无果,一步步看代码解决. 2.对于终结条件判断不是很清楚 ...
- XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。" "根据验证过程,远程证书无效。"
XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系." "根据验证过程, ...
- confluence搭建破解及汉化教程
注:本文参考了 < confluence搭建破解及汉化教程 > 本文是在yum环境搭建好,且可用联网的前提下进行的实际操作并作记录的. 关于yum本地环境搭建可以参考此文:<Cen ...
- Confluence 6 那些文件需要备份
备份整个 home 目录是最安全的选项.但是,有很多目录是在 Confluence 启动的时候创建的并且也是可以忽略的.不管那些文件夹可以忽略,下面的文件夹必须进行备份才能回复: <conf-h ...
- day34 基于TCP和UDP的套接字方法 粘包问题 丢包问题
TCP 基于流的协议 又叫可靠性传输协议 通过三次握手 四次挥手 来保证数据传输完毕 缺点效率低 正因为是基于流的协议 所以会出现粘包问题粘包问题:原因一:是应为数据是先发送给操作系统,在操作系统中有 ...
- MySql在windows上的安装
知乎安装教程 csdn安装教程 一.官网下载 ZIP Archive 内的软件包,mysql-xxx-win64.zip. 二.新建 MySQL 文件夹,解压缩下载包,进入文件夹(mysql-8.0. ...