关于“Python”的核心知识点整理大全15

这篇具有很好参考价值的文章主要介绍了关于“Python”的核心知识点整理大全15。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

​编辑

7.3.2 删除包含特定值的所有列表元素

pets.py

7.3.3 使用用户输入来填充字典

mountain_poll.py

7.4 小结

第8章

函 数

8.1 定义函数

greeter.py

8.1.1 向函数传递信息

8.1.2 实参和形参

8.2.1 位置实参

2. 位置实参的顺序很重要

8.2.2 关键字实参

往期快速传送门👆(在文章最后):


关于“Python”的核心知识点整理大全15,python,掌握Python分类专栏:开启智能数据处理之旅!,python,开发语言,笔记

7.3.2 删除包含特定值的所有列表元素

在第3章中,我们使用函数remove()来删除列表中的特定值,这之所以可行,是因为要删除 的值在列表中只出现了一次。如果要删除列表中所有包含特定值的元素,该怎么办呢? 假设你有一个宠物列表,其中包含多个值为'cat'的元素。要删除所有这些元素,可不断运 行一个while循环,直到列表中不再包含值'cat',如下所示:

pets.py
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
 pets.remove('cat')
print(pets)

我们首先创建了一个列表,其中包含多个值为'cat'的元素。打印这个列表后,Python进入 while循环,因为它发现'cat'在列表中至少出现了一次。进入这个循环后,Python删除第一个'cat' 并返回到while代码行,然后发现'cat'还包含在列表中,因此再次进入循环。它不断删除'cat', 直到这个值不再包含在列表中,然后退出循环并再次打印列表:

['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit'] 

7.3.3 使用用户输入来填充字典

可使用while循环提示用户输入任意数量的信息。下面来创建一个调查程序,其中的循环每 次执行时都提示输入被调查者的名字和回答。我们将收集的数据存储在一个字典中,以便将回答 同被调查者关联起来:

mountain_poll.py
responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True
while polling_active:
 # 提示输入被调查者的名字和回答
1 name = input("\nWhat is your name? ")
response = input("Which mountain would you like to climb someday? ")
 # 将答卷存储在字典中
2 responses[name] = response
 # 看看是否还有人要参与调查
3 repeat = input("Would you like to let another person respond? (yes/ no) ")
 if repeat == 'no':
 polling_active = False
# 调查结束,显示结果
print("\n--- Poll Results ---")
4 for name, response in responses.items():
 print(name + " would like to climb " + response + ".")

这个程序首先定义了一个空字典(responses),并设置了一个标志(polling_active),用于 指出调查是否继续。只要polling_active为True,Python就运行while循环中的代码。 在这个循环中,提示用户输入其用户名及其喜欢爬哪座山(见1)。将这些信息存储在字典 responses中(见2),然后询问用户调查是否继续(见3)。如果用户输入yes,程序将再次进入 while循环;如果用户输入no,标志polling_active将被设置为False,而while循环将就此结束。 最后一个代码块(见4)显示调查结果。

如果你运行这个程序,并输入一些名字和回答,输出将类似于下面这样:

What is your name? Eric
Which mountain would you like to climb someday? Denali
Would you like to let another person respond? (yes/ no) yes
What is your name? Lynn
Which mountain would you like to climb someday? Devil's Thumb
Would you like to let another person respond? (yes/ no) no
--- Poll Results ---
Lynn would like to climb Devil's Thumb.
Eric would like to climb Denali. 

7.4 小结

在本章中,你学习了:如何在程序中使用input()来让用户提供信息;如何处理文本和数字 输入,以及如何使用while循环让程序按用户的要求不断地运行;多种控制while循环流程的方式: 设置活动标志、使用break语句以及使用continue语句;如何使用while循环在列表之间移动元素, 以及如何从列表中删除所有包含特定值的元素;如何结合使用while循环和字典。 在第8章中,你将学习函数。函数让你能够将程序分成多个很小的部分,其中每部分都负责 完成一项具体任务。你可以根据需要调用同一个函数任意次,还可将函数存储在独立的文件中。 使用函数可让你编写的代码效率更高,更容易维护和排除故障,还可在众多不同的程序中重用。



第8章

函 数

8.1 定义函数

下面是一个打印问候语的简单函数,名为greet_user():

greeter.py
1 def greet_user():
2 """显示简单的问候语"""
3 print("Hello!")
4 greet_user()

这个示例演示了最简单的函数结构。1处的代码行使用关键字def来告诉Python你要定义一个 函数。这是函数定义,向Python指出了函数名,还可能在括号内指出函数为完成其任务需要什么 样的信息。在这里,函数名为greet_user(),它不需要任何信息就能完成其工作,因此括号是空 的(即便如此,括号也必不可少)。最后,定义以冒号结尾。 紧跟在def greet_user():后面的所有缩进行构成了函数体。2处的文本是被称为文档字符串 (docstring)的注释,描述了函数是做什么的。文档字符串用三引号括起,Python使用它们来生成有关程序中函数的文档。 代码行print("Hello!")(见3)是函数体内的唯一一行代码,greet_user()只做一项工作: 打印Hello!。 要使用这个函数,可调用它。函数调用让Python执行函数的代码。要调用函数,可依次指定 函数名以及用括号括起的必要信息,如4处所示。由于这个函数不需要任何信息,因此调用它时 只需输入greet_user()即可。和预期的一样,它打印Hello!:

Hello! 

8.1.1 向函数传递信息

只需稍作修改,就可以让函数greet_user()不仅向用户显示Hello!,还将用户的名字用作抬 头。为此,可在函数定义def greet_user()的括号内添加username。通过在这里添加username, 就可让函数接受你给username指定的任何值。现在,这个函数要求你调用它时给username指定一 个值。调用greet_user()时,可将一个名字传递给它,如下所示:

def greet_user(username):
"""显示简单的问候语"""
 print("Hello, " + username.title() + "!")
greet_user('jesse') 

代码greet_user('jesse')调用函数greet_user(),并向它提供执行print语句所需的信息。这 个函数接受你传递给它的名字,并向这个人发出问候:

Hello, Jesse! 

同样,greet_user('sarah')调用函数greet_user()并向它传递'sarah',打印Hello, Sarah!。 你可以根据需要调用函数greet_user()任意次,调用时无论传入什么样的名字,都会生成相应的 输出。

8.1.2 实参和形参

前面定义函数greet_user()时,要求给变量username指定一个值。调用这个函数并提供这种 信息(人名)时,它将打印相应的问候语。

在函数greet_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信 息。在代码greet_user('jesse')中,值'jesse'是一个实参。实参是调用函数时传递给函数的信 息。我们调用函数时,将要让函数使用的信息放在括号内。在greet_user('jesse')中,将实参 'jesse'传递给了函数greet_user(),这个值被存储在形参username中。


注意 大家有时候会形参、实参不分,因此如果你看到有人将函数定义中的变量称为实参或将 函数调用中的变量称为形参,不要大惊小怪。


8.2 传递实参

鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参 的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其 中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

8.2.1 位置实参

你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此, 最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。 为明白其中的工作原理,来看一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动 物以及它叫什么名字,如下所示:

1 def describe_pet(animal_type, pet_name):
 """显示宠物的信息"""
 print("\nI have a " + animal_type + ".")
 print("My " + animal_type + "'s name is " + pet_name.title() + ".")
2 describe_pet('hamster', 'harry')

这个函数的定义表明,它需要一种动物类型和一个名字(见1)。调用describe_pet()时,需 要按顺序提供一种动物类型和一个名字。例如,在前面的函数调用中,实参'hamster'存储在形 参animal_type中,而实参'harry'存储在形参pet_name中(见2)。在函数体内,使用了这两个形 参来显示宠物的信息。

输出描述了一只名为Harry的仓鼠

I have a hamster.
My hamster's name is Harry.

1. 调用函数多次

你可以根据需要调用函数任意次。要再描述一个宠物,只需再次调用describe_pet()即可:

def describe_pet(animal_type, pet_name):
 """显示宠物的信息"""
 print("\nI have a " + animal_type + ".")
 print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('hamster', 'harry')

第二次调用describe_pet()函数时,我们向它传递了实参'dog'和'willie'。与第一次调用时 一样,Python将实参'dog'关联到形参animal_type,并将实参'willie'关联到形参pet_name。与前 面一样,这个函数完成其任务,但打印的是一条名为Willie的小狗的信息。至此,我们有一只名 为Harry的仓鼠,还有一条名为Willie的小狗:

I have a hamster.
My hamster's name is Harry.
I have a dog.
My dog's name is Willie.

调用函数多次是一种效率极高的工作方式。我们只需在函数中编写描述宠物的代码一次,然 后每当需要描述新宠物时,都可调用这个函数,并向它提供新宠物的信息。即便描述宠物的代码 增加到了10行,你依然只需使用一行调用函数的代码,就可描述一个新宠物。 在函数中,可根据需要使用任意数量的位置实参,Python将按顺序将函数调用中的实参关联 到函数定义中相应的形参。

2. 位置实参的顺序很重要

使用位置实参来调用函数时,如果实参的顺序不正确,结果可能出乎意料:

def describe_pet(animal_type, pet_name):
 """显示宠物的信息"""
 print("\nI have a " + animal_type + ".")
 print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('harry', 'hamster') 

在这个函数调用中,我们先指定名字,再指定动物类型。由于实参'harry'在前,这个值将 存储到形参animal_type中;同理,'hamster'将存储到形参pet_name中。结果是我们得到了一个 名为Hamster的harry:

I have a harry.
My harry's name is Hamster. 

如果结果像上面一样搞笑,请确认函数调用中实参的顺序与函数定义中形参的顺序一致。

8.2.2 关键字实参

关键字实参是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函 数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。关键字实参让你无需考虑函 数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

下面来重新编写pets.py,在其中使用关键字实参来调用describe_pet():

def describe_pet(animal_type, pet_name):
 """显示宠物的信息"""
 print("\nI have a " + animal_type + ".")
 print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(animal_type='hamster', pet_name='harry')

函数describe_pet()还是原来那样,但调用这个函数时,我们向Python明确地指出了各个实 参对应的形参。看到这个函数调用时,Python知道应该将实参'hamster'和'harry'分别存储在形 参animal_type和pet_name中。输出正确无误,它指出我们有一只名为Harry的仓鼠。

关键字实参的顺序无关紧要,因为Python知道各个值该存储到哪个形参中。下面两个函数调 用是等效的:

describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='harry', animal_type='hamster')

注意 使用关键字实参时,务必准确地指定函数定义中的形参名。


Python:核心知识点整理大全12-笔记-CSDN博客文章来源地址https://www.toymoban.com/news/detail-754617.html

往期快速传送门👆(在文章最后):

到了这里,关于关于“Python”的核心知识点整理大全15的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 关于“Python”的核心知识点整理大全12

    关于“Python”的核心知识点整理大全12

    目录 6.3.3 按顺序遍历字典中的所有键 6.3.4 遍历字典中的所有值 6.4 嵌套 6.4.1 字典列表 aliens.py 6.4.2 在字典中存储列表 pizza.py favorite_languages.py 注意 往期快速传送门👆(在文章最后): 6.3.3 按顺序遍历字典中的所有键 字典总是明确地记录键和值之间的关联关系,但获取字典的

    2024年02月05日
    浏览(11)
  • 关于“Python”的核心知识点整理大全21

    关于“Python”的核心知识点整理大全21

    在Python 2.7中,继承语法稍有不同,ElectricCar类的定义类似于下面这样: 函数super()需要两个实参:子类名和对象self。为帮助Python将父类和子类关联起来,这些 实参必不可少。另外,在Python 2.7中使用继承时,务必在定义父类时在括号内指定object。 9.3.3 给子类定义属性和方法

    2024年01月16日
    浏览(12)
  • 关于“Python”的核心知识点整理大全57

    关于“Python”的核心知识点整理大全57

    目录 3. 模板edit_entry edit_entry.html 4. 链接到页面edit_entry topic.html 19.2 创建用户账户 19.2.1 应用程序 users 1. 将应用程序users添加到settings.py中 settings.py 2. 包含应用程序users的URL urls.py 19.2.2 登录页面 urls.py 1. 模板login.html login.html 2. 链接到登录页面 base.html 3. 使用登录页面 往期快速传

    2024年01月24日
    浏览(14)
  • 关于“Python”的核心知识点整理大全11

    关于“Python”的核心知识点整理大全11

    目录 ​编辑 6.2.4 修改字典中的值  6.2.5 删除键—值对 注意 删除的键—值对永远消失了。  6.2.6 由类似对象组成的字典 6.3 遍历字典 6.3.1 遍历所有的键—值对 6.3.2 遍历字典中的所有键 往期快速传送门👆(在文章最后): 6.2.4 修改字典中的值 要修改字典中的值,可依次指定

    2024年02月05日
    浏览(11)
  • 关于“Python”的核心知识点整理大全19

    关于“Python”的核心知识点整理大全19

    目录 ​编辑 8.6.4 使用 as 给模块指定别名 8.6.5 导入模块中的所有函数 8.7 函数编写指南 8.8 小结 第9章 类 9.1 创建和使用类 9.1.1 创建 Dog 类 dog.py 1. 方法__init__() 2. 在Python 2.7中创建类 9.1.2 根据类创建实例 1. 访问属性 2. 调用方法 3. 创建多个实例 往期快速传送门👆(在文章最后

    2024年02月04日
    浏览(12)
  • 关于“Python”的核心知识点整理大全37

    关于“Python”的核心知识点整理大全37

    目录 13.6.2 响应外星人和飞船碰撞 game_stats.py settings.py alien_invasion.py game_functions.py ship.py 注意 13.6.3 有外星人到达屏幕底端 game_functions.py 13.6.4 游戏结束 game_stats.py game_functions.py 13.7 确定应运行游戏的哪些部分 alien_invasion.py 13.8 小结 第14 章 记 分 14.1 添加 Play 按钮 game_stats.py 往

    2024年02月04日
    浏览(16)
  • 关于“Python”的核心知识点整理大全18

    关于“Python”的核心知识点整理大全18

    目录 ​编辑 8.5 传递任意数量的实参 pizza.py 8.5.1 结合使用位置实参和任意数量实参 8.5.2 使用任意数量的实参 user_profile.py 8.6 将函数存储在模块中 8.6.1 导入整个模块 pizza.py making_pizzas.py 8.6.2 导入特定的函数 8.6.3 使用 as 给函数指定别名 关于“Python”的核心知识点整理大

    2024年02月04日
    浏览(16)
  • 关于“Python”的核心知识点整理大全30

    关于“Python”的核心知识点整理大全30

    目录 12.2.3 在 OS X 系统中安装 Pygame 12.2.4 在 Windows 系统中安装 Pygame 12.3 开始游戏项目 12.3.1 创建 Pygame 窗口以及响应用户输入 首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下: alien_invasion.py 12.3.2 设置背景色 alien_invasion.py 12.3.3 创建设置类 settings.py al

    2024年01月20日
    浏览(31)
  • 关于“Python”的核心知识点整理大全43

    关于“Python”的核心知识点整理大全43

    目录 ​编辑 15.2.3 使2散点图并设置其样式 scatter_squares.py 15.2.4 使用 scatter()绘制一系列点 scatter_squares.py 15.2.5 自动计算数据 scatter_squares.py 15.2.6 删除数据点的轮廓 15.2.7 自定义颜色 15.2.8 使用颜色映射 scatter_squares.py 注意 15.2.9 自动保存图表 15.3 随机漫步 15.3.1 创建 RandomWalk()类

    2024年02月04日
    浏览(10)
  • 关于“Python”的核心知识点整理大全33

    关于“Python”的核心知识点整理大全33

    目录 12.8.3 将子弹存储到编组中 alien_invasion.py 注意 12.8.4 开火 game_functions.py 12.8.5 删除已消失的子弹 alien_invasion.py 12.8.6 限制子弹数量 settings.py game_functions.py 12.8.7 创建函数 update_bullets() game_functions.py alien_invasion.py 12.8.8 创建函数 fire_bullet() game_functions.py 12.9 小结 往期快速传送门

    2024年02月03日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包