当前位置:首页>python>python快速上手(当你学过C)[第四期]

python快速上手(当你学过C)[第四期]

  • 2026-10-11 07:47:29
python快速上手(当你学过C)[第四期]

11.函数

回顾

我们上一期末尾总结过,

  • c语言用大括号表示一个代码块,而python用冒号+缩进实现
  • c语言的if语句等条件用括号括起来,而python却不需要

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))

用函数处理列表

在函数中处理列表是很有效的编程方法,但是如何传递参数给函数,取决于项目需求。

  1. 如果你把列表本身作为参数传递给函数,那么其实际上是传递了列表的引用,意味着函数内部对它的修改会影响到原始列表。
  2. 如果你把列表的副本作为参数传递给函数,那么函数内部修改了副本将不会影响到原始列表。

第一个对应如下代码:

#由大到小排序并求和函数
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后,欢迎关注~

最新文章

随机文章