函数基础知识:
函数的定义:
例题一:
函数中的类别:
random标准库:
例题一:
例题二:
main():
Python 程序可以包含多个函数,但是只能有一个主函数(或入口点函数),通常命名为 main
。这个主函数负责程序的控制流程,并且作为程序的起始点。
例题一:
eval():
在Python中,eval()
是一个内置函数,它用于执行存储在字符串中的表达式或语句。它会将字符串作为参数,并尝试将其作为Python表达式来执行。
例题一:
join():
join()
是字符串对象的一个方法,用于将列表或其他可迭代对象中的字符串元素连接成一个新的字符串。
例题一:
input():
input()
是一个内置函数,用于从用户处获取输入。它允许程序暂停执行,等待用户输入一些数据,并且在用户按下回车键后,将用户输入的数据作为字符串返回给程序
例题一:
format():
例题一 :
函数的优点:
-
模块化和重用性: 函数允许将代码分解为可重用的模块,这使得代码更易于维护和管理。通过定义函数,可以在程序的不同部分重用相同的代码片段,避免了重复编写相似的代码。
-
可读性和可维护性: 使用函数可以使代码更易于阅读和理解。将复杂的逻辑分解成小的、独立的函数可以使代码更加清晰,并且易于调试和修改。
-
抽象和封装: 函数允许将复杂的实现细节隐藏在函数的内部,只暴露函数的接口。这种抽象和封装的特性使得函数能够提供清晰的接口,并且可以更轻松地对底层实现进行更改,而不会影响调用方。
-
参数灵活性: Python 中的函数支持多种类型的参数传递,包括位置参数、关键字参数、默认参数、可变长度参数等。这种参数灵活性使得函数可以接受不同数量和类型的参数,从而增加了函数的适用范围。
-
代码重构和测试: 使用函数编写的代码更容易进行重构和单元测试。通过将功能划分为小的、独立的函数单元,可以更轻松地对每个函数进行测试,并且可以更安全地对代码进行修改和重构,而不会破坏整个程序的功能。
例题一:
例题二:
函数的返回值(return):
-
定义返回值: 在 Python 中,可以使用
return
语句从函数中返回一个值。这个值可以是任何数据类型,包括整数、浮点数、字符串、列表、字典等。 -
返回单个值: 函数可以返回单个值。当函数执行到
return
语句时,它会立即停止执行,并将指定的值返回给调用者。 -
返回多个值: 在 Python 中,函数也可以返回多个值,这些值将被打包成一个元组并返回给调用者。这样可以方便地返回多个相关的值,而不必创建一个新的数据结构来存储它们。
-
返回空值: 如果函数没有显式地使用
return
语句,则默认返回None
。None
表示空值或空对象,在许多情况下用于表示函数没有返回任何有意义的结果。 -
return的位置:
return
语句通常位于函数体中,用于指定函数的返回值,并在执行到该语句时结束函数的执行。在函数体中可以有多个return
语句,但只有一个会被执行。 -
返回值的使用: 函数的返回值可以被赋值给变量,也可以直接在表达式中使用。通过返回值,函数可以向调用者传递计算结果、状态信息或其他需要的数据。
-
返回值类型声明: 虽然 Python 不要求显式地声明函数的返回值类型,但可以使用类型提示来指定函数的返回值类型,这有助于提高代码的可读性和可维护性。
例题一:
例题二:
例题三:
函数中全局变量与局部变量:
全局变量(Global Variables): 全局变量是在函数外部定义的变量,在整个程序中都可以访问。全局变量可以在函数内部被读取和修改,但如果在函数内部尝试修改全局变量的值,需要使用 global
关键字来声明这个变量是全局的。
局部变量(Local Variables): 局部变量是在函数内部定义的变量,只能在函数内部访问。局部变量的作用域限定在定义它的函数内部,函数执行完毕后,局部变量的生命周期也随之结束。
全局变量和局部变量可以拥有相同的名称,但它们是完全独立的。在函数内部,局部变量会优先于同名的全局变量被访问,如果在函数内部使用与全局变量同名的变量,则会创建一个新的局部变量,而不会修改全局变量的值。
例题一:
例题二:
例题三:
函数中的参数:
def change(n):
print(id(n)) # 指向的是同一个对象
n=10
print(id(n)) # 一个新对象
a=1
print(id(a))
change(a)
#输出
#1496877132080
#1496877132080
#1496877132368
def change(mylist):
mylist.append('end')
print(f"函数内:{mylist}")
mylist = [1,3,5,7]
print(f"函数调用前:{mylist}")
change(mylist)
print(f"函数调用后:{mylist}")
#输出
#函数调用前:[1, 3, 5, 7]
#函数内:[1, 3, 5, 7, 'end']
#函数调用后:[1, 3, 5, 7, 'end']
可选参数和非可选参数是函数参数的两种类型。
-
非可选参数(Required Parameters): 也称为位置参数或必需参数,是函数定义中必须提供值的参数。调用函数时,必须按照函数定义的顺序为这些参数传递值。如果没有提供这些参数的值,将会引发错误。
def greet(name, message): print(f"Hello, {name}! {message}") greet("Alice", "How are you?") # 输出 Hello, Alice! How are you?
在这个例子中,
name
和message
是非可选参数,调用greet
函数时,必须按照name
和message
的顺序传递参数值。 -
可选参数(Optional Parameters): 也称为默认参数,是函数定义中给定默认值的参数,调用函数时可以选择性地提供值。如果不提供值,则使用参数的默认值。
def greet(name, message="How are you?"):
print(f"Hello, {name}! {message}")
greet("Alice") # 输出 Hello, Alice! How are you?
greet("Bob", "Nice to meet you!") # 输出 Hello, Bob! Nice to meet you!
在这个例子中,message
是可选参数,具有默认值 "How are you?"
。如果调用 greet
函数时没有提供 message
参数的值,则默认使用 "How are you?"
。