函数的基础知识整理

 
 
#函数的定义与使用
#函数的定义与使用
#1.无参数的函数:
#定义函数,并不会执行;
def hello():
    #函数体
    print('hello')
#调用函数
hello()
print(len('hello'))
#2.带有参数的函数
def fun1(name):
    #name='xijiao'
    #定义函数时的变量称为形式参数,其变量名可以随便任意起;
    print('hello %s'%(name))
fun1('xijiao')         #在调用函数时的参数称为实际参数,此参数是必须要存在的。


#函数返回值与return语句
#调用函数时一般有返回值;没有返回值时,在python中默认返回值为None
def hello():
    print('hello')
res=hello()     #将函数调用赋给一个变量
print(res)      #打印该变量

def hello():
    #return 返回时返回的是的表达式或者变量
    return 'hello'
res=hello()
print(res)


#return的应用
#随机生成20个学生成绩,判断这20个学生成绩的等级:
import random       # 倒入random模块,这是一个随机生成工具
def level(score):   #定义带有参数成绩的等级函数
    if 90<score<=100:
        return 'A'  #return返回'A'
    elif 80<score<=90:
        return 'B'
    elif 70<score<=80:
        return 'C'
    else:
        return 'D'
def main():           #定义主函数
    for i in range(20):
        score = random.randint(1,100)   #随机生成20个1-100的整数成绩
        print('成绩为%s:等级为%s'%(score,level(score)))
main()              #执行主函数

scores=[]             # 定义一个空列表
for i in range (20):  #随机生成所有的成绩
    scores.append(random.randint(1,100))
for score in scores:  #根据所有的成绩来判断等级
    print('成绩为%s,等级为%s'%(score,level(score)))

#None的解释:
#在C中:布尔值为ture,false,但是在python中,布尔值为Ture,False
#一般情况下,当没有返回值的时候,我们可以将其定义为None,或者在C或者java中,空可以定义为null,nil,undefined
var=None
print(type(var))        #<class 'NoneType'>
a=print()
print(a)                #打印结果为None
#当函数如果有返回值,可以讲函数赋值给一个变量:
m=max([1,2,3,4,5])      #将列表的最大值赋给m
print(m)                #打印结果为5

#返回值有多个时
def fun(a):              #a=[1,34,56,24,99,76,4]
    #接收一个列表,求该列表的最大值,最小值和平均值
    max1=max(a)
    min1=min(a)
    avg1=sum(a)/len(a)
    #在python函数中,只能返回一个值;
    #如果一定要返回多个值,那么就回把返回的值封装为一个元组数据
    return max1,min1,avg1
variables=fun([1,34,56,24,99,76,4])
print(variables,type(variables))  #(99, 1, 42.0) <class 'tuple'>,它的类型是一个元组

#形参——必选参数
def add(x,y,z):     #在这里x,y,z是形式参数
    return x+y+z
print(add(3,4,5))   #而这里的3,4,5是实际参数,即x=3,y=4,z=5
#形参——默认参数
#如果实参只有一个,x=...,y=2
#如果实参只有 两个,x=2,y=3
def mypow(x,y=2):
    return x**y
print(mypow(2))   #实参只有一个,x=2,,默认参数y=2,所以求得2**2=4
print(mypow(2,3)) # 实参有两个,x=2,y=3,此时打印结果为2**3=8

#print内置函数,默认的end='\n',进行换行,当然,我们也可以指定end的值
print('hello')
print('world')
print('hello',end=',')
print('world')

#形参--可变参数
#可变参数,*变量名;
#*args,args实质上是一个元组:
def mysum(*args):
    print(args,type(args))   #(1, 2, 3, 5, 4) <class 'tuple'>
    return sum(args)
print(mysum(1,2,3,5,4))

#如果已经存在:列表,但是要把列表的每一个元素作为参数,可以直接*li进行解包
li=range(1,11)
# li=(1,2,3)
# li={1,2,3}
print(mysum(*li))    #*li将列表中的每一个元素拿出来,变为元祖类型


#形参--关键字参数
#**kwargs关键字参数;接受的kwargs是字典类型;
def fun(**kwargs):
    print(kwargs,type(kwargs))   #打印结果为{'a': 1, 'b': 2} <class 'dict'>
fun(a=1,b=2)      #实际参数应该为字典类型
d={
    'a':1,
    'b':2
}
fun(**d)
#<div id=s_tabwidth=100height=200>网页</div>
def make_html(label,value,**kwargs): #(必选参数,默认参数,关键字参数)
    s=''        #定义一个空的字符串
    for k,v in kwargs.items():       #遍历关键字参数里的key-value值
        s+='%s=%s'%(k,v)          #给空的字符串里添加关键字参数的key-value 值
    html='<%s %s>%s</%s>'%(label,s,value,label)
    return html
print(make_html('div','网页',id='s_tab',width=100,height=200))

猜你喜欢

转载自blog.csdn.net/xijiao_jiao/article/details/80228343