15天学会Python编程,教你如何编写Python函数
作者头像
  • 你好飞行者
  • 2020-05-12 20:01:46 2

大家好,我是一名Python数据分析师,希望通过这篇文章分享我在转行过程中的一些经验和心得。以下是关于Python编程的学习系列之一:《15天学会Python编程》的第七篇。

一、函数定义

1. 为什么需要使用函数?

如果不使用函数,代码会变得冗余、复杂,结构不够清晰,可读性和可扩展性都会下降。函数是带有名称的代码块,用于执行特定的任务。当你需要多次执行同一任务时,只需要调用函数即可,而不需要重复编写相同的代码。这样可以使程序的编写、阅读、测试和修复变得更加容易。

2. 定义函数

函数的定义格式如下:

python def 函数名(参数): pass return 表达式

函数名可以由字母、数字和下划线组成。pass 表示什么都不做,return 后面可以返回任何表达式,如果没有返回值,默认返回 None

例如,下面是一个简单的函数,用于打印问候语:

```python def greet(): print('Hello!')

greet() ```

这段代码定义了一个名为 greet 的函数,它仅打印一条简单的问候语。调用该函数时,只需输入 greet() 即可。

二、函数参数

1. 什么是函数参数?

函数参数可以增加函数的灵活性,使其能够处理不同的数据。函数参数分为形式参数(形参)和实际参数(实参)。形参是在定义函数时使用的参数,而实参是在调用函数时传递的参数。

根据传递方式的不同,实参可以分为值传递和引用传递。值传递是指传递不可变对象(如字符串、元组和数字),引用传递是指传递可变对象(如列表和字典)。

2. 形参和实参

形参是在定义函数时指定的参数,用于接收实参传递的数据。实参是调用函数时传递的具体数据。

例如,可以修改 greet 函数,使其不仅打印问候语,还可以添加用户名:

```python def greet(username): print("Hello, " + username + "!")

greet('Jim') ```

执行该代码,结果为:

Hello, Jim!

这段代码展示了形参和实参的概念。在 greet('Jim') 中,实参 'Jim' 被传递给形参 username

3. 传递实参

Python 提供了几种传递实参的方式,包括必备参数、关键字参数、默认参数和可变参数。

必备参数

必备参数需要按照正确的顺序传递,否则会导致错误。

```python def test(name, age): print("My name is " + name + ", I'm " + age + " years old today.")

test('Tom', '18') test('Jerry', '16') ```

执行结果:

My name is Tom, I'm 18 years old today. My name is Jerry, I'm 16 years old today.

关键字参数

关键字参数允许你在调用函数时使用关键字和值来传递参数,从而不必考虑参数的顺序。

```python def test(name, age): print("My name is " + name + ", I'm " + age + " years old today.")

test(name='Tom', age='18') test(age='16', name='Jerry') ```

执行结果与必备参数相同。

默认参数

默认参数可以在定义函数时指定默认值,从而在调用函数时可以省略某些参数。

```python def test(name, age='18'): print("My name is " + name + ", I'm " + age + " years old today.")

test(name='Tom') test(name='Jerry') ```

执行结果:

My name is Tom, I'm 18 years old today. My name is Jerry, I'm 18 years old today.

可变参数

可变参数允许传递任意数量的参数,通常使用 *args**kwargs

```python def demo(*args): print('我喜欢的城市:') for city in args: print(city)

demo('深圳', '杭州', '上海') citylist = ['北京', '广州', '哈尔滨'] demo(*citylist)

def fun(name, age, **kwargs): print("name:", name, "age:", age, "other:", kwargs)

fun('Tom', 16, sex='male', job='teacher')

def fun1(**kwargs): print("name:age") for key, value in kwargs.items(): print(key, ":", value)

data = {'Tom': 23, 'Jin': 12} fun1(**data) ```

执行结果:

我喜欢的城市: 深圳 杭州 上海 我喜欢的城市: 北京 广州 哈尔滨 name: Tom age: 16 other: {'sex': 'male', 'job': 'teacher'} name:age Tom : 23 Jin : 12

三、课堂练习

编写一个名为 hobby() 的函数

编写一个名为 hobby() 的函数,它接受一个人的名字、年龄和性别,并返回一个描述该人的爱好的字典。使用组合参数的方式展示本章所学的传递参数的知识。

```python def hobby(name, age, gender, args, *kwargs): interests = { 'name': name, 'age': age, 'gender': gender, 'interests': list(args), 'extra_info': kwargs } return interests

result = hobby('Tom', 25, 'male', '阅读', '旅游', hobby='音乐', job='程序员') print(result) ```

四、上一节课堂练习答案

打印9*9乘法表

python for i in range(1, 10): for j in range(1, 10): if j > i: break print(f"{j}*{i}={i*j}", end="t") print()

打印除7或7的倍数外的所有数

python for i in range(31): if i % 10 == 7 or i % 7 == 0: continue else: result = f"{i}是偶数" if i % 2 == 0 else f"{i}是奇数" print(result)

通过这些练习,你可以更好地掌握Python编程的基础知识和技巧。希望对你有所帮助!

如有更多问题,欢迎继续交流。

    本文来源:图灵汇
责任编辑: : 你好飞行者
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
Python函数编写学会编程如何
    下一篇