Python函数基础(一)

一、函数的定义和调用

  • 说明 :
  1. 函数就是将【一段具有独立功能的代码块】整合到一个整体并命名,在需要的位置【调用这个名称】即可
  2. Python 中有很多内置函数,如 max 、 min 这些是由 python 开发者预先定义好的
  3. python 还允许开发者自己定义函数
  4. 函数和方法是一个东西
  5. 函数是一种结构,用于将代码封装起来,以方便在其他地方调用
  • 作用
  1. 函数能够让代码看起来更加清晰,整洁,减少代码的冗余
  2. 一次封装,随处调用
1.1 基础认知
  1. 语法格式
"""
1. def 关键字: python 解释器只要看到 def ,就真的在定义函数
2. def 关键字后面跟的是函数的名称
3.函数名称后面一定要跟上 ()
4. 小括号后面加上 :
5. 冒号后面跟的是函数体(函数封装的代码,也就是调用函数时执行的代码)
6. 调用函数: 函数名称() ,调用函数时,函数体就会执行
"""
def 函数名(参数):
	代码1
	代码2
	....
函数名(参数)  # 调用函数,函数体执行

# 注意
1. 不同的需求,参数可有可无
2. 在 Python 中,函数必须“先定义后使用”
1.2 应用练习
# 1. 定义一个函数,名称叫做 f1 ,作用: 输出一句话 '我胡汉三又回来了'
def f1():
    print('我胡汉三又回来了')
f1()

# 2. 定义一个函数,名称: f2,作用: 输出 'hello world'
def f2():
    print('hello world')
f2()

# 3. 定义一个函数, 名称: f3, 作用: 输出 1-10 之间的数字
def f3():
    for i in range(11):
        print(i)
f3()

# 4. 定义一个函数, 名称: f4, 作用: 输出 1-10 之间的所有偶数
def f4():
    for i in range(11):
        if i % 2 == 0:
            print(i)
f4()

# 5. 定义一个函数, 名称: f5, 作用: 遍历输出一个列表中的所有元素
def f5():
    list1= [1,5,6,14,66,100]
    for i in list1:
        print(i)
f5()

# 6. 定义一个函数, 名称: f6, 作用: 使用推导式生成一个列表,列表元素为 10-100 之间的整数
def f6():
    list1 = [i for i in range(10,101)]
    print(list1)
f6()

二、函数的参数和返回值

2.1 基础认知
  1. 函数参数
"""
1. (a,b) 表示当前函数有两个参数,调用函数的时候,给这两个参数赋值
2. a 和 b 这两个参数变量在函数体内可以使用
3. 定义函数时 () 中的参数叫做 形式参数 = 形参, 形参的名称是随意的
4. 调用函数时 () 中传递的数据叫做 实际参数 = 实参
5. 实参会按照顺序赋值给对应的形参
"""

# 举例
def my_num(a,b):
    result = int(a) + int(b)
    print(result)

n1 = input('数字1:')
n2 = input('数字2:')
my_num(n1,n2)

# 运行结果:
数字1:20
数字2:30
50
  1. 函数返回值
  • 作用
    • 函数调用后,返回需要的计算结果
  • 语法格式
return 表达式
  • 举例
"""
1. 函数内部通过 return 关键字向函数外部返回内容,这个内容就叫做函数返回值
2. 调用函数时,声明一个变量用来接收函数的返回值
"""
def my_sum(num1,num2):
    result = num1 + num2
    return result
# 使用变量保存函数返回值
res = my_sum(10,20)
print(res) # 30

# 1. 如果一个函数中有两个 return ,程序如何执行?
"""
只执行第一个 return,因为 return 可以退出当前函数,导致 return 下方的代码不执行
"""
def f1():
    return 1
    return 2

res = f1()
print(res)  # 1

# 2. 如果一个函数返回多个值,该如何书写?
"""
return 返回多个数据的时候,默认是元组类型
return 后面可以是列表、元组、字典,以返回多个值
"""
def f1():
    return 1, 2

res = f1()
print(res)  # (1, 2)
2.2 应用练习
"""
1、定义一个函数
名称:f1
参数:1个,为想要再函数中输出的内容
作用:输出传入的参数
"""
def f1(name1):
    print(name1)
name = input('输入内容:')
f1(name)

"""
2、定义一个函数
名称:f2
参数:1个,表示要输出的内容
作用:输出传入的内容+......
"""
def f2(name1):
    print(name1+'.....')
name = input('输入内容:')
f2(name)

"""
3、定义一个函数
名称:f3
参数:2个,表示要输出的数字的范围,第一个参数表示起始值,第二个参数表示结束值
作用:输出两个参数规定的范围之间的数字
"""
def f3(start,end):
    for i in range(start,end):
        print(i)
num1 = int(input('输入数字:'))
num2 = int(input('输入数字:'))
f3(num1,num2)

"""
4、定义一个函数
名称:f4
参数:3个数字
作用:输出三个数的平均分
"""
def f4(num1,num2,num3):
    result = (num1 + num2 + num3) / 3
    print(f'平均分:{result}')

num1 = int(input('输入分数:'))
num2 = int(input('输入分数:'))
num3 = int(input('输入分数:'))
f4(num1,num2,num3)

"""
5、定义一个函数
名称 f5
参数:1个列表
作用:遍历输出一个列表中的所有元素
"""
def f5(list1):
    for i in list1:
        print(i)
f5(['张三','小明','小红','老王'])

"""
6. 定义一个函数
名称: strip_space
参数: 要去除空格的字符串
作用: 用于去除字符串的前后空格,并输出
"""
def strip_space(str1):
    print(str1.strip())

strip_space('    hello    ')

三、任务清单

  1. 定义一个函数,接受两个数字作为参数,计算和,并输出
# 要求:函数内部要验证两个参数必须都是数字
def sum1(num1,num2):
    if num1.isdigit() and num2.isdigit():
        print(f'两数之和:{int(num1) + int(num2)}')
    else:
        print('必须都是数字')
num1 = input('请输入数字:')
num2 = input('请输入数字:')
sum1(num1,num2)

"""
运行结果:
请输入数字:1
请输入数字:2
两数之和:3

请输入数字:a
请输入数字:5
必须都是数字
"""
  1. 定义一个函数,接受一个字符串作为参数,将字符串转换为大写并输出
def str_upper(str1):
    print(str1.upper())
str_upper('hello')
"""
运行结果:
HELLO
"""
  1. 定义一个函数,接受两个人的成绩作为参数,比较大小后,输出较大的成绩
# 函数内部要验证传入的成绩必须是数字
def max_score(score1,score2):
    if score1.isdigit() and score2.isdigit():
        if int(score1) > int(score2):
            print(score1)
        else:
            print(score2)
    else:
        print('必须都是数字')

score1 = input('输入成绩:')
score2 = input('输入成绩:')
max_score(score1,score2)

"""
运行结果:
输入成绩:60
输入成绩:90
90

输入成绩:acbc
输入成绩:100
必须都是数字
"""
  1. 定义一个函数,接受用户角色作为参数,根据不同的角色名称,返回不同的权限列表
"""
用户角色=主任,返回权限列表为:[‘添加用户’,‘编辑用户’,‘删除用户’]
用户角色=院长,返回权限列表为:[‘添加用户’,‘编辑用户’,‘删除用户’,‘删除角色’,‘添加角色’,‘编辑角色’]
注意,这里要求函数内部返回一个列表,而不是直接在函数中输出
"""
def user(name):
    list1 = ['添加用户','编辑用户','删除用户']
    list2 = ['添加用户','编辑用户','删除用户','删除角色','添加角色','编辑角色']
    if name == '主任':
        print(f'权限列表:{list1}')
    elif name == '院长':
        print(f'权限列表:{list2}')
    else:
        print('无权限')
name = input('请输入用户名:')
user(name)

"""
运行结果:
请输入用户名:张三
无权限
请输入用户名:主任
权限列表:['添加用户', '编辑用户', '删除用户']
请输入用户名:院长
权限列表:['添加用户', '编辑用户', '删除用户', '删除角色', '添加角色', '编辑角色']
"""
  1. 定义一个函数,接受一个验证码作为参数,输出验证码的比较结果
"""
如果传入的验证码为”csdn“或者"CSDN"或者"Csdn"等
(也就是用户输入验证码的时候,可以随意大小写,验证的时候不区分大小写)
则返回”验证码正确“,否则返回”验证码错误“
"""
def code(num):
    num1 = input('请输入一个验证码:')
    if num.upper() == num1.upper() or num.lower() == num1.lower():
        print('验证码正确')
    else:
        print('验证码错误')

code('csdn')
  1. 定义一个函数,接受一个手机号码作为参数,验证手机号格式并返回
"""    
手机号必须是11位的数字
手机号必须是以 137或156或133 开头
如果符合上面两个要求,返回 True,不符合要求返回 False
"""
def tel_code(tel):
    if len(tel) == 11 and (tel.startswith('137') or tel.startswith('156') or tel.startswith('133')):
        return True
    else:
        return False
tel =input('请输入手机号:')
tel_num = tel_code(tel)
print(tel_num)
  1. 定义一个函数,接受一个颜色名称作为参数,根据颜色对当前页面进行换肤
def is_color(color):
    if color == '红色':
        print('红艳艳')
    elif color == '绿色':
        print('绿油油')
    elif color == '黄色':
        print('黄灿灿')
    else:
        print('还没有设计你想要的皮肤')

color = input('输入一个颜色名称:')
is_color(color)
  1. 定义一个函数,接受两个参数
"""
参数1:为一个字符串
参数2:为一个列表
函数的作用是将字符串插入到列表的末尾,并输出列表
"""
def f1(str1,list1):
    list1.append(str1)
    print(list1)
f1('张三',['老王','老二','法外狂徒'])

"""
运行结果:
['老王', '老二', '法外狂徒', '张三']
"""
  1. 定义一个函数,接受一个字符串作为参数
"""
作用是:
先将字符串转换为大写
再将转换之后的字符串进行翻转
最后再作为函数的返回值返回
"""
def f1(str1):
    str2 = str1.upper()
    str3 = str2[-1::-1]
    return str3
result = f1('abc')
print(result)

"""
运行结果:
CBA
"""
  1. 定义一个函数,接受两个列表作为参数,返回一个字典
"""
一个列表为人名单,如[‘张三’,‘李四’,‘王五’]
一个列表为应发工资,如 [10000,8000,6000]
函数内部将两个列表组成一个如下格式序列并作为函数返回值返回
[
{'name':'张三','salary':10000},
{'name':'李四','salary':8000},
{'name':'王五','salary':6000}
]
"""
def f1(list1,list2):
    list3 = []
    for i in range(len(list1)):
        dict1 = {'name': list1[i],'salary': list2[i]}
        list3.append(dict1)
    return list3

result = f1(['张三','李四','王五'],[10000,8000,6000])
print(result)
# [{'name': '张三', 'salary': 10000}, {'name': '李四', 'salary': 8000}, {'name': '王五', 'salary': 6000}]

CSDN@张浔

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张浔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值