《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

学习目标

  1. 了解对相似逻辑的简化编写——循环

推荐

1.《备受好评的看得懂的C语言入门教程》

目录

第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂
第二篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(二)魔法实习生第一步了解魔杖的使用
第三篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧
第四篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(四)了解魔法百宝箱列表、字典及基本数据类型
第五篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(五)我的魔法竟然有了一丝逻辑
第六篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大
第七篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
本系列教程将会以一种“魔法世界”的形式编写,欢迎各位支持。

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~并且公众号会更快更新哟。
在这里插入图片描述

一、了解对相似逻辑魔法的简化编写

1.1 了解代码中的相同逻辑
在日常的代码编写中,经常会遇见一些相似的流程,一部分的相似流程是可以简化的,例如我们需要编写一程序,我们输入一个值,这个值需要加81次9,每次都需要显示输入的值加9后的值,这时该如何进行程序的编写呢?通过本系列课程已学过的知识过于麻烦,不信?那我就写一下输入一个值,该值重复加81次9,每次都显示的代码示例。为了方便观察,我只写出前6次:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)
a=a+9
print('第1次加9后:',a)
a=a+9
print('第2次加9后:',a)
a=a+9
print('第3次加9后:',a)
a=a+9
print('第4次加9后:',a)
a=a+9
print('第5次加9后:',a)
a=a+9
print('第6次加9后:',a)

以上代码使用了input函数接收用户输入的一个值,并且使用“请输入一个值,将对这个值进行6次加9,且每次都输出显示:”作为提示,由于我们在之前的章节中讲到,使用input接收的值将是字符串类型,由于加法只能够使用数字进行相加,那我应该使用int对接收的值进行类型转换,一般代码应该为:

a=int(a)

但我在此处的代码编写为:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))

这样写是否可以呢?当然可以。int表示讲一个值转换为一个整数类型,在此input将会返回一个值,该值是我们输入的结果,那么input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:')则表示一个值,使用int将这个值转换为整数当然是可以的。最后将转换后的值赋值给a。

随后将变量a自身加9后赋值给本身:

a=a+9

此处也可以这样写:

a+=9

a+=9a=a+9相等,a+=9表示变量a对等于号右边的值进行相加,最后返回给自身;如果是a-=9则表示a变量自身减去9后赋值给变量a。所以以上代码可以写成:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)
a+=9
print('第1次加9后:',a)
a+=9
print('第2次加9后:',a)
a+=9
print('第3次加9后:',a)
a+=9
print('第4次加9后:',a)
a+=9
print('第5次加9后:',a)
a+=9
print('第6次加9后:',a)

变量进行相加后,随后使用print进行输出,结果为:
在这里插入图片描述

以上代码是可以简化的,我们查看代码中的规律,可以发现每次都是在变量a进行加9后输出,我们抛开变量值的不同,每次这个逻辑都是重复的,一共重复了6次。弱我们去掉print内的次数,如:print('第1次加9后:',a)改成print('加9后:',a)后,将得到完全重复的:

a+=9
print('加9后:',a)

那如何让该代码重复6次呢?

2.1 重复魔法while循环
while是python编程中的循环魔法法之一,可以自己设置代码重复执行多少次。while循环使用非常简单,我们可以定义一个循环控制变量简称循环变量,循环变量可以控制循环多少次,一般该变量的类型为整数型,如i=0;随后开始使用while循环设置条件,例如我们需要设置循环重复次数为10,则可以写成while i<10:,表示变量i小于10的时候就可以一直重复一些代码,当i大于10就不循环了。例如我们需要重复输出10次你好,则可以写成如下代码:

i=0
while i<10:print('你好吗')

首先我们定义了一个变量i并且值为0,随后使用while魔法咒语,给while魔法咒语一个条件i<10,随后一个冒号结束;冒号下一行开始编写我们需要循环的代码,在这里一定要使用缩进表示代码的结构;在此处我编写了代码 print('你好吗'),表示输出10次“你好吗”。那么这就完了吗?并没有,现在的程序是错的。你可能问我为什么错?那我回答你,i变量每次循环都没进行变动,永远i的值都是0,永远小于10,会一直循环无限次。在while循环中,每执行一次循环就会判断一次条件是否成立,假如不成立则会不执行循环;在这里需要添加变量i的增加,每循环1次则加1,一共加10次 就会条件不成立,循环不再执行。代码如下:

i=0
while i<10:print('你好吗')i+=1

运行程序,结果如下:
在这里插入图片描述
那我们想一下,在1.1中的程序效果如何实现?其实只要把相同的逻辑放到循环中就可以了,并且设置次数为6,代码编写如下:

i=0
while i<6:print('加9后:',a)a+=9i+=1

如上代码,首先定义一个变量i为0,随后使用while循环判断i每次循环是否小于6,小于6则执行,不小于则不执行循环;每次循环都输出a的值,输出完毕后a开始自增9(在自己的基础上加一个数值表达为自增),自增完后i每次都自增加1,用于循环控制。我们的a是通过用户输入传入的,那么在循环前加上1.1中的代码:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)i=0
while i<6:print('加9后:',a)a+=9i+=1

这样就完成了循环的使用,这样代码也少了,看着也舒服;运行结果如下:
在这里插入图片描述

如果我们需要加81次,我只需要更改while的判断条件i<6编程i小于81即可:
a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)i=0
while i<81:print('加9后:',a)a+=9i+=1

运行结果如下:
在这里插入图片描述

81次也轻轻松松解决了问题,可是我们发现,没有多少次的提示,数据一点都不清晰,那怎么办呢?小问题,我们知道在while循环中,每次i都是加1的,第1次i是0,第2次i是1,每次都会加1,所以我们每次都把i输出就可以知道现在是第几次循环了:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)i=0
while i<81:print(i,'次加9后:',a)a+=9i+=1

以上代码中输出了i的值,运行结果如下:
在这里插入图片描述
那我们想要自己控制循环次数怎么办?怎运行的时候我们手动输入一个值,这个值传入一个变量中,该变量作为条件,代替以上的81次即可:

a=int(input('请输入一个值,将对这个值进行6次加9,且每次都输出显示:'))
print('你输入的值是:',a)
b=int(input('请输入一个值,控制循环次数'))
print('你输入的值是:',b)i=0
while i<b:print(i,'次加9后:',a)a+=9i+=1

运行结果如下:
在这里插入图片描述

二、总结

本节内容介绍了C语言while循环的使用,并且介绍了如何通过变量控制循环,主要内容并不是一些使用技巧,而是循环的使用,理解循环很重要,这篇为之后的循环作一个铺垫,希望各位魔导师们再接再厉哟~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tiny模板语言(VelocityPlus)初步入门

2019独角兽企业重金招聘Python工程师标准>>> 1 关于用户手册 本文主要介绍如何在模板中使用Tiny模板语言&#xff0c;通过查阅本手册&#xff0c;可以对Tiny模板语言 TTL(Tiny Template Language)的用法有一个较全面的认识&#xff0c;并学会如何有效地使用Tiny模板…

『技术群里聊些啥』.NET 如何计算文件 MD5 哈希

前言有网友在交流群中询问&#xff0c;文件 MD5 是全部读取到内存后计算出来的&#xff0c;还是拿到流就可以计算出来了&#xff1a;原理上来说&#xff0c;MD5 需要对全部内容做运算&#xff0c;所以应该是获取所有内容后再计算的。但是&#xff0c;如果全部读取到内存后再计算…

探索发现:平台云——云的新风向

本文讲的是探索发现&#xff1a;平台云——云的新风向&#xff0c;云主机&#xff0c;自2011年火热崛起之后&#xff0c;成为IDC行业替代VPS的完美系列&#xff0c;它的成功在于其相对于VPS的压倒性优势;而平台云凭借其的便捷的操作、实时监控和可视化服务&#xff0c;让站长们…

windows下配置mysql主从复制_Windows下MySQL主从复制的配置方法

MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库)。主数据库一般是实时的业务数据写入和更新操作&#xff0c;从数据库常用的读取为主。主从复制过程&#xff1a;1、主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制…

【ArcGIS风暴】全国1:100万基础地理数据库获取及ArcGIS图幅完美拼接---以甘肃省为例

在日常工作中,如第三次全国国土调查、不动产登记等,我们总需要对图斑、线状等数据进行数据分幅、图幅拼接等操作。另外,日常学习工作中,无论是制图还是进行分析,都不可避免的需要使用一些基础地理数据,像行政边界、水系、道路、居民地等等,那么,这些基础地理数据有没有…

体验 .NET MAUI RC3 ,马上就要发布RTM

前言.NET MAUI 已经传了很久了&#xff0c; 5月10日&#xff0c;微软终于跟随 VS2022 17.3 预览版 发布了MAUI的候选版本 &#xff0c;今天我们来体验一波。环境运行环境&#xff1a;.Net 6开发环境&#xff1a;VS2022 17.3 &#xff08;必须是预览3&#xff09;使用在安装了V…

WebApi的调用-3.Basic验证

webapi里的特性 /// <summary>/// Basic验证 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authori…

ats 字符集问题

2019独角兽企业重金招聘Python工程师标准>>> 架构很简单&#xff0c;nginx->ats->nginx 后端nginx有做内容替换&#xff0c;字符编码为gb2312&#xff0c;因为ats为utf8编码导致前端内容展示时进行了错误的替换&#xff0c;导致内容错乱。 如 治疗鼻窦炎---&g…

《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写

一、学习目标 了解C语言的socket的概念了解C语言socket的使用方法完成C语言socket服务端 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1a;&#xff0…

古董来了:1999年的物件,香港已经回归了,我都上初中了,那么你出生了吗?

受疫情的影响&#xff0c;哪都去不了&#xff0c;只能在家憋着&#xff08;为社会做贡献&#xff09;这种状态已经持续了将近两个月了。无聊至极的我&#xff0c;一天无所事事&#xff0c;只能是在家这儿瞅瞅&#xff0c;那儿看看&#xff0c;用一句诗经里面的话来形容我最合适…

.NET性能优化-为结构体数组使用StructLinq

前言本系列的主要目的是告诉大家在遇到性能问题时&#xff0c;有哪些方案可以去优化&#xff1b;并不是要求大家一开始就使用这些方案来提升性能。在之前几篇文章中&#xff0c;有很多网友就有一些非此即彼的观念&#xff0c;在实际中&#xff0c;处处都是开发效率和性能之间取…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

学习目标 了解魔法积木的使用——自定义函数了解魔法积木的结果反馈——自定义函数返回值了解魔法积木的原料传递——自定义函数传参了解魔法积木的类型分类——类与对象 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得…

关于Activity的getReferrer():如何在Activity中获取调用者?

http://blog.csdn.net/u013553529/article/details/53856800 关于Activity的getReferrer()之一&#xff1a;如何在Activity中获取调用者&#xff1f; http://blog.csdn.net/u013553529/article/details/53882440 关于Activity的getReferrer()之二&#xff1a;调用者的包名是如何…

【遥感数字图像处理】实验:Erdas 软件的认识与使用

Erdas软件下载地址:《GISer福音来了:测绘地理信息类专业软件版本大全汇总下载!》 1.1 简介 ERDAS IMAGINE 是美国 ERDAS(Earth Resource Data Analysis System)公司开发的遥感图像处理系统,它以其先进的图像处理技术,友好、灵活的用户界面和操作方式,面向广阔应用领域…

import 别名_Python基础找茬系列09--import和from-import的引用区别

一、语法区别二、两种导包在内存上的区别一图看懂import与from-import的区别无论是使用import隐式导包还是form-import显示导包&#xff0c;整个模块都会被加载到内存中例如&#xff1a;from test import b,整个模块依旧进入内存&#xff0c;因为如果只有函数b进入内存&#xf…

设计一个限速器

限速器 (Rate Limiter) 相信大家都不会陌生&#xff0c;在网络系统中&#xff0c;限速器可以控制客户端发送流量的速度&#xff0c;比如 TCP, QUIC 等协议。而在 HTTP 的世界中&#xff0c; 限速器可以限制客户端在一段时间内发送请求的次数&#xff0c;如果超过设定的阈值&…

C语言新手的100个报错解法 已更新11个错误

学习目标 收藏文章报错可以过来查 [更新数据] 此文将会持续更新&#xff0c;收录错误信息&#xff0c;若本文没有收录记得联系我~ CSDN 1_bit 持续更新中… [发布日期&#xff1a;2020年11月16日 14:55:00] 更新&#xff1a; 暂无 C语言教程 C语言真的很难吗&#xff1f;那…

【遥感数字图像处理】实验:遥感图像显示与数据输入/输出(Erdas版)

一、实验平台&#xff1a;Erdas 9.1 二、实验内容&#xff1a;视窗功能简介、图形和图像显示操作、实用菜单操作、显示操作、AOI菜单操作、矢量和栅格菜单、数据的输入输出等。 三、实验目的&#xff1a;初步了解Erdas的主要功能模块&#xff0c;在此基础上&#xff0c;掌握视…

在Windows Server2016中安装SQL Server2016(转)

在Windows Server2016中安装SQL Server2016&#xff08;转&#xff09; 转自&#xff1a; http://blog.csdn.net/yenange/article/details/52980135 参考&#xff1a; SQL Server2016企业版 附全版本key - moonpure的专栏 - CSDN博客 http://blog.csdn.net/moonpure/article/d…

Unity3D 之UGUI 滑动条(Slider)

这里来讲解下UGUI 滑动条(Slider)的用法 控件下面有三个游戏对象 Background -->背景 Fill Area --> 前景区域 Handle Slide Area --> 滑动条 Slider的属性 其他几个设置和其他控件都差不多&#xff0c;这里来讲解几个特有的属性。 Direction -->方向 Whole Number…