python while 循环 全局变量_python的日常应用->入门篇04

沧海桑田,物换星移。
昼夜旋转,寒暑更替。
这一切的一切都是轮回。

循环

一个程序从头跑到尾直勾勾的跑完了,中间如果没有弯弯绕绕的也就少了那么点智能的味道。

更别提把简单重复的工作交给电脑去做了。

因为这里有一个重点词是“重复”。

举个例子,我们来做一道简单的加法:1 + 2 + 3 + 4 + …… +999 + 1000 = ?

有一些机智的同学能快速的回答出来:“这是等差数列!首项加末项乘以项数除以二!”

恭喜这些同学,学会了一种叫做“算法”的学问!

可是这次我并不想讨论算法,我就是来找茬的,我气焰嚣张的严要求大家必须算出每次相加时的结果!

如果是不会编程的同学看到这种题目,一定会十分痛苦。

不过交给程序以后,我们就可以高枕无忧了!

下面说一下第一种循环:for循环。

for循环

先上代码!

a = 0
for i in range(10001):
    a += i
    print(a)

这一坨代码的输出结果就是0, 1, 3, 6, 10, 15……49995000, 50005000 。也就是上面题目的答案!

我们来解读一下代码!这里使用注释来逐行说明,下方代码中“#”后面的所有东西都是注释,它们会被解释器忽略掉,不管怎么写都不会影响程序的运行!

a = 0  # 这里设置一个变量,用来存放相加的一个结果。因为等号右边的0没有引号包裹,所以它是一个数字,也就是int类型
for i in range(10001):  # range()是python自带的一个方法,它可以生成一个可迭代对象,然后我们用i这个变量来迭代它
    a += i  # “+=”的作用等同于a = a + i,每次遍历的时候,都会将i的值加到a中
    print(a)  # 将每次的结果打印出来

如果不太容易理解,我们再来写一个简单一点的。

s = "123456"
for i in s:
    print("当前数字:",  i)

上面代码运行结果为:

>>> s = "123456"
>>> for i in s:
...     print("当前数字:",  i)
... 
当前数字: 1
当前数字: 2
当前数字: 3
当前数字: 4
当前数字: 5
当前数字: 6

我们可以看到,程序把字符串“123456”中的每一个元素逐个打印出来了!这个过程我们称为遍历

等等!上面不是说迭代吗,为啥这里变成遍历了?

其实在上述情况中用遍历或是迭代都可以,其间细微的差别有兴趣的同学可以自己搜索一下,这里不做展开了。

现在看到的是这一个for循环里,我们的“i”从“s”中逐个拿到每一个元素,并保存在自己身体里,等拿到下一个元素时,再直接替换掉。

0de71f75db5cc026c5490bebb289fba9.png

上图就是for循环的流程图。

我们再回到最开始的那个问题。range()方法就是会生成一个可迭代对象,默认从0开始,到括号中指定的数字结束。当然了,它也是左闭右开的,所以我们给它指定了10001作为结束位置。

结合现在对for循环的理解,我们是不是已经能自己读懂代码了呢?

如果没有问题,那就恭喜你!学会一个新技能的前提就是读懂它!你已经完成了第一步!

while循环

for循环我们通常会在知道遍历对象长短的情况下使用,如果我们不知道遍历对象的长短,不知道该在哪里停下来,或是我们压根就不想让它停下来呢?

这时就需要用到while循环了!

再举个例子:希望每隔1秒就按顺序打印一次数字,打印5次后就跳出循环。代码如下:

import time  # python中一个时间相关的标准库,后面会详细讲的
​
c = 0  # 定义一个int类型的计数器
while c < 5:  # 如果while后面的条件成立(True)则进入本次循环
    c += 1  # 进入循环后计数器+1,关于+=是啥意思,在上面有说明哦
    print(c)  # 打印当前数字
    time.sleep(1)  # 等待1秒后继续

输出结果:

>>> import time 
>>> 
>>> c = 0 
>>> while c < 5: 
...     c += 1
...     print(c) 
...     time.sleep(1) 
... 
1
2
3
4
5

与预期一样!

这个似乎也没有什么难点!我们只需要注意一件事,只要while后面写的条件为真,循环就会一直持续下去,也被称为死循环!所以我们在以后使用while循环的时候一定要小心谨慎,不要写过于复杂的条件,也一定要预留可以跳出循环的出口!

最后再说一件事情,这一节中我们的代码并不像前两节中顺序执行的。所以就出现了一个代码块的概念。我们python通过“缩进”来区分代码块。缩进是指本行代码开头位置的空格,我们通常以4个空格作为一个缩进。相同缩进的代码属于一个代码块。关于这方面的问题我会在后面详细说明!

最最后留下两个问题。

  1. 在上面的while循环中,如果将c += 1prin(c)两行代码位置互换,我们的输出结果会有什么不同?
  2. 如何在python代码中直接跳出循环?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值