python中for循环的用法_9.python之for循环

dbcc308403932b61fd5c1c476356c637.png

平时的工作和生活中,总是伴随着很多枯燥乏味的循环。如果有计算机帮我们,就可以轻松的实现,因为计算机特别擅长做重复性工作。

而计算机之所以擅长重复性工作,是因为代码中包含了【循环语句】。本节课就讲讲循环语句中的for循环。

1、for...in...循环

上节课讲了列表,假设列表list中有10个元素,每次只取出一个元素打印,一共打印10次。代码如下:

list 

for循环是代码的第2-3行,只需要两行就能完成10次重复操作。如果把10个元素改为100个,依旧只需要两行代码。

for循环的特点:

  • 由for...in...的形式组成。
  • for...in...语句后面要加英文的冒号【:】。
  • for...in...语句的下一行要缩进4个空格或一个Tab键。和第5课中的if语句一样,在编程环境中输入英文冒号后按回车键,下一行会自动缩进。
  • for...in...语句的下一行语句会被重复执行,执行次数取决于for...in...语句的循环次数。

那么如何判断循环次数呢?这就需要了解for...in...循环的运行原理。

为了便于理解,我们可以将列表list看成一个箱子,箱子中的10个不同的物体(10个元素),这10个物体按照顺序排列(列表是有顺序的)。

当第一次执行for...in...语句时,系统会从箱子中拿出一个物体放进盒子中(变量i是盒子),根据排序拿出的是元素【1】。这时候执行print(i)语句,打印盒子i中的元素,所以打印结果是1。

因为每次只能取出一个元素,所以第二次会取出元素【2】,打印结果是2。列表list中有10个元素,依次类推,当取出最后一个元素【10】并打印完成后,循环结束。

除了上面代码的写法外,写成【for i in [1,2,3,4,5,6,7,8,9,10]:】可以吗?当然可以,打印结果是相同的。

如果写成【for number in [1,2,3,4,5,6,7,8,9,10]:】呢?这样也没问题,因为i和number都是作为变量存在的,for循环是把从列表中取到的元素装进变量中,因此变量名的选择无关痛痒。

for循环除了能从列表中取值外,还可以从字典中取值。代码如下:

price 

结果是从上往下依次打印出【汉堡】、【薯条】、【炸鸡】,换句话说,变量i中每次存储的都是字典中的【键】。

除了适用于列表和字典,for循环还适用哪些数据类型呢?阅读下面的代码,看看哪些会报错,在计算机上尝试写下运行。

a 

运行后发现,只有代码【for i in b:】会报错(【TypeError: 'int' object is not iterable】),这是因为整数是不能直接进行循环。必须通过str()函数转换成字符串类型。

通过上述得知,for循环除了列表和字典外,还适用于字符串类型。

2、range()函数

for循环常常和range()函数搭配使用,看下面的代码:

for 

输出结果从上到下依次是【0】、【1】、【2】。由此可以得知,range(x)函数可以生成一个从0到x-1的整数序列。

range()函数的第二种用法,代码如下:

for 

输出结果从上到下依次是【1】、【2】、【3】、【4】。由此可以得知,range(a,b)函数可以生成一个从a到b-1的整数序列。

range()函数还有第三种用法,代码如下:

for 

输出结果从上到下依次是【0】、【3】、【6】、【9】。由此可以得知,range(a,b,c)函数可以生成一个从a到b-1,元素之间间隔为c的整数序列。

3、两个例子

在我们的生活中,经常要用到循环,下面举两个案例。在看答案前,希望你能尝试自己写出来并运行。如果确实有困难再看答案。但是无论如何,一定要亲自动手写一遍。

数列求和公式每个人都不陌生,就是快速算出1+2+3+4+...+n之和的公式。我们假设n=100,现在用循环写出1+2+3+...+100的求和结果。

sum 

是不是很简单?扩展一下,如果要打印的结果为1+2+3+...+100=5050,加号中间的数字不用省略,代码该如何修改呢?

sum 

这比刚才单纯的求和要复杂,需要用到我们用到第5课中讲的if条件判断。但我相信配合注释你能够读懂。

需要解释一下,由于print()函数默认打印后会换行,所以需要用end=' '语句。实际上,print()函数默认换行是因为默认end='n'。把end=‘n’中的n去掉,就不会换行了。

如果end=‘’中的两个单引号之间有空格,则第一个打印出的+和下一个循环打印出的i的值之间,也会有空格。

今天的内容就到这里,在结束前留一个思考题,想想如何写出下图中的99乘法表。下节课会讲循环语句中while循环。

喜欢的话请点赞和收藏 (●'◡'●)ノ

想看更多精彩内容请关注公众号【打酱油的白熊】。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值