惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Application and Cybersecurity Blog
Application and Cybersecurity Blog
The Register - Security
The Register - Security
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
量子位
C
Check Point Blog
博客园 - 【当耐特】
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
博客园 - Franky
N
Netflix TechBlog - Medium
Webroot Blog
Webroot Blog
A
About on SuperTechFans
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
D
Docker
S
Security Affairs
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
V2EX - 技术
V2EX - 技术
Jina AI
Jina AI
Help Net Security
Help Net Security
L
LangChain Blog
P
Proofpoint News Feed
The Cloudflare Blog
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security
Recent Announcements
Recent Announcements
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
Microsoft Security Blog
Microsoft Security Blog
H
Heimdal Security Blog
P
Proofpoint News Feed
O
OpenAI News
H
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
爱范儿
爱范儿
Security Archives - TechRepublic
Security Archives - TechRepublic

博客园 - tsembrace

Pandas数据分析教程,由浅入深讲解(五)Pandas IO操作 Pandas数据分析教程,由浅入深讲解(四) Pandas数据分析教程,由浅入深讲解(三) Pandas数据分析教程,由浅入深讲解(二) Pandas数据分析教程,由浅入深讲解(一) B站黑马Python+AI零基础入门(二)AI应用-实战 B站黑马Python+AI零基础入门(一)AI应用-基础 B站清华128小时Python高级教程一(C3深入类和对象) B站清华128小时Python高级教程一(C1、C2) B站python入门学习---第二阶段第二章数据库、SQL和MySQL B站python入门学习---第二阶段第一章类和对象 B站python入门学习---第一阶段第十章 数据可视化 B站python入门学习---第一阶段第八~九章 文件操作、异常、模块与包 B站python入门学习---第一阶段前七章回顾复习(二) B站python入门学习---第一阶段前七章回顾复习(一) Python入门学习(十)第十四章其他 Python入门学习(九)Python的高级语法与用法(四)装饰器 Python入门学习(九)Python的高级语法与用法(三)函数式编程 Python入门学习(九)Python的高级语法与用法(二)闭包 Python入门学习(九)Python的高级语法与用法(一)枚举 Python入门学习(八)JSON、反序列化、序列化 Python入门学习(七)高级部分:正则表达式(二) Python入门学习(七)高级部分:正则表达式 Python入门学习(六)高级部分:面向对象 Python入门学习(四)流程控制 包与模块
Python入门学习(五)函数
tsembrace · 2025-06-04 · via 博客园 - tsembrace

一、函数的特性和定义

"""
函数特性:
1、功能性
2、隐藏细节,方便调用
3、避免编写重复代码(可复用性)
"""
a = 1.12386
print(round(a,2))

#函数的定义
#1、可以无参数
#2、可以通过return来返回一个值,如没设置return则默认返回值为None
def funcname(parameter_list):
    pass

#示例1,实现两个数字的相加
def add(a, b):
    return a+b

print(add(18,92))

#示例2,重写一个print函数
def myprint(code):
    print(code)

myprint("hello world!")

 二、多个返回值的函数

def damage(skill1, skill2):
    d1 = skill1 * 3
    d2 = skill2 * 2 + 10
    return d1, d2   #多个返回值实际返回的是一个元组,但不需要强制加括号

damages = damage(1, 2)
print(type(damages), damages)
damages1, damages2 = damage(2, 3)  #一般可以这样获取,这种方式也称为序列解包
print(damages1, damages2)

#也可以如下,但不推荐——并不知道函数返回值的特定意义
print(damage(10, 12)[0], damage(100, 180)[1])
#序列解包
# a, b, c = 1, 2, 3  
#也可以如下方式
d = 1, 2, 3
a, b, c = d
print(type(d), a, b, c)

#如果序列解包的数量不匹配,系统会报错
#e, f = d

三、必须参数和关键字参数

#必须参数:是指在调用时候必须要传参的

def add(x, y):    #这里的x,y就是函数代码内必须要用的参数,即称为必须参数
    result = x + y
    return result

#关键字参数
#可以在调用的时候不依据函数定义时的顺序,可以通过形参名赋值的形式明确指出
#顺序也可以与函数定义时不同
#关键字参数主要是增加代码可读性
c = add(y = 3, x = 2)    #用形参名明确赋值,顺序与定义时不一样,方便阅读和理解
print(c)

 四、默认参数

#三、默认参数
#函数调用时部分参数可在定义时设置默认值,调用时实参可以不传递此参数
#当该形参的实参不是默认值时,则调用时必须传参设置
#函数定义时,默认参数必须放在参数列表最后
#多个默认参数时传某一个或某几个参数时,需要使用关键字参数
def print_student_diles(name, gender="", age=18, college="人民路小学"):
    print("我叫" + name)
    print("我是" + gender + "")
    print("我今年" + str(age) + "")
    print("我在" + college + "上学")

print_student_diles("鸡小萌", "", 18, "人民路小学")
print_student_diles("郎小华")
print_student_diles("马大哈", "", 18, "梨花小学")
print_student_diles("李乐",age = 20)

五、可变参数和关键字可变参数

#四、可变参数
#可变参数用于传递一系列数量不确定的参数
#也可以整体传递一个元组或列表
#必须参数必须在可变参数之前
#默认参数必须在参数列表最后
def demo(*param):
    print(param)
    print(type(param))

demo(8, 9, 10, 11, 12)
a = (1, 2, 3, 4)
demo(*a)

def demo1(p1, *p2, p3 = 2):
    print(p1)
    print(p2)
    print(p3)

demo1("a", 10, 11)
demo1("abc", 1, 2, 3, 4, 5, p3 = 36)
#五、关键字可变参数
#支持任意个数的关键字参数

def city_temp(**param):
    for k,value in param.items():
        print(k,":",value)
    print(type(param))  #可以发现参数实质为字典类型

#直接用关键字传参
city_temp(bj = "29c", sh = "32c", gz = "31c", nj = "34c")

#也可以通过“**”直接将一个字典传给函数
a = {"wh":"35c", "cq": "34c", "nc": "33c"}
city_temp(**a)