Python进阶------Python函数

时间:2024-05-30 17:08:40

1.# 假如让保留小数点后两位------使用round函数

格式:round(这个数, 保留的位数 )

a = 3.1415926
print(a)
result = round(a, 2)
print(result)

输出的结果为:

Python进阶------Python函数

2.Python之禅--------import this

http://www.cnblogs.com/huangbiquan/p/7881913.html

3.# 如何实现函数----函数定义的基本结构

def funcname(parameter_list):
    pass

# 注意:1.参数列表可以没有     2.return value

             # 如果你的函数没有返回任何的值Python会认为你返回的是一个空的语句None,而且在Python中先定义函数,在使用函数,是有一定的顺序的。

案例1:

def add(x, y):
    result = x + y
    return result

def print(code):
    print(code)
# 调用上边的函数:
add(1, 2)
print("Python")

案例1运行结果:

Python进阶------Python函数

看直接报错结果:超过了最大递归深度,然后再看最上面提示说:递归已经运行超过996次

拓展:

问题:如何限制最大的递归的最大深度呢?

# 设置递归的最大限制:
import sys 
sys.setrecursionlimit(100)

加入上述代码,保持原有的代码。我们则再次运行文件:

Python进阶------Python函数

从运行结果可以看出递归的最大限制确实小于规定的次数100

修正案例1:

def add(x, y):
    result = x + y
    return result
    

def print_code(code):
    print(code)
# 调用上边的函数:
a = add(1, 2)
b = print_code("Python")

print(a,b)

案例运行结果:

Python进阶------Python函数

分析运行结果:执行a=add(1,2)的时候,函数体没有print,所以执行b=print_code("Python"),函数体有print则直接输出Python,也就是第一行的运行结果,然后在执行print(a,b)将a=3输出,而b函数体并没有返回值则输出为空,上述已经降到Python里面如果输出是空的话则打印出None

案例2:

# 如何让函数返回多个结果,想要返回多个结果直接return多个变量用逗号隔开即可
# 既然return的是元组类型,那么要利用它的特性来提取元素

def damage(skill1 , skill2):
    damage1 = skill1 * 3
    damage2 = skill2 * 2 + 6
    return damage1,damage2

skill1_damage,skill2_damage = damage(2,6)
# 建议的写法---这样的方式在Python中是序列解包
print(skill1_damage,skill2_damage)
# print(type(damages))
# 提取元组的元素,这里建议不要用元组索引元素的方式
# print(damages[0],damages[1])

案例2的运行结果:

Python进阶------Python函数

案例3:

#序列解包
a = 1
b = 2
c = 3
d = a, b, c
a, b, c = d
#链式赋值
a = b = c = 1
print(a, b, c)

案例4:参数

1.必须参数:

# 必须参数:例如下面的add函数,你调用的时候必须赋给2个参数,如果不赋值或者只赋一个则会报错
# 定义函数的时候所给的参数称为形式参数(简称形参),例如下面的x和y
def add(x,y):
    result = x + y
    return result
# 将所得到的结果需赋值给一个变量,如果你没有a = ......则不会输出你想要的结果

# 在函数调用的时候,我们所赋给的参数称为实际参数(简称实参),例如下面的1和2
a = add(1,2)
print(a)

2.关键字参数:

# 关键字参数
# 为了提高代码的可读性,在赋给参数的时候明确写出谁是多少
def add(x,y):
    result = x + y
    return result

b = add(y=3, x=5)
print(b)

3.默认参数:

①:原始代码:注意的是age必须转换成str类型

# 默认参数
def print_students_files(name, sex, age, college):
    print("my name is"+name)
    print("我是"+sex+"生")
    print("I am "+str(age)+" years old")
    print("我在"+college+"上学")
print_students_files("菲神2019", "男", 18, "太原理工大学")

②: 起到默认参数作用的代码:

# 如果系统让你保存学生的信息除了名字不一样其他都一样,
# 那么你是不是写实参的时候将后面一样的信息都写一遍呢,显然不是,那么你该怎么做呢?
def print_students_files(name, sex="男", age="18", college="太原理工大学"):
    print("my name is"+name)
    print("我是"+sex+"生")
    print("I am "+str(age)+" years old")
    print("我在"+college+"上学")
print_students_files("菲神", "男", 18, "太原理工大学")
print("-------------")
print_students_files("孟小鱼")

运行结果:

Python进阶------Python函数

问题:如果在有一个学生,除了名字不相同之外,年龄和性别也不同那么该如何写实参呢?

解决方案:实际很简单,按下面的代码写就OK啦。

print_students_files("欧阳娜娜", "女", 20)