码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数的定义与使用

时间:2016-02-05 19:02:24      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

一.函数定义与基本应用

#!/usr/bin/env python3

‘‘‘
#函数的定义、最基本的应用
def MyFirstFunction():
a = 1+2
print(a)

MyFirstFunction() #函数的执行
First = MyFirstFunction #函数可以指向一个对象
First()
‘‘‘

‘‘‘
#函数的返回值(return)、我们可以根据返回值来判断程序是否执行成功;如何函数中没有用retrun、返回值为None
#邮件发送实例
#函数中遇到retrun值后,后面的代码就不在执行了

#retrun的作用:1.返回值,2.终端程序


import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def SendMails():
ret = True
try:
msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)
msg[‘From‘] = formataddr(["杜俊朋",‘hnnxdjp@163.com‘])
msg[‘To‘] = formataddr(["ooxx",‘694484533@qq.com‘])
msg[‘Subject‘] = "主题"

server = smtplib.SMTP("smtp.163.com", 25)
server.login("hnnxdjp@163.com", "Mabudai198")
server.sendmail(‘hnnxdjp@163.com‘, [‘694484533@qq.com‘,], msg.as_string())
server.quit()
except Exception:
ret = False

return ret

result = SendMails()
#print(result)
if result:
print(‘邮件发送成功‘)
else:
print(‘邮件发送失败‘)
‘‘‘


‘‘‘
#函数中遇到retrun值后,后面的代码就不在执行了
def show():
print(‘a‘)
if 1==1:
return [1,2,3]
print(‘b‘)

ret = show()
‘‘‘

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

#user是形式参数、简称形参
#SendMails(‘694484533@qq.com‘) 中传入的参数是实际参数、简称实参
def SendMails(user):
ret = True
try:
msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)
msg[‘From‘] = formataddr(["name",‘hello@163.com‘])
msg[‘To‘] = formataddr(["ooxx",‘asb@qq.com‘])
msg[‘Subject‘] = "主题"

server = smtplib.SMTP("smtp.163.com", 25)
server.login("hello@163.com", "password")
server.sendmail(‘hnnxdjp@163.com‘, [user,], msg.as_string())
server.quit()
except Exception:
ret = False

return ret


result = SendMails(‘694484533@qq.com‘)
#print(result)
if result:
print(‘邮件发送成功‘)
else:
print(‘邮件发送失败‘)


二.函数的参数
#!/usr/bin/env python3
#函数中定义几个形参、就要传入几个实参,否则会报错

#无参数
def Myfun():
a = ‘hello baby‘
print(a)
Myfun()

#一个参数
def Myfun2(comm):
a = comm
print(a)
Myfun2(‘hello baby‘)


#两个参数
def Myfun3(s1,s2):
a = s1
b = s2
print(a+b)
Myfun3(10,20)


#默认参数,就是给形参设置一个默认值,如果在调用的时候不传参数,就调用默认参数
#注意,默认参数必须放在形参的最后
def Myfun4(a,b=10):
c = a + b
print(c)
Myfun4(10)
Myfun4(10,20)


#指定参数,实参可以不按顺序传入
def Myfun5(a,b):
print(a,b)
Myfun5(b=10,a=20)



#动态参数

#一个 * 号表示 把传入的所有参数转为元组
def Myfun6(*arg):
print(arg,type(arg))
Myfun6(1,2,3)

#两个 * 号表示 把传入的所有参数转为字典
#一个*的参数放在前面,两个*的放在后面,传入实参的时候也要遵循这个规则
def Myfun7(**arg):
print(arg,type(arg))
Myfun7(a=1,b=2,c=3)


#三个 * 号表示可以接受所有类型的元素
def Myfun8(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))
#传值方法一:
Myfun8(1,2,4,a=1,b=2,c=3)

#传值方法二:当给“*args”传值的元素是列表对象时、必须在对象前面加一个*号;当给“**kwargs”传值的元素值字典对象时、必须在字典对象前加两个*号、
flist = [11,22,33,44]
dics = {‘a‘:‘hello‘,‘b‘:‘andy‘,‘c‘:‘rain‘,‘d‘:‘jack‘}
Myfun8(*flist,**dics)

#如果不在对应的对象前面加*号,则把传入的两个对象当作“*args”的值、即元组的元素,而“**kwargs”的值则为空、即字典
Myfun8(flist,dics)



Python函数的定义与使用

标签:

原文地址:http://www.cnblogs.com/RainBower/p/5183189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!