一、python中函数的定义

1、函数的定义:函数是逻辑结构化和过程化的一种编程方法
2、函数的定义方法:
下面,简单举一个例子:

#定义最大值函数 def:定义函数的关键字  max_num:函数名
def max_num(x:int,y:int)->int:    #此处的x、y为形参      
   #调用函数函数名(形参),调用函数时的参数,实参。一般实参要和形参一一对应  
   #形参是形式参数,可以任意更改
   max = x if x > y else y   
   return max
#print(help(max_num))
#创建一个空函数
def login(username,password):
   pass

二、调用函数

result = max_num(10, 20)
print("函数的返回值:", result)

python 调用主函数调用 python编写主程序调用函数_python

三、全局变量

python在使用全局变量时需要在函数内部先对变量加一个global

s = 0
 
def test():
    global s
    s +=2
    print(s)
 
if __name__ == "__main__":
    test()

四、函数参数传递

Python 函数中定义参数的类型的顺序必须是:必填参数、默认参数、可变参数、关键字参数

形参: 定义函数时的参数, 可以任意命名的
实参: 调用函数时的参数

形参:
  必选参数: 必须要传递的参数
  默认参数: 可以传递也可以不传递的值,如果不传递使用默认值
  可变参数: 可以接受1个,2个....任意值得参数, *args, args存储的数据类型是元组
  关键字参数:传入多个key-value, **kwargs接收,用字典存储的

1. 必选参数
def max_num(x, y): # x,y是形参
return x if x > y else y

result = max_num(10, 20) # 10, 20是实参

print(result)

python 调用主函数调用 python编写主程序调用函数_可变参数_02

2. 默认参数:

def square(x, y=2): # 接收2个参数,x和y, 如果只传递一个值,那么y使用默认值。
 return x ** y
 result = square(10, 3)
 print(result)

python 调用主函数调用 python编写主程序调用函数_调用函数_03

3. 可变参数*args, args存储的数据类型是元组
def sum_num(*args):
“”“求传入的所有值的和, 有可能是2,3,4,5.。。100个数值”""

# print(“args:”, args)
 return sum(args)
 result1 = sum_num(1, 2, 3)
 result2 = sum_num(1, 2, 3, 4, 5)
 print(result1, result2)

python 调用主函数调用 python编写主程序调用函数_python 调用主函数调用_04

**4. 关键字参数: 传入多个key-value, kwargs接收,用字典存储的

def info(name, country=‘china’, **kwargs):
 “”“录入学生信息, 姓名必须填, 国家默认是中国, 其他得特点/特长/爱好可以自行填写”""
 print(name)
 print(country)
 print(kwargs)info(name=“westos”, CET6=True, RHCE=True, hobbies=[‘coding’, ‘Linux’,‘Python’])

python 调用主函数调用 python编写主程序调用函数_可变参数_05

五、测试题

冒泡排序

python 调用主函数调用 python编写主程序调用函数_调用函数_06

插入排序

def insert_sort(list):
    """插入排序"""
    n = len(list)
    for i in range(1, n):  # 未排序序列从第二个元素开始遍历
        for j in range(i, 0, -1):  # 已排序序列从后往前遍历
            if list[j] < list[j - 1]:  # 如果当前元素小于前一个元素, 则交换元素位置
                list[j], list[j - 1] = list[j - 1], list[j]
            else:  # 如果大于前一个元素, 则保持位置不变
                break
 
if __name__ == '__main__':
    list1 = [23,3,4,2,5,44,54,23,11]
    print("排序前:%s" % list1)
    insert_sort(list1)
    print("排序后:%s" % list1)

python 调用主函数调用 python编写主程序调用函数_默认参数_07