当前位置: 首页 > news >正文

做外语网站伊利网站规划与建设

做外语网站,伊利网站规划与建设,怎么做网站广告联盟,视频软件观看免费高清下载目录 ​编辑 8.3.4 结合使用函数和 while 循环 greeter.py 8.4 传递列表 greet_users.py 8.4.1 在函数中修改列表 printing_models.py 8.4.2 禁止函数修改列表 要将列表的副本传递给函数#xff0c;可以像下面这样做#xff1a; 往期快速传送门#x1f446;#x…目录 ​编辑 8.3.4 结合使用函数和 while 循环 greeter.py 8.4 传递列表 greet_users.py 8.4.1 在函数中修改列表 printing_models.py 8.4.2 禁止函数修改列表 要将列表的副本传递给函数可以像下面这样做 往期快速传送门在文章最后 感谢大家的支持欢迎订阅收藏专栏将持续更新 8.3.4 结合使用函数和 while 循环 可将函数同本书前面介绍的任何Python结构结合起来使用。例如下面将结合使用函数 get_formatted_name()和while循环以更正规的方式问候用户。下面尝试使用名和姓跟用户打 招呼 greeter.py def get_formatted_name(first_name, last_name):返回整洁的姓名full_name first_name last_namereturn full_name.title() # 这是一个无限循环! while True: 1 print(\nPlease tell me your name:)f_name input(First name: )l_name input(Last name: )formatted_name get_formatted_name(f_name, l_name)print(\nHello, formatted_name !) 在这个示例中我们使用的是get_formatted_name()的简单版本不涉及中间名。其中的while 循环让用户输入姓名依次提示用户输入名和姓见1。 但这个while循环存在一个问题没有定义退出条件。请用户提供一系列输入时该在什么 地方提供退出条件呢我们要让用户能够尽可能容易地退出因此每次提示用户输入时都应提 供退出途径。每次提示用户输入时都使用break语句提供了退出循环的简单途径 def get_formatted_name(first_name, last_name):返回整洁的姓名full_name first_name last_namereturn full_name.title() while True:print(\nPlease tell me your name:)print((enter q at any time to quit))f_name input(First name: )if f_name q:breakl_name input(Last name: )if l_name q:breakformatted_name get_formatted_name(f_name, l_name)print(\nHello, formatted_name !) 我们添加了一条消息来告诉用户如何退出然后在每次提示用户输入时都检查他输入的是 否是退出值如果是就退出循环。现在这个程序将不断地问候直到用户输入的姓或名为q 为止 Please tell me your name: (enter q at any time to quit) First name: eric Last name: matthes Hello, Eric Matthes! Please tell me your name: (enter q at any time to quit) First name: q 8.4 传递列表 你经常会发现向函数传递列表很有用这种列表包含的可能是名字、数字或更复杂的对 象如字典。将列表传递给函数后函数就能直接访问其内容。下面使用函数来提高处理列表 的效率。 假设有一个用户列表我们要问候其中的每位用户。下面的示例将一个名字列表传递给一个 名为greet_users()的函数这个函数问候列表中的每个人 greet_users.py def greet_users(names):向列表中的每位用户都发出简单的问候for name in names:msg Hello, name.title() !print(msg) 1 usernames [hannah, ty, margot] greet_users(usernames) 我们将greet_users()定义成接受一个名字列表并将其存储在形参names中。这个函数遍历收到 的列表并对其中的每位用户都打印一条问候语。在1处我们定义了一个用户列表——usernames 然后调用greet_users()并将这个列表传递给它 Hello, Hannah! Hello, Ty! Hello, Margot! 输出完全符合预期每位用户都看到了一条个性化的问候语。每当你要问候一组用户时都 可调用这个函数。 8.4.1 在函数中修改列表 将列表传递给函数后函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永 久性的这让你能够高效地处理大量的数据。 来看一家为用户提交的设计制作3D打印模型的公司。需要打印的设计存储在一个列表中 打印后移到另一个列表中。下面是在不使用函数的情况下模拟这个过程的代码 printing_models.py # 首先创建一个列表其中包含一些要打印的设计 unprinted_designs [iphone case, robot pendant, dodecahedron] completed_models [] # 模拟打印每个设计直到没有未打印的设计为止 # 打印每个设计后都将其移到列表completed_models中 while unprinted_designs:current_design unprinted_designs.pop()#模拟根据设计制作3D打印模型的过程print(Printing model: current_design)completed_models.append(current_design) # 显示打印好的所有模型 print(\nThe following models have been printed:) for completed_model in completed_models:print(completed_model) 这个程序首先创建一个需要打印的设计列表还创建一个名为completed_models的空列表 每个设计打印都将移到这个列表中。只要列表unprinted_designs中还有设计while循环就模拟 打印设计的过程从该列表末尾删除一个设计将其存储到变量current_design中并显示一条 消息指出正在打印当前的设计再将该设计加入到列表completed_models中。循环结束后显 示已打印的所有设计 Printing model: dodecahedron Printing model: robot pendant Printing model: iphone case The following models have been printed: dodecahedron robot pendant iphone case 为重新组织这些代码我们可编写两个函数每个都做一件具体的工作。大部分代码都与 原来相同只是效率更高。第一个函数将负责处理打印设计的工作而第二个将概述打印了哪 些设计 1 def print_models(unprinted_designs, completed_models):模拟打印每个设计直到没有未打印的设计为止打印每个设计后都将其移到列表completed_models中while unprinted_designs:current_design unprinted_designs.pop()# 模拟根据设计制作3D打印模型的过程print(Printing model: current_design)completed_models.append(current_design) 2 def show_completed_models(completed_models):显示打印好的所有模型print(\nThe following models have been printed:)for completed_model in completed_models:print(completed_model) unprinted_designs [iphone case, robot pendant, dodecahedron] completed_models [] print_models(unprinted_designs, completed_models) show_completed_models(completed_models) 在1处我们定义了函数print_models()它包含两个形参一个需要打印的设计列表和一 个打印好的模型列表。给定这两个列表这个函数模拟打印每个设计的过程将设计逐个地从未 打印的设计列表中取出并加入到打印好的模型列表中。在2处我们定义了函数 show_completed_models()它包含一个形参打印好的模型列表。给定这个列表函数 show_completed_models()显示打印出来的每个模型的名称。 这个程序的输出与未使用函数的版本相同但组织更为有序。完成大部分工作的代码都移到 了两个函数中让主程序更容易理解。只要看看主程序你就知道这个程序的功能容易看清得多 unprinted_designs [iphone case, robot pendant, dodecahedron] completed_models [] print_models(unprinted_designs, completed_models) show_completed_models(completed_models) 我们创建了一个未打印的设计列表还创建了一个空列表用于存储打印好的模型。接下来 由于我们已经定义了两个函数因此只需调用它们并传入正确的实参即可。我们调用 print_models()并向它传递两个列表像预期的一样print_models()模拟打印设计的过程。接 下来我们调用show_completed_models()并将打印好的模型列表传递给它让其能够指出打印 了哪些模型。描述性的函数名让别人阅读这些代码时也能明白虽然其中没有任何注释。 相比于没有使用函数的版本这个程序更容易扩展和维护。如果以后需要打印其他设计 只需再次调用print_models()即可。如果我们发现需要对打印代码进行修改只需修改这些代码 一次就能影响所有调用该函数的地方与必须分别修改程序的多个地方相比这种修改的效 率更高。 这个程序还演示了这样一种理念即每个函数都应只负责一项具体的工作。第一个函数打印 每个设计而第二个显示打印好的模型这优于使用一个函数来完成两项工作。编写函数时如 果你发现它执行的任务太多请尝试将这些代码划分到两个函数中。别忘了总是可以在一个函 数中调用另一个函数这有助于将复杂的任务划分成一系列的步骤。 8.4.2 禁止函数修改列表 有时候需要禁止函数修改列表。例如假设像前一个示例那样你有一个未打印的设计列 表并编写了一个将这些设计移到打印好的模型列表中的函数。你可能会做出这样的决定即便 打印所有设计后也要保留原来的未打印的设计列表以供备案。但由于你将所有的设计都移出 了unprinted_designs这个列表变成了空的原来的列表没有了。为解决这个问题可向函数传 递列表的副本而不是原件这样函数所做的任何修改都只影响副本而丝毫不影响原件。 要将列表的副本传递给函数可以像下面这样做 function_name(list_name[:]) 切片表示法[:]创建列表的副本。在print_models.py中如果不想清空未打印的设计列表可像下面这样调用print_models() print_models(unprinted_designs[:], completed_models) 这样函数print_models()依然能够完成其工作因为它获得了所有未打印的设计的名称但 它使用的是列表unprinted_designs的副本而不是列表unprinted_designs本身。像以前一样列 表completed_models也将包含打印好的模型的名称但函数所做的修改不会影响到列表 unprinted_designs。 虽然向函数传递列表的副本可保留原始列表的内容但除非有充分的理由需要传递副本否 则还是应该将原始列表传递给函数因为让函数使用现成列表可避免花时间和内存创建副本从 而提高效率在处理大型列表时尤其如此。 关于“Python”的核心知识点整理大全12-CSDN博客 往期快速传送门在文章最后 感谢大家的支持欢迎订阅收藏专栏将持续更新
http://www.zqtcl.cn/news/732054/

相关文章:

  • 网站服务器哪些好用php做的录入成绩的网站
  • 网站建设需要哪些信息vi设计什么意思
  • 苏州吴中区专业做网站玉树市公司网站建设
  • wordpress 不换行沈阳网站制作优化
  • 要维护公司的网站该怎么做怎么联系创意设计网站
  • 阿里云wordpress搭建网站网站如何做app
  • 做微商哪个网站比较好wordpress5.0.2运行慢
  • 中牟高端网站建设建自己的个人网站
  • 网站前台架构WordPress 分类 调用
  • 腾讯用户体验网站哈尔滨百姓网
  • 上海品质网站建设深圳自适应网站制作
  • gta5此网站正在建设更换wordpress后台登陆地址
  • 做花馍网站怎么做自己的简历网站
  • 旅游网站建设网站目的做饲料推广哪个网站好
  • 高网站排名吗网站网站集约化建设
  • 站长之家网站素材WordPress显示访客ip
  • 网上做兼职网站有哪些宁波seo关键词优化服务
  • 玉溪市网站建设推广商城做网站哪家好
  • 企业网站的管理系统人人秀h5制作软件
  • 好的做外贸的网站可口可乐广告策划书范文
  • 湖北分行建设银行网站北京平台网站建设价位
  • 重庆荣昌网站建设wordpress主题 微博
  • 邢台网站建设行情访问外国网站很慢
  • 江东外贸seo网站建设猎奇网站模板
  • 网站做哪些比较赚钱七色板网站建设
  • 专门做甜点的视频网站wordpress 首页 html
  • 建设银行网站维修图片昆明建设网站哪家好
  • 长春市做网站哪家好如何免费做网站网页
  • 时尚工作室网站源码百度seo现状
  • html怎么做查询网站吗前程无忧招聘网下载app官网