Python函数:
定义函数语法:
python
def functionName(parameters):
function_body
return [expression]
例:定义一个函数实现两数相交换:
python
def swap_AB(a,b):
temp = a
a = b
b = temp
return a,b
a,b = 1,2
a,b = swap_AB(a,b)
print(f"a = {a},b = {b}")
Python函数参数:
在函数传递参数的过程中,有两种情况:
- 基本类型(如整数、浮点数、布尔值等)的传递方式是值传递。函数接收到的是参数值的副本,对参数的修改不会影响原始变量的值。
- 对于可变类型(如列表、字典等),参数传递的方式类似于地址传递。函数接收到的是对象的引用, "对象的引用" 指的是变量指向的内存地址,而不是对象本身,对对象的修改会影响原始变量
例1:基本类型
python
def modify_value(x):
x = x + 1
num = 5
modify_value(num)
print(num) # 输出 5,因为函数内的修改不会影响原始变量 num 的值
例2:可变类型
python
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # 输出 [1, 2, 3, 4],因为函数内修改了原始列表的值
默认参数:
默认参数就是调用函数时,默认参数的值如果没有传入,则被认为是默认值。
例如:
python
def printinfo(name = "Gao", age = 18):
"打印任何传入的字符串"
print ("Name: ", name)
print ("Age: ", age)
return
# 调用printinfo函数
printinfo()
#输出为:
#Name: Gao
#Age: 18
不定长参数:
当一个函数传入的参数不确定有多少个时,就可以声明使用不定长参数,函数语法如下:
python
def functionname([formal_args,] *var_args_tuple):
"函数_文档字符串"
function_body
return [expression]
第一个为正常参数,*var_args_tuple为不定长参数。例如:
python
def printInfo(arg1, *vartuple):
print(arg1)
for var in vartuple:
print(var)
return
printInfo(70, 60, 50)
#输出为70 60 50
匿名函数:
使用 lambda 来创建匿名函数
- lambda只是一个表达式
- lambda函数不能访问自有参数列表之外或全局命名空间里的参数
- lambda不等同于C或C++的内联函数
例如:
python
sum = lambda arg1, arg2: arg1 + arg2
print("相加后的值为 : ", sum(10, 20))
#输出:相加后的值为 : 30
全局变量和局部变量:
定义在函数内的变量为局部变量,定义在函数外的变量为全局变量,要想在函数内使用全局变量,就要使用global声明此变量。
例如:
python
InData = 1
def func():
InData = 2
print(InData)
func()
print(InData)
#输出为2 1
使用global声明全局变量:
python
def func():
global InData
InData = 2
print(InData)
func()
print(InData)
#输出为2 2
Python循环:
for循环:
for循环的语法为:
python
for <variable> in <sequence>:
<func_code>
else:
<else_code>
sequence可以为不同类型的变量,例如,列表,元组,集合,字典,字符串,range对象等,注意:使用字典时,variable每次循环的值对应字典的的键,而不是字典的值
例:
python
a = ["1","2","3"]
b = (1,2,3)
c = {1:"a",2:"b",3:"c"}#字典
for i in a:
print(i)
for j in b:
print(j)
for k in c:
print(k)
#输出:1 2 3 1 2 3 1 2 3
例2(range):
range函数用法:range(起始值,结束值,步长)
例如:
python
for i in range(1,10,2):
print(i)
else:print("循环结束")
#输出:1 3 5 7 9 循环结束
while循环:
while循环格式:
python
while <expression>:
<while_code>
else:
<else_code>
例如:
python
count = 0
while count < 3:
print(count)
count = count + 1
else:print("while循环结束,count值为:",count)
#输出:0 1 2 while循环结束,count值为: 3
Python判断:
判断的语法格式如下:
python
if condition_1:
code_1
elif condition_2:
code_2
else:
code_3
例:
python
is_happy = True
mood_index = int(input("心情指数是:"))
if mood_index >= 60:
print("可以打游戏")
print("原神启动")
elif mood_index <60 and mood_index >= 40:
print("再等等")
else:#mood_index<40
print("不可以打游戏")