
我们上一期末尾总结过,
python中函数的格式也符合这个变化规则
defsay_hello(username):
print("Hello!")
print("I'm glad to see you,"+username.title())
say_hello("tina")
python用关键词def来定义函数,()里可以加上参数username,函数体由冒号加上缩进行组成。
注:在这个例子中,函数括号中的username是形参,而底下调用函数时传入的tina是实参。
defsay_hello(username,age=20):
print("Hello!")
print("I'm glad to see you,"+username.title())
print("Your age is "+str(age))
# 第一种
say_hello("tina",19)
# 第二种
say_hello(username="tina",age=19)
# 不指定默认值
say_hello("tina")

编写函数的时候,可以给形参指定默认值,这样当调用函数没有显式指明时,会直接赋予默认值。
通过上面的代码,我们可以看出有两种传参方式:
第一种:
按顺序调用实参关联到函数形参
第二种:
可以传递给函数一个名称-值的“对”,由于指定清晰,所以顺序可以随意颠倒,也就是say_hello(age=19,username="tina")同样合法。
返回值的关键字是在函数结尾加一个return
defadd(a,b):
c=a+b
return c
print(add(2,3))
在函数中处理列表是很有效的编程方法,但是如何传递参数给函数,取决于项目需求。
第一个对应如下代码:
#由大到小排序并求和函数
defsort_nums(nums):
#排序
nums.sort(reverse=True)
#函数内部列表打印
print(nums)
sum=0
for num in nums:
sum+=num
return sum
#给出列表
mynums=[1,23,4,34,3]
result=sort_nums(mynums)
#打印列表查看是否被修改
print(result)
print(mynums)

第二个只需要修改第十行代码就可以验证
defsort_nums(nums):
nums.sort(reverse=True)
print(nums)
sum=0
for num in nums:
sum+=num
return sum
mynums=[1,23,4,34,3]
#传递列表的完整切片,是列表的副本,不会影响到本身
result=sort_nums(mynums[:])
print(result)
print(mynums)

为实现模块化编程,C 语言用 #include 引入头文件、配合多文件拆分;而Python 直接用 import 导入模块。
比如,我们想要把加减乘除运算封装在一个独立文件里——python称之为模块,然后主程序中可以调用,那么可以用如下方式实现:
# 文件calculate.py
# 加法
defadd(a, b):
return a + b
# 减法
defsub(a, b):
return a - b
# 乘法
defmul(a, b):
return a * b
# 除法
defdiv(a, b):
if b == 0:
return"除数不能为0"
return a *0.1/ b
# main.py
# 导入模块
import calculate
num1 = 10
num2 = 2
print(calculate.add(num1, num2))
print(calculate.sub(num1, num2))
print(calculate.mul(num1, num2))
print(calculate.div(num1, num2))
我们来梳理一下:
当我主程序想要进行加减乘除运算时,恰好有一个模块封装过这些函数,于是主程序使用了import + 文件名 的方式,将calculate模块中的函数拿来使用,使用方式为 模块名.函数
当然,除了导入整个模块,你还可以选择只导入模块中的某个特定的函数,它的语法为:
#从calculate模块导入add函数
from calculate import add
num1 = 10
num2 = 2
print(calculate.add(num1, num2))
模块名有时很长,为了方便我们可以为它起一个别名;模块中的函数有时也会与主程序函数名冲突,此时我们依然可以通过起一个别名来解决。
起别名的关键字是as
# main.py
# 导入模块+改名
import calculate as cal
num1 = 10
num2 = 2
print(cal.add(num1, num2))
print(cal.sub(num1, num2))
print(cal.mul(num1, num2))
print(cal.div(num1, num2))
#从calculate模块导入add函数+改名
from calculate import add as addit
num1 = 10
num2 = 2
print(calculate.addit(num1, num2))
注:小编最近有些忙,又不想拖更,所以这次就少更一点,意思意思就好了哈~
我是一只思绪漫游的00后,欢迎关注~