比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

Python学习(9)–for和while循环

Python学习(9)–for和while循环http://www.bieryun.com/2312.html

00

1.for循环中对字典的遍历

在上一讲中的最后,我们讲述了用for循环对字典进行遍历的一种方法,字典本不是序列,我们利用字典的items()方法将字典转化为一个以元组作为元素的列表序列,并对这个列表遍历,这里存在一个问题就是,我们最终遍历的并不是字典,而是字典转化后的列表,现在我们将要表述的这种方法是对字典直接遍历的一种方法,先看代码:

[python] view plain copy

  1. s={‘name’:‘zhangsan’,‘age’:14,‘sex’:‘man’}
  2. for x in s:
  3.     print(x)
  4. for x in s:
  5.     print(s[x])

 

如上代码所示,第一个for循环我们是对字典中的每个键进行遍历,第二个循环才是通过键获取元素的值,最后实现对列表中元素值进行遍历,这里需要注意的是利用迭代变量对字典进行遍历,直接获取到的是字典的键,需要通过获取到的这个键间接获取相应的值.

以上代码打印结果如下:

2.for循环中使用else

在python中,for循环与其他语言不同的一点的是,for循环可以与else搭配使用,而这个else执行的时机就是,当for循环正常结束后就会执行else分支下的语句,那么怎样才算正常结束呢,其实这是根据for循环语句执行的次数来判别的,比如for循环应该执行10次,但是执行到第6次,跳出循环,导致for循环执行次数不到10次,这种情况下是不执行else语句分支的,比如以下代码:

[python] view plain copy

  1. for x in range(6):
  2.     print(x)
  3. else:
  4.     print(‘end…’)

结果如下:


在正常情况下,for循环执行了6次,所以最后执行了else语句分支.再看如下代码:

[python] view plain copy

  1. for x in range(6):
  2.     print(x)
  3.     if x==3:
  4.         print(‘break’)
  5.         break;
  6. else:
  7.     print(‘end…’)

打印结果如下:

当for循环执行到x==3时,我们执行break语句,使之跳出循环,这个时候for循环只执行了4次,并没有在正常情况下执行6次,所以这种不正常的情况下是不会执行else分支的.在这里我们提到了break语句,其含义与c语言中的break含义是一样的,即跳出循环.

提到break语句,不得不提的就是continue语句,continue语句只会让程序结束本次循环并开始下一次循环,并不会跳出整个循环.下面看如下代码:

[python] view plain copy

  1. for x in range(6):
  2.     print(x)
  3.     if x==3:
  4.         print(‘continue’)
  5.         continue;
  6. else:
  7.     print(‘end…’)

 

打印结果如下:

通过代码可以看出,当循环执行到x==3时,第4次循环结束,这一点可以通过没有打印x可以证明,然后开始第5次循环,并一直到循环结束,这种情况下程序执行了6次,是正常情况下程序的结束,所以执行了else分支语句.

3.for循环中使用if语句占位桩

下面介绍在for循环中会使用到pass占位桩的概念,在for循环中我们可能会对多次或者某次的循环进行判断,当我们使用if语句进行判断的时候,可能暂时还没想好对这次循环要进行的操作,这个时候就可以使用占位桩pass,pass的作用就是什么也不做,只是起到一个占位的作用,先看如下代码:

[python] view plain copy

  1. for x in range(6):
  2.     if x==3:
  3.         pass#占位桩
  4.     print(x)

结果如下:

可以看到无论是否有占位桩,for都照样执行,没有哪次循环会结束,仅仅是每次for循环都多了一次判断,而continue语句会结束本次循环,并开始下一次循环,这一点两者有不同之处.

4.python退出程序

在python中程序可能会发生异常,从而不得不退出整个程序,使用exit()语句可以直接退出python程序,程序一旦退出,python编译器就不会再对剩下没有执行的程序进行编译执行,这里需要注意与break语句的区别,break语句只是跳出整个循环,并没有退出整个程序,跳出循环后,剩下没有执行的程序还是会被编译执行的.如下代码:

[python] view plain copy

  1. for x in range(6):
  2.     if x==3:
  3.         pass#占位桩
  4.     print(x)
  5. exit()
  6. for x in range(6):
  7.     if x==3:
  8.         pass#占位桩
  9.     print(x)

代码结果如下:

从结果可以看到,程序只是执行完第一个for循环就结束了,因为执行了exit()语句整个程序都退出了.

5.while循环

在讲while循环之前,我们先总结下while循环与for循环的区别,for循环一般用在我们已知循环次数的情况下,比如说对于一个列表的遍历,循环的次数就是列表的长度,对于这种我们已知循环次数的情况,一般使用for循环.而while循环一般用在只知道判断条件,但是不知道循环次数的情况下,一般使用的是while循环,以下就是一个例子:

[python] view plain copy

  1. from pip._vendor.distlib.compat import raw_input
  2. while True:
  3.     print(‘hello’)
  4.     x=raw_input(‘please input:’)
  5.     if x==‘q’:
  6.         print(‘end’)
  7.         break;

以上代码的功能就是,用户输入一个字符,程序判断此字符是否为’q’,如果是’q’,则跳出循环,程序结束,否则用户继续输入.此程序只有在运行中才知道循环的次数,如果用户一直不输入’q’,则程序一直进行下去,永无休止.对于这种程序循环次数未知的一般使用while循环.以下是程序执行结果:

6.for循环与while循环的共同之处

无论在for循环还是while循环中,都是可以使用continue,break关键字以及else分支,且使用规则两者也是一样的.下面举一个在while循环中使用他们的例子,代码如下:

[python] view plain copy

  1. from pip._vendor.distlib.compat import raw_input
  2. x=
  3. while x!=‘q’:
  4.     x=raw_input(‘please input:’)
  5.     if x==‘w’:
  6.         break
  7.     if x==‘e’:
  8.         continue
  9.     print(‘hello’)
  10. else:
  11.     print(‘x==q end’)

如上所示代码,当用户输入字符’e’时,执行continue,立即结束本次循环,开始下一次循环;当用户输入’w’时,直接跳出循环,非正常情况下结束循环,不执行else语句分支;当用户输入’q’时,正常结束循环,执行else语句分支.

代码执行结果如下:

这些日子课设太多,没什么时间写,接下来我会尽量补齐,在学习完基本语法和语句后,接下来我们会学习python函数,模块化地编写程序,一起努力吧.嘿嘿.

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS