PYTHON让繁琐的工作自动化-函数

Python作为一门简洁高效的编程语言,其函数机制和异常处理系统是构建可靠程序的基础。本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧。

一、Python函数定义与调用

1.1 基本函数定义

Python中使用def关键字定义函数,语法如下:

复制代码
def my_function(name):
    print(f"Hello,{name}")

这个简单的函数接受一个参数name,并使用f-string格式化输出问候语。

1.2 函数调用

复制代码
my_function("陈翔")  # 输出:Hello,陈翔

函数调用时直接使用函数名加括号,并传入相应参数即可。

二、函数返回值详解

2.1 有返回值的函数

复制代码
def my_return_function(name):
    return f"return返回的姓名,{name}"

print(my_return_function("蘑菇头"))  # 输出:return返回的姓名,蘑菇头

使用return语句可以指定函数返回的值,调用者可以接收并使用这个返回值。

2.2 无返回值的函数

复制代码
print(my_function("陈翔"))  # 输出:Hello,陈翔 和 None

任何没有显式返回值的Python函数,实际上都会返回None。这就是为什么打印my_function()调用结果时会显示None

三、函数参数的高级用法

3.1 print函数的end参数

复制代码
print("Hello", end=" |")
print("球球")  # 输出:Hello |球球

print()函数的end参数允许我们自定义行尾字符,默认是换行符\n

四、全局变量与函数

4.1 修改全局变量

复制代码
def change_num_function():
    global age
    age = 16

age = 18
print(age)  # 输出:18
change_num_function()
print(age)  # 输出:16

在函数内部修改全局变量需要使用global关键字声明,否则Python会将其视为局部变量。

五、异常处理机制

5.1 基本异常捕获

复制代码
try:
    b = 1 / 0
except Exception as e:
    print(e)  # 输出:division by zero

try-except块用于捕获和处理异常,Exception是所有内置异常的基类。

5.2 获取完整异常信息

复制代码
import traceback

try:
    b = 1 / 0
except Exception as e:
    traceback.print_exc()  # 打印完整的异常堆栈信息

traceback.print_exc()会打印出完整的异常回溯信息,对于调试非常有用。

六、总结

本文通过具体代码示例讲解了:

  1. Python函数的基本定义和调用方式

  2. 函数返回值的特性(包括隐式返回None)

  3. print函数的end参数用法

  4. 如何在函数中修改全局变量

  5. 异常处理的基本方法和高级技巧

掌握这些基础知识对于Python开发至关重要,它们是构建更复杂程序的基础。建议读者亲自尝试这些代码示例,并在此基础上进行修改和扩展,以加深理解。

七、进一步学习

想要深入理解Python函数,还可以研究:

  • 默认参数和关键字参数

  • 可变参数(*args和**kwargs)

  • 匿名函数(lambda)

  • 装饰器

  • 生成器函数

希望本文对你有所帮助!如果有任何问题,欢迎在评论区留言讨论。

相关推荐
Python大数据分析@2 分钟前
浏览器自动化工具 Selenium,Playwright,Puppeteer 做爬虫有哪些弊病?
爬虫·selenium·自动化
小龙报4 分钟前
【Coze-AI智能体平台】低代码省时高效:Coze 应用开发全流程指南
java·人工智能·python·深度学习·低代码·chatgpt·交互
技术钱5 分钟前
LCEL表达式与Runnable可运行协议
python
Echo_NGC22378 分钟前
【论文解读】Attention Is All You Need —— AI 时代的“开山之作“,经典中的经典(transformer小白导读)
人工智能·python·深度学习·神经网络·机器学习·conda·transformer
念何架构之路18 分钟前
Go Web基础和Http演进
开发语言·后端·golang
初心未改HD24 分钟前
Go语言database/sql与SQLx:构建健壮的数据访问层
开发语言·golang
晚风吹红霞26 分钟前
C++异常处理核心知识点全解析
开发语言·c++
CoderCodingNo27 分钟前
【信奥业余科普】C++ 的奇妙之旅 | 17:面的铺展与文本的本质——二维数组与字符串
开发语言·c++
J2虾虾28 分钟前
Java Lambda 表达式详解文档
java·开发语言