1.# 假如让保留小数点后两位------使用round函数
格式:round(这个数, 保留的位数 )
a = 3.1415926
print(a)
result = round(a, 2)
print(result)
输出的结果为:
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运行结果:
看直接报错结果:超过了最大递归深度,然后再看最上面提示说:递归已经运行超过996次
拓展:
问题:如何限制最大的递归的最大深度呢?
# 设置递归的最大限制:
import sys
sys.setrecursionlimit(100)
加入上述代码,保持原有的代码。我们则再次运行文件:
从运行结果可以看出递归的最大限制确实小于规定的次数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)
案例运行结果:
分析运行结果:执行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的运行结果:
案例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("孟小鱼")
运行结果:
问题:如果在有一个学生,除了名字不相同之外,年龄和性别也不同那么该如何写实参呢?
解决方案:实际很简单,按下面的代码写就OK啦。
print_students_files("欧阳娜娜", "女", 20)