#函数的定义与使用
#函数的定义与使用
#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))