python基础(六、函数)

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数

函数规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()

  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号 : 起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None

函数格式
def 函数名(参数列表):
    函数体
例

def num(a,b): # a,b 为形参,相当于定义变量名
    result = a + b
    print(result)
    n = a * b
    print(n)
    u = a - b
    print(u)
​
num(4,9)  # 4,9为实参,传入真实的数据,相当于变量值
# 传参 将实参传递给形参的过程叫传参
输出结果

13
36
-5

函数调用

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构

def func():
    print("————请选择————")
    print("余额")
    print("存款")
    print("取款")
    # 遇到return,此函数结束,不会在执行后面的代码
    # return 没有写或者没有写return,返回的结果是none(空值)
    # return 写了值,会返回调用方这个值
    # 如果return写了多个结果,返回给调用方一个tuple(元组),
    return "还有2000" 
    print("789")
no = func()
print(no)
输出结果

————请选择————
余额
存款
取款
还有2000

位置参数

def eat(a,b,c):
    print("拍照")
    print("打开"+ a)
    print("看" + b + str(c) + "照片")
# 系统会按照位置把实参赋值给形参
eat("手机","风景",2)
输出结果:

拍照
打开手机
看风景2照片

关键字传参

def a(b,c):
    print(b,c)
a(c=2,b=1)
输出结果:

1 2

——————————————————————————
混合参数,位置参数必须在关键字参数前面,要不然会报错

def a(b,c):
    print(b,c)
​
a(1,c=10)
输出结果:

1 10

默认值参数

def stu(name,age,sex="node"):
    print("信息")
    print(name,age,sex)
stu("蜡笔小新",4)
stu("蜡笔小新",4,"男")
输出结果:

信息
蜡笔小新 4 node
信息
蜡笔小新 4 男

动态接收位置参数

在参数位置用*表示接收任意参数

def eat(a,b,c,*d):
    print(f"哈哈哈{a}{b}{c}{d}")
​
eat("蜡笔小新",4,"男","1","8","10")# 接收的结果是一个tuple元组
输出结果:

哈哈哈蜡笔小新4男('1', '8', '10')

动态接收关键字参数

只能接收位置参数无法接收的关键字 **

def func(**a):
    print(a)
    print(type(a))
​
func(x=489,n=1118,seifji=1)
输出结果:

{'x': 489, 'n': 1118, 'seifji': 1}
<class 'dict'>  # 字典类型

接收所有参数

def func(*arge,**kwargs):
    """
    描述当前函数作用
    :param arge: 接收元组或者列表参数
    :param kwargs: 接收字典参数
    :return: 执行完这个函数之后想要返回给调用方什么
    """
    print(arge,kwargs)
​
func(1,8,name="蜡笔小新",get=5,a="男")
help(func)
输出结果:

(1, 8) {'name': '蜡笔小新', 'get': 5, 'a': '男'}
Help on function func in module __main__:
​
func(*arge, **kwargs)
    描述当前函数作用
    :param arge: 接收元组或者列表参数
    :param kwargs: 接收字典参数
    :return: 执行完这个函数之后想要返回给调用方什么

作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用

Python中函数带括号和不带括号的区别

1、不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成

2、带括号(此时必须传入需要的参数),调用的是函数的return结果,需要等待函数执行完成的结果

Python全局变量

除了在函数内部定义变量,Python 还允许在所有函数的外部定义变量,这样的变量称为全局变量(Global Variable)

和局部变量不同,全局变量的默认作用域是整个程序,即全局变量既可以在各个函数的外部使用,也可以在各函数内部使用

a = 10
def sum():
    # a = 10
    # 变量a是定义在sum函数内部的变量,局部变量
    print(a)
sum()
输出结果:

10

Python局部变量

在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)

a = 10
def A():
    print(a)
def B():
    print(a)
def C():
    # 定义一个a的局部变量
    # 修改全局变量,global声明全局变量的关键字
    global a
    a = 200
    print(a)
A()
B()
C()
print(f"全局变量a = {a}")
输出结果:

10
10
200
全局变量a = 200

多函数嵌套

def dcmo1():
    return 50,10,20
def dcmo2(num):
    print(num)
result = dcmo1()
print(dcmo1())
dcmo2(result)
输出结果:

(50, 10, 20)
(50, 10, 20)

字符串常用方法

1、查询方法

1.1、find 查询单个字符串,从左往右,找到谁返回谁,返回下标位置;如果查询的值不存在返回 -1

string = "welcome to beijing"
print(string.find("e"))
print(string[8])
输出结果:

1
t

1.2index() 查询单个字符串,从左往右,找到谁返回谁,返回下标位置;如果查询的值不存在会报错

print(string.index("t"))
输出结果:

8

1.3count 返回值在字符串中出现的次数; 如果不存在,意味着没有出现返回0

print(string.count('e'))
print(string.count('1'))
输出结果:

3
0
例:

string = "welcome to beijing"
for i in string:
    data = i.count("e")
    if data == 1:
        print(f"找到了{i}")
输出结果:

找到了e
找到了e
找到了e

2、替换方法

replace 把字符串中的某些字符串进行替换,可以指定替换的次数

# replace("旧数据","新数据")
string = "welcome 哈哈哈,123"
value = string.replace("哈哈哈","***")
print(value)
输出结果:

welcome ***,123
例:

name = "123"
video_file_naem = "海绵宝宝与派大星"
new_file_name = video_file_naem.replace("海绵宝宝",name)
final_file_name = new_file_name.replace("派大星","二傻子")
print(final_file_name)
输出结果:

123与二傻子

2.1屏蔽

content = input("评论:")
content = content.replace("c","*")
content = content.replace("草泥马","***")
print(content)
输出结果:

评论:c789草泥马
*789***

3、字符串分隔符

data = "1|2|3|我是货拉拉"
a = data.split("|")
print(a)
输出结果:

['1', '2', '3', '我是货拉拉']
例:

c = input("请输入整数:")
result = c.split("+")
print(int(result[0])+int(result[1]))
输出结果:

请输入整数:11+8
19
例:

string = "welcome to beijing"
# 所有英文字符小写
a = string.lower()
# capitalize 把字符串的第一个字符串大写
b = string.capitalize()
# 把所有英文字符串大写 lower
c = string.upper()
# 单词开头大写
d = string.title()
print(a)
print(c)
print(b)
print(d)
输出结果:

welcome to beijing
WELCOME TO BEIJING
Welcome to beijing
Welcome To Beijing
例:

# 验证码
code = input("验证码:")
data = code.upper() #英文字符串大写
# data = code.lower() #所有英文字符小写
if data == "FB89":
    print("正确")
else:
    print("错误")
输出结果:

验证码:FB89
正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乘浪初心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值