概念:

函数是实现具有特定功能的代码,python中预制了很多内置函数,开发者也可以创建自定义函数。
函数特点:1、隐藏实现功能的细节;2、重用代码;3、提高代码的可读性,便于调试;
函数的定义:
def 函数名(形式参数1,形参2,形参n):
要运行的代码(函数体)
return 输出的数据(返回值)

习题

1、定义一个函数,实现在控制台打印3遍唐诗《绝句》,并使用50个星(*)号分隔每一次打印结果

1、定义函数名为ancient_poetry的函数
2、函数体内:向控制台输出唐诗《绝句》
3、函数体内:向控制台输出50个*号分隔符
4、调用三次函数名为ancient_poetry的函数

def ancient_poetry():
    print("鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。")
    for i in range(0,50):
        print("*",end='')

ancient_poetry()
print('')
ancient_poetry()
print('')
ancient_poetry()

2、定义一个函数,里面包含多个形参,并使用50个星(*)号分隔每一次打印结果

def ancient_poetry(poetry_name,is_show_title,is_show_dynasty):
    if poetry_name=="绝句":
        if is_show_title == True:
            print("绝句 杜甫")
        if is_show_dynasty == True:
            print("唐朝")
        print("两个黄鹂鸣翠柳,一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。")
    elif poetry_name=="清平调·其一":
        if is_show_title == True:
            print("清平调·其一 李白")
        if is_show_dynasty == True:
            print("唐朝")
        print("云想衣裳花想容,春风拂槛露华浓。 若非群玉山头见,会向瑶台月下逢。")

    for i in range(0,50):
        print("*",end='')

ancient_poetry("绝句",True ,True)
print('')
ancient_poetry("清平调·其一",True, True)
print('')

3、定义一个函数content()如下所示,当执行content(9,2)时,运行结果为()

def content(a,b):
    if a >0 and b >0:
        print(a%b)   #取a/b的余数
    else:
        print(a+b)

content(9,2)

content(-1,3)

4、定义一个函数,向函数内传入形参num, num1, num2,如果num小于100,则计算num1 和 num2的积并打印;否则计算num1和num2的和,然后打印输出;

1、定义函数名为oper的函数
2、当num值小于100时,求两数的乘积,反之求两数的和
3、调用函数,向函数内传入1314, 52, 0和5, 2, 0两组数据测试结果

def numbers(num,num1,num2):
    if num <100:
        print(num1*num2)
    else:
        print(num1+num2)

numbers(99,2,3)

5、美元与人民币汇率计算
1、函数的返回值、
2、参数是函数的输入数据,而返回值则是函数的输出结果
3、return不是必须的,但是return语句执行后,函数将中断执行
4、程序需要输出,可以用return + 对应的数据(result)进行返回,在外侧使用变量r进行接收即可。
5、实际开发中,最好保证return在函数的最后一行


def calc_exchange_rate(amt,source,target):
          #人民币与美元汇率 :6.3486人民币 ≈  1美元
          # 6.3486:1
    if source == "CNY" and target == "USD":
        result = amt /6.3486
        print("汇率计算成功")
        return result

r = calc_exchange_rate(100, "CNY", "USD")
#r = calc_exchange_rate(100, "EUR", "USD") 如果实参"CNY"换成未定义的"EUR"(欧元),打印结果会为None,none在pythoon中代表不存在的含义
print(r)

6、"""定义一个函数,向函数内传入形参username,password,当username值为josh且password值为字符串josh123时,返回“登录成功”;否则返回“请重新登录”

1、定义函数login
2、if语句判断用户名和密码是否为字符串i
mooc和123456
“”"

def login(username,password):
    if username == "josh" and password == "josh123":
        return "登录成功"
    else:
        return "请重新登录"
login_1=login("josh","josh123")
login_2=login("josh1","123456")

print(login_1)
print(login_2)

7、函数使用技巧1-1:设置参数默认值:只需要在形参后增加 “=具体值”即可;

def calc_exchange_rate(amt, source, target='USD'):
        #target='USD' 将USD设置为默认参数值

# 人民币与美元汇率 :6.3486人民币 ≈  1美元
# 6.3486:1
    if source == "CNY" and target == "USD":
        result = amt / 6.3486
        print("美元汇率计算成功")
        return result
#7.241人民币 ≈  1欧元
#7.241 :1
    elif source == "CNY" and target == "EUR":
        result = amt /7.241
        print("欧元汇率计算成功")
        return result

r = calc_exchange_rate(100, "CNY")
# r = calc_exchange_rate(100, "EUR", "USD") 如果实参"CNY"换成未定义的"EUR"(欧元),打印结果会为None,none在pythoon中代表不存在的含义
print(r)

r1 = calc_exchange_rate(100,"CNY","EUR")
print(r1)

8、函数使用技巧1-2:(关键字传参),以形参形式传参也叫关键字传参,

#2、以形参形式传参(也叫关键字传参):
# 定义一个体检的函数,里面包含姓名,年龄,身高等;
'''
def health_check(name,age,height,weight.5,hr,hhp,lbp,glu):
health_check("josh",25,175,80.5,70,120,80,4.3)
此种定义方式,如果单行看,根本无法得知传递的health_check("josh",25,175...)为何物,所以需要使用以形参形式传参传参
而在一个函数内包含如此多的形参时,最好的方式是使用字典
'''
def health_check(name,age,height,weight,hr,hhp,lbp,glu):
    print("您的健康状况良好")
health_check("josh",25,175,80.5,70,120,80,4.3)
health_check(name="josh",age="18",height=170,weight=80.5,hr=70,hhp=120,lbp=80,glu=4.3)


9、函数使用技巧1-3:以混合形式传参

#3、混合形式传参
def health_check1(name,age,*,height,weight,hr,hhp,lbp,glu):
    #*代表之后的所有参数传参时必须使用关键字传参
    print("您的健康状况良好")

'''health_check1(name="josh", age="25", 170, weight=80.5, hr=70, hhp=120, lbp=80, glu=4.3)
    注释:这段代码表示,如传参时,age后的height 170不使用关键字传参就会报错,程序无法执行'''
health_check1(name="josh",age="18",height=170,weight=80.5,hr=70,hhp=120,lbp=80,glu=4.3)
    #按关键字传参则执行成功

10、’’'定义info函数,使用format格式化字符串向控制台输出"python-程序员的梦工厂出生于2021年1月"

1、使用format格式化字符串向控制台输出"-程序员的梦工厂出生于2021年1月"
2、调用函数,向函数内传入(程序员的梦工厂,2013年8月)
3、在函数传参时,*号之后的所有参数必须使用关键字传参
‘’’

def info(*,name="python",content,time):

    print("{p1}-{p2}出生于{p3}".format(p1=name,p2=content,p3=time))
info(content="-程序员的梦工厂出生于",time="2021年1月")

11、random生成随机数方法使用

import random

r = random.randint(1,16)
print(r)

更多推荐

Python函数练习题