Python自学7——第四章(2):range()函数、循环结构:while循环、for-in循环的用法

目录

一、内置函数range()函数

1、写法一示例

2、写法二示例

3、写法三示例

 二、循环结构

1、while循环

练习1:计算0-4的累加和

练习2:计算1-100之间的偶数和

2、for-in循环

练习3:使用for循环计算0-100之间的偶数和

练习4:输出100-999之间的水仙花数(水仙花数:比如153=个位上的3*3*3+十位上的5*5*5+百位是的1*1*1)


一、内置函数range()函数

它是个内置函数(不需加任何前缀就可以使用)

用于生成一个整数序列,用作在for循环中的遍历对象

创建range对象的三种方式:

他的返回值是一个迭代器对象

优点在于:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为只需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。

1、写法一示例

我们能看到其输出的序列是0-9,所以这样写的话就是默认从0开始了,而不是从1开始到0.而且还默认每次都加以,也就是步长是1.

2、写法二示例

注意规定了起点和终点了的话,最后的输出结果是个开区间,不包括终点

3、写法三示例

 之前学过的in和not in语句可以判断整数序列中是否存在指定的整数。可以拿来试一下:

 二、循环结构

可以分为while循环和for-in循环。

1、while循环

示例:

它与if的区别在于if就判断一次,而while判断n+1次,包括n次TRUE和一次FALSE。

练习1:计算0-4的累加和

我的写法:

 

老师的方法:

四步循环法;先初始化变量,再条件判断,再写条件执行体,最后改变变量。

总结:初始化的变量与条件判断的变量与改变的变量为同一个。

与老师的方法做比较,显然我的方法多输出了一个15,题里说让加到4,我却加到了5,为什么呢?

因为执行的顺序不对,不应该先让i加一在就和,应该先从0求和再让i加一才对。

所以要好好考虑程序的流程。

练习2:计算1-100之间的偶数和

我的写法:

 老师写得:

 老师写得比我写得少了个else,我后来又尝试了一下把else删掉(我本来一开始也是没有带else的但是它报错了,于是我加上else就好啦),

 把else删掉后是死循环,输出不来东西,这是因为“i+=1”这条语句是在if里面的,所以在判断i<=100之前,i是1,也一直会是1,它会一直进不来if的,只是判断完成后就再判断,一直循环,无穷无尽。所以这就又涉及到Python的格式问题了。

当我对“i+=1”往前进一个tab键时,程序就是对的,因为此时的“i+=1”是脱离了if的无论进没进if都是要执行这一句话的,这也就使得程序能够顺利进行了。

所以说啊,格式!格式!格式!对齐!对齐!对齐啊!!!!!!在Python里面很重要!!!这下就要成为一名合格的“强迫症患者”了啊!!!

拓展:

(1)、如果把上图中第10行的“i%2==0”写成“i%2”的话就是算1-100之间的奇数和了。是不是很神奇,这里用到的就是布尔值,“i%2”表示的是1,也就是不能被2整除,因此是奇数和。

(2)、如果把上图中的“i%2==0”写成 not bool(i%2)的话就又是计算偶数和了,因为i%2是1,对其取反就是0了,那就是能被2整除了,所以是偶数和。

2、for-in循环

 注意遍历的概念:从字符串或序列中依次取值。遍历的对象必须是可迭代对象,目前学过的可迭代对象有字符串和序列。也就是说for-in的对象必须是可迭代对象。

字符串简例:

输出:

 

 Range示例:

这里的i就相当于在range的这个0-9的范围里进行遍历了。

但是如果不需要它这个遍历的家伙呢?

Python中规定:如果不需要自定义变量的话,需要把for和in之间的东西变成“_”.

示例:

这里的话,range充当了输出次数的作用,然后便输出了5句“人生苦短,我用Python”。

练习3:使用for循环计算0-100之间的偶数和

我的代码:

练习4:输出100-999之间的水仙花数(水仙花数:比如153=个位上的3*3*3+十位上的5*5*5+百位是的1*1*1)

我的代码:

我们能看到,就输出了一个370,显然是出现了问题了。为什么呢?

后来我发现,原来是我计算十位数时取整符号用错了,应该用取整符号//而不是用除法符号/,因为如果用除法符号的话就会出现下面的后果:

我们可以看到使用除法符号的话,输出的大部分是小数,而取整的话输出的才是我们想要的十位数字,所以用除法符号会让我们舍弃掉好多符合要求的值,所以,要三思而后行。

所以这样就对了:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wo~he!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值