现在的位置: 主页 > 企业简介 > 文章列表

Python编程之--------函数

作者:沈阳市沈河区金瑞龙美术社 来源:www.jrlgg.com 发布时间:2017-09-06 13:23:04
 

Python编程之--------函数 一、函数式编程之发送邮件

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

def mails():

msg = MIMEText('邮件内容', 'plain', 'utf-8')

msg['From'] = formataddr(["Python爱好者",'zypython@126.com'])

msg['To'] = formataddr(["来自Python官网",'6666633xxx@qq.com'])

msg['Subject'] = "主题"

server = smtplib.SMTP("smtp.126.com", 25)

server.login("zypython@126.com","密码")

server.sendmail('zypython@126.com', ['6666633xxx@qq.com',], msg.as_string())

server.quit()

mails()

函数的相关知识点:

1、def定义函数的关键字

2、函数名,后面通过函数名调用该函数

3、函数声明,不自动执行;调用后才执行

4、函数的参数

5、函数的返回值

一、函数的返回值:

1、如果函数体中没有定义返回值动作语句,那么函数默认返回的结果为none

2、如果有返回值可以将返回值赋值给某个变量

二、函数之普通参数

参数:

普通参数

默认参数

动态参数

普通参数:形式参数(形参)和实际参数(实参)

#形式参数(形参)

#实际参数(实参)

参数可以有N个,并且传入指定个数的参数

有如下函数email,其中括号中的message为形式参数,形式参数可以随便定义,而调用函数的时候传入的参数为实际参数,即实参(email("CPU报警"))

def email(message):

msg = MIMEText('message', 'plain', 'utf-8')

msg['From'] = formataddr(["python爱好者",'zhangyun@opark.com'])

msg['To'] = formataddr(["走人",'645580389@qq.com'])

msg['Subject'] = "主题"

server = smtplib.SMTP("smtp.qq.com", 25)

server.login("zhangyun@opark.com","roots@123")

server.sendmail('zhangyun@opark.com', ['645580389@qq.com',], msg.as_string())

server.quit()

email("CPU报警")

三、函数之默认参数

1、不传值则用默认值

2、默认参数必须放在参数列表的最后

3、默认参数也可以有多个

示例:

def email(message,subject="监控报警系统"):

msg = MIMEText('message', 'plain', 'utf-8')

msg['From'] = formataddr(["python爱好者",'zhangyun@opark.com'])

msg['To'] = formataddr(["走人",'645580389@qq.com'])

msg['Subject'] = "主题"

server = smtplib.SMTP("smtp.qq.com", 25)

server.login("zhangyun@opark.com","roots@123")

server.sendmail('zhangyun@opark.com', ['645580389@qq.com',], msg.as_string())

server.quit()

email("CPU报警",subject="监控报警系统")

email("硬盘报警",subject="生产业务系统")

email("CPU报警")

以上函数email(message,subject="监控报警系统")参数中subject="监控报警系统"为默认参数,在调用时,放在最后,默认参数放在最后,即email("CPU报警",subject="监控报警系统");也可以初始化默认参数:email("硬盘报警",subject="生产业务系统"),此时原来函数中定义的subject的值将被"生产业务系统"覆盖;调用函数时默认参数也可以不用传值:email("CPU报警")

四、动态参数(一)(传入单值构造成元组)

def func(*args):

pass

1、接收多个参数

2、内部自动构造元组

3、如果穿的序列,在序列前加星号(*),可以避免再构造元组,即穿进去是什么,就输出什么

示例代码如下:

li_list = [11,22,33,44,55]

li_tuple = ('a','b','c','d')

def func(*args):

print args

print "########这里是分割线#####"

func(123)

func("abdcdefg")

func(li_list)

func(li_tuple)

func(*li_list)

func(*li_tuple)

输出结果:

(123,)

########这里是分割线#####

('abdcdefg',)

########这里是分割线#####

([11, 22, 33, 44, 55],)

########这里是分割线#####

(('a', 'b', 'c', 'd'),)

########这里是分割线#####

(11, 22, 33, 44, 55)

########这里是分割线#####

('a', 'b', 'c', 'd')

########这里是分割线#####

如果要获取传入参数的值,可以通过参数下标来获取:

示例代码如下:

li_list = [11,22,33,44,55]

li_tuple = ('a','b','c','d')

def func(*args):

print args[0]

print "########这里是分割线#####"

func(123)

func("abdcdefg")

func(li_list)

func(li_tuple)

func(*li_list)

func(*li_tuple)

123

########这里是分割线#####

abdcdefg

########这里是分割线#####

[11, 22, 33, 44, 55]

########这里是分割线#####

('a', 'b', 'c', 'd')

########这里是分割线#####

11

########这里是分割线#####

a

########这里是分割线#####

四、动态参数(二)(传入的参数为字典的数据结构)

示例代码如下:

dic ={'k1':123,'k2':321,'k3':431}

def func(**kargs):

print kargs

print "######这里是分割线######"

func(k1=123)

func(k2=321)

func(**dic)

输出结果:

{'k1': 123}

######这里是分割线######

{'k2': 321}

######这里是分割线######

{'k3': 431, 'k2': 321, 'k1': 123}

######这里是分割线######

五、动态函数(三)(同时传入单值和双值,分别构造成元组和字典)

def func(*args,**kwargs):

print args

print kwargs

print "#########这里是分割线#########"

func(11,22,33)

func(k1=123,k2=999)

func(11,22,33,k1=123,k2=999)

输出结果:

(11, 22, 33)

{}

#########这里是分割线#########

()

{'k2': 999, 'k1': 123}

#########这里是分割线#########

(11, 22, 33)

{'k2': 999, 'k1': 123}

#########这里是分割线#########

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站开发 https://www.feimao666.com

  • 上一篇:互联网产品设计的12个理念
  • 下一篇:最后一页
  •