Python学习(二):函数入门
1、函数代码格式:
def 函数名(): 函数内容 执行函数:函数名()
2、代码举例:
#!/usr/bin/env python #coding=utf-8 #定义函数 def Func1(): a = 1 b = 2 print(a+b) #执行函数 Func1() 执行结果:3
3、函数返回值:
#!/usr/bin/env python #coding=utf-8 #导入邮件模块 import smtplib from email.mime.text import MIMEText from email.utils import formataddr #定义发邮件函数 def SendMail(): #定义默认发送结果参数为True SendResult = True #异常处理 try: #邮件头设置 SendMailMsg = MIMEText('这是一个邮件','plain','utf-8') SendMailMsg['From'] = formataddr(['Dukuan','邮箱账号']) SendMailMsg['To'] = formataddr(['DK','接收账号']) SendMailMsg['Subject'] = '发送主题' #邮件服务器设置 MailServer = smtplib.SMTP(') MailServer.login('邮箱账号','邮箱密码') MailServer.sendmail('邮箱账号',['接收账号',],SendMailMsg.as_string()) MailServer.quit() except Exception: #代码执行错误赋值False给SendResult SendResult = False #返回SendResule值 return SendResult #执行函数,接收函数返回值 SendResult = SendMail() if SendResult: print("发送成功") else: print("发送失败")
代码示例
注意:return后面如果有代码不执行,return终结函数。
4、函数参数:
4.1 普通参数
#!/usr/bin/env python #coding=utf-8 #导入邮件模块 import smtplib from email.mime.text import MIMEText from email.utils import formataddr #定义发邮件函数,且定义ReciverMail参数 def SendMail(ReciverMail): #定义默认发送结果参数为True SendResult = True #异常处理 try: #邮件头设置 SendMailMsg = MIMEText('这是一个邮件','plain','utf-8') SendMailMsg['From'] = formataddr(['Dukuan','发件邮箱']) SendMailMsg['To'] = formataddr(['DK',ReciverMail]) SendMailMsg['Subject'] = '发送主题' #邮件服务器设置 MailServer = smtplib.SMTP(') MailServer.login('发件邮箱','密码') MailServer.sendmail('发件邮箱',[ReciverMail,],SendMailMsg.as_string()) MailServer.quit() except Exception: #代码执行错误赋值False给SendResult SendResult = False #返回SendResule值 return SendResult #执行函数,将SendMail里面的内容赋值给ReciverMail SendResult = SendMail('参数') if SendResult: print("发送成功") else: print("发送失败")
4.2 默认参数
默认参数就是在定义函数参数时加一个默认值,执行函数时可不赋值,赋值时就会覆盖默认值。
#!/usr/bin/env python #coding=utf-8 def FuncOne(arg1,arg2=666): return arg1,arg2 Result = FuncOne(123,789) print(Result)
4.3 指定参数
执行函数赋值时加上参数名直接给对应的参数赋值。
#!/usr/bin/env python #coding=utf-8 def FuncOne(arg1,arg2=666): return arg1,arg2 Result = FuncOne(arg2=123,arg1=789) print(Result)
4.4 动态参数
一个*号是元组,两个参数字典,函数动态参数赋值时顺序保持一致。
#!/usr/bin/env python #coding=utf-8 def FuncOne(*arg1,**arg2): return arg1,arg2 Result = FuncOne(1,2,3,4,5,6,7,a=1,b=2,c='dd') print(Result)
也可直接将列表、元组和字典赋值给动态参数,但是赋值时要加*或**,否则会全部赋值给元组参数
#!/usr/bin/env python #coding=utf-8 def FuncOne(*arg1,**arg2): return arg1,arg2 #l = (1,2,3,4,5,6,7,) l = [1,2,3,4,5,6,7,] d = {'a':'a','b':'b',} Result = FuncOne(*l,**d) #Result = FuncOne(1,2,3,4,5,6,7,a=1,b=2,c='dd') print(Result) #注意:如果赋值给元组参数时,赋值前面不加*号,会将列表l当做一个值赋值给元组参数
4.5 使用动态参数实现字符串格式化
#!/usr/bin/env python #coding=utf-8 StrOne = "{} 在 {}" l = ['dk','BJ'] Res = StrOne.format(*l) #上述方法等同于Res = StrOne.format('dk','BJ') print(Res) #打印结果为"dk 在 BJ" StrTwo = "{name} 在 {city}" d = {'name':'dk','city':'BJ'} Res = StrTwo.format(**d) #上述方法等同于Res = StrTwo.format(name='dk',city='BJ') print(Res) #打印结果为"dk 在 BJ"
5、lambda表达式:
#!/usr/bin/env python #coding=utf-8 LamOne = lambda a:a+1 Res = LamOne(7) print(Res)
相当于创建一个函数,a是形式参数,a+1是函数内容,执行时将7赋值给a,然后返回a+1的值
6、内置函数:
内置函数: help() 查看帮助 dir() 列出所有的支持key vars() 列出所有的支持key和值 type() 查看类型 import temp 导入模块 reload(temp) id() 查看id abs() 取绝对值 bool() 布尔值 divmod(7,10) 得到的结果是0 7 divmod 是7除以10等于0.7 0代表结果的整数,7代表余数 sum() 统计结果 pow(2,10) 2的十次方 all() 所有为真返回真 any() 有一个为真返回真 print all([1,2,3,4]) -- True print any([1,0,0,0]) -- False chr() 查看acsll码对应的字符串 ord() 查看字符串对应的ascll码 hex() 16进制 oct() 8进制 bin() 2进制 round() 四舍五入 floor() 取整,需要import math sqrt() 开根号
map表达式: map(函数,序列) map是将值赋值给函数 例如: li = [10,20,30] print(map(lambda arg:arg+100,li)) 分别将li的10 20 30 赋值给函数,也就是lambda arg:arg+100 最后输出结果是110 120 130 filter表达式:过滤 li = [10,21,31] def foo(arg): if arg < 22: return True else: return False print(list(filter(foo,li))) 结果是10 21,将li序列的值赋值给foo函数,如果返回真则打印。 zip表达式: a = [1,2,3,4] b = ['d','a','v','d'] c = [1,2,3,54] print zip(a,b,c) 结果[(1, 'd', 1), (2, 'a', 2), (3, 'v', 3), (4, 'd', 54)] 将他们同位都合并成组,如果有一个集合的值少于其他集合,那么以集合少的为准 random.random() 产生随机数 random.randint(1,2) 产生1和2其中一个 random.randrange(1,10)产生1-9其中一个
其他函数
Python学习(二):函数入门的更多相关文章
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- Python进阶(二)----函数参数,作用域
Python进阶(二)----函数参数,作用域 一丶形参角度:*args,动态位置传参,**kwargs,动态关键字传参 *args: 动态位置参数. 在函数定义时, * 将实参角度的位置参数聚合 ...
- python学习8—函数之高阶函数与内置函数
python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...
- Python学习笔记 - 函数参数
>>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...
- 从0开始的Python学习007函数&函数柯里化
简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...
- python学习Day10 函数的介绍(定义、组成、使用)
今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...
- Python学习之函数参数
上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...
- Python学习笔记—函数
函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...
随机推荐
- Nova控制节点集群
#Nova控制节点集群 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##Nova控制节点集群 # control ...
- 布局神器display:flex
2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持. flex浏览器支持 一.Flex布局是什么? Flex是Flexi ...
- PHP防XSS 防SQL注入的代码
作为开发人员时刻要记住一句话,永远不要相信任何用户的输入!很多时候我们的网站会因为我们开发人员写的代码不够严谨,而使网站受到攻击,造成不必要的损失!下面介绍一下如何防止SQL注入! 这里提供了一个函数 ...
- bitcms内容管理系统 3.1版源码发布
开源bitcms内容管理系统采用ASP.NET MVC5+MySql的组合开发,更适应中小型系统低成本运行. bitcms的主要功能 1.重写了APS.NET MVC的路由机制.bitcms使用路由参 ...
- 大数据学习(1)Hadoop安装
集群架构 Hadoop的安装其实就是HDFS和YARN集群的配置,从下面的架构图可以看出,HDFS的每一个DataNode都需要配置NameNode的位置.同理YARN中的每一个NodeManager ...
- slurm-16.05.3任务调度系统部署与测试(1)
1.概述2.同步节点时间3.下载并解压文件4.编译安装munge-0.5.125.配置munge6.编译安装slurm-16.05.37.配置slurm8.配置MySQL数据库环境9.启动slur ...
- CentOS6.9-zabbix3.2启动失败原因及页面没有mysql选择项
环境内核信息: [root@zabbix- ~]# uname -a Linux lodboyedu- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 ...
- Xamarin.iOS + MvvmCross: UIPickerView data binding, SelectedItemChanged event
UI initialization: _pickerView = new UIPickerView(); _pickerView.ShowSelectionIndicator = true; _pic ...
- Cairo-Dock 系统关机无效
正文 背景 Cairo-Dock 设置为开机自己主动启动后.系统菜单条里的关机选项就无效了,命令行里能够使用命令关机. 搜索过程 这次google找到的结果让我非常失望,于是仅仅好百度了. 在百度贴吧 ...
- 基于lucene.net 和ICTCLAS2014的站内搜索的实现1
Lucene.net是一个搜索引擎的框架,它自身并不能实现搜索.须要我们自己在当中实现索引的建立,索引的查找.全部这些都是依据它自身提供的API来实现.Lucene.net本身是基于java的,可是经 ...