python def的作用-Python函数的说明与运用

Python函数的说明与运用

函数定义:

函数是一组语句的集合,用以实现某一特定功能。函数可简化脚本,函数包括内置函数和自定义函数

自定义函数框架:

在python中使用def可以声明一个函数,完整的函数是由函数名,参数,函数体,返回值。

声明函数的形式如下:def 函数名 (参数)

函数体

return 返回值

注意:参数和返回值不是必须的,当没有设置返回值的时候,该函数的返回值默认是null

函数调用

在python中自定义函数与内置函数调用方法相同,只要使用函数名制定要调用的函数,然后再用函数后加相应的参数即可,如果有多个参数,则不同的参数要以“,”分开。函数调用必须在申明一个函数之后才能调用。

函数中的参数分类

默认参数

在python中,可以在声明函数时,预先为参数设置一个默认值。当调用参数时,如果某个参数,具有默认值,则可以不向函数传递该参数def fun(x=5)

return x**3

print (fun(2))

8

print (fun())

125

指定参数

如果一个函数具有多个参数,并且这些参数都具有默认值,在调用函数的时候,可能第一个参数传递值可以设置def fun(x=1,y=2,z=3):

return(x+y-z)**3

print (fun(2))

1

print (fun(3))

8

print (fun(3,3))

27

动态参数

*默认输入的参数,全部放置在元组中def fun(*arg:)

print (args)

fun (11,22)

(11,22)

**默认输入的参数,全部放置在字典中def fun(**args):

print(args)

fun(k1=11,k2=22)

{k1:11,k2:22}

在同时有一个*和两个*的时候,定义默认参数时一个*一定要在前面def fun(*args,**qwargs):

print(args)

print(qwargs)

fun(22,33,k1=22,k2=33)

(22,33)

{"k2":33,"k1":22}

在python中格式化输出%s与%d,函数中也有格式话输出format()s="i am {0},age{1}".format("alex",18)

s="i am {0},age{1}".format(*["alex",18])

s="i am {name},age{age}".format(name="alex",age=18)

s="i am {0},age{1}".format(**dic)

s="i am alex,age 18" #输出结果

变量的作用域

在python脚本中,不同的函数可以具有相同的参数名,在函数中已经声明过变量名,在函数外还可以继续使用,而在脚本运行过程中,其值并不相互影响

在python中,作用域可以分为内置作用域和全局作用域和局部作用域,内置作用域是python预先定义的,全局作用域是所编写的整个脚本,局部作用域是某个函数内部范围

如果函数中使用函数外的变量,则可以在变量名前使用global关键字def fun(x): #声明一个函数

a=[1] #定义一个名为a的列表

a.append(x)

print(a)

a=[2,3,4] #在函数外定义一个名为a的列表

fun(2)

[1,2]

a #输出a的值

def fun(x): #声明一个函数

global a

return a+x

a=5

fun(3)

8

a=2

fun(3)

5

默认定义的全局变量全部大写,局部变量全部小写

三元计算:

if 1==1:

name="john"

else:

name="hehe"

name="john" if 1==1 else "hehe"

最简单的函数:用lambda表达式

用lambda适用于定义一个小型的函数,在函数中仅能包含单一的参数表达式,而不能包含其他的语句。在lambda中也可以调用其他的函数。def fun():

print ("lambda")

f= lamdba:fun()

f()

lambda

def f1(a1):

return a1+100

f2=lambda a1:a1+100 #lambda参数:函数体

ret=f1(10)

print(ret)

内置函数:

取绝对值def abs()

f=abs(-1)

f=1

判断真假的函数def all() #当all的参数里全部为真时,all()为真,当all里有一个参数为假时,即为假

f= [11,22]

all(f)为turn

f=[11,0]

all(f)为false

def any()

f=[11,0]

any(f)为turn

按照编码,转换字节类型def byte()

n=bytes(s,encoding="utf8")

n=bytes(s,encoding="gbk")

判断对象能不能被调用 如果可以返回Turndef callable()

基于ascii码数字与字母之间的转换def chr() #数字转换字母

def ord() #字母转换数字

随机产生数字 random模块import random

li=[]

for i in range(6):

r=random.randrange(1,5)

if r==2 or r==4

num=random.randrange(0,10)

li.append(str(num))

else:

temp=random.randrange(65,91)

c=chr(temp)

li.append(c)

result = "".join(li)

print(result)def compile() 编译代码

def eval() 接收字符串 将把字符串变成一个表达式执行

S=8*8

ret=eval(s)

print(ret)

64def exec() 执行代码def delattr

getattrdef dict() 字典

def dir() 快速获取对象类提供功能

def divmod(100,10)返回元组 元组的元素为商和元组

def isinstance()判断元素是否属于实例或类

a="li"

r=isinstance(a,str)

print(r)

Turndef filter() #循环第二个参数,让每个循环元素执行函数,如果函数返回值Turn,表示

filter (函数,可迭代的类)

def f2(a):

if a>22:

return True 函数也可以使用lambda表达式写入 比如F2=lambda a: a>33.带入

li=[11,22,33,44,55] filter(lambda a: a>33,li)

ret=filter(f2,li)

print(list(li))def map() #循环第二个参数 让每个元素循环执行 函数fa,返回结果

map(函数,可迭代)

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

def fa(a)

return a+100

result=map(f2,li)

print(result)def float() 将字符串修改成格式化

def format() 字符串格式化

def frozenset() 不可变集合def globals() 获取所有的全局变量

def local() 获取所有的局部变量def hash() 生成哈希值

def id() 查看内存地址

def iter() 创建迭代器

def len() 查看长度def max() 求最大值

def min() 求最小值

def sum() 求和def paw() 平方

t=paw(2,10)

print(t)

1024def reversed() 使可迭代参数翻转

def round(1,8) 使数字四舍五入

2

def slice() 切片的功能

发邮件import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

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

msg["From"] = formataddr(["发件","975910711@qq.com"])

msg["To"] = formataddr(["收件","975910711@qq.com"])

msg["Subject"] = "主题"

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

server.login("1343612327@qq.com","邮箱密码")

server.sendmail("1343612327@qq.com",["975910711@qq.com",],msg.as_string())

server.quit()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值