模块 5 · 第 1 课(共 4)课程中的17/36~12 min
模块课程(1/4)
定义并返回
函数是可重用的代码块:您可以使用 def 定义它一次,
然后根据需要多次调用它。函数使代码模块化,
可测试,并且自我记录。
基本语法
Python
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'def介绍函数,后面是名称和参数 括号。:打开缩进块。return将一个值发送回调用者并结束该函数。
显式 return 与隐式 None
如果不写 return,函数会隐式返回 None:
Python
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # None裸露的 return (无值)也会返回 None,但它可以作为早期的
退出:
Python
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"多个值?返回一个元组
Python 没有“输出参数”:要返回多个内容,请返回一个 元组(通常由调用者解包)。
Python
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring:内置文档
函数内的第一个字符串是 docstring:它显示在
help(fn) 并作为 IDE 中的工具提示。
Python
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2作用域:局部变量
函数内部定义的变量是本地:它们不存在 外面。
Python
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not defined函数总是返回一些东西
在Python中,如果函数没有显式声明return语句或具有空return,它将隐式返回特殊值None。没有不返回值的函数。
尝试一下
锻炼#python.m5.l1.e1
尝试:0加载中...
定义一个返回“x * 2”的函数“double(x)”。然后用 7 调用它并将结果分配给 `result`。评估“结果”。
正在加载编辑器...
显示提示
使用返回 x * 2。
3 次尝试后可用的解决方案
复习练习
锻炼#python.m5.l1.e2
尝试:0加载中...
定义返回元组“(最小值,最大值)”的“min_max(nums)”。在 `[3, 1, 4, 1, 5, 9, 2, 6]` 上调用它,并将结果解压到 `mn, mx` 中。评估 `(mn, mx)`。
正在加载编辑器...
显示提示
返回最小值(nums), 最大值(nums)
3 次尝试后可用的解决方案
额外的挑战
锻炼#python.m5.l1.e3
尝试:0加载中...
定义一个函数“is_palindrome(text)”,如果输入字符串与其反转版本相等,则返回“True”,否则返回“False”。使用 is_palindrome("radar") 作为最后一个表达式来测试函数。
正在加载编辑器...
显示提示
使用切片text[::-1]反转字符串并与原始文本进行比较。
3 次尝试后可用的解决方案