Python3基础之条件与循环控制实例解析


Posted in Python onAugust 13, 2014

本文实例形式讲解了Python3的条件与循环控制语句及其用法,是学习Python所必须掌握的重要知识点,现共享给大家供大家参考。具体如下:

一般来说Python的流程控制语句包括:if条件语句、while循环语句、for循环语句、range函数以及break、continue、pass控制语句。这些语句在Python中的语义和在其他语言中基本是一样的,所以这里就只说它们的用法。

一、if语句

if语句是最常用的条件控制语句,Python中的一般形式为:

if 条件一:
 statements
elif 条件二:
 statements
else:
 statements

实例

if condition_1:
  statement_block_1
elif condition_2:
  statement_block_2
else:
  statement_block_3

如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
如果 "condition_1" 为False,将判断 "condition_2"
如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
如果 "condition_2" 为False,将执行"statement_block_3"块语句

Python中用elif代替了else if,所以if语句的关键字为:if ? elif ? else。

注意:

1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switch ? case语句。

示例代码如下:

x = int(input("Please enter an integer: "))
if x < 0:
 print('Negative.')
elif x == 0:
 print('Zero.')
else:
 print('Positive.')

实例

以下是一个简单的 if 实例:

#!/usr/bin/python3
 
var1 = 100
if var1:
  print ("1 - if 表达式条件为 true")
  print (var1)
 
var2 = 0
if var2:
  print ("2 - if 表达式条件为 true")
  print (var2)
print ("Good bye!")

执行以上代码,输出结果为:

1 - if 表达式条件为 true
100
Good bye!

从结果可以看到由于变量 var2 为 0,所以对应的 if 内的语句没有执行。

以下实例演示了狗的年龄计算判断:

#!/usr/bin/python3
 
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age < 0:
  print("你是在逗我吧!")
elif age == 1:
  print("相当于 14 岁的人。")
elif age == 2:
  print("相当于 22 岁的人。")
elif age > 2:
  human = 22 + (age -2)*5
  print("对应人类年龄: ", human)
 
### 退出提示
input("点击 enter 键退出")

将以上脚本保存在dog.py文件中,并执行该脚本:

$ python3 dog.py
请输入你家狗狗的年龄: 1

相当于 14 岁的人。
点击 enter 键退出

以下为if中常用的操作运算符:

操作符 描述
小于
小于或等于
> 大于
>= 大于或等于
== 等于,比较对象是否相等
!= 不等于

实例

#!/usr/bin/python3
 
# 程序演示了 == 操作符
# 使用数字
print(5 == 6)
# 使用变量
x = 5
y = 8
print(x == y)

以上实例输出结果:

False
False

high_low.py文件演示了数字的比较运算:

实例

#!/usr/bin/python3 
 
# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
  guess = int(input("请输入你猜的数字:"))
 
  if guess == number:
    print("恭喜,你猜对了!")
  elif guess < number:
    print("猜的数字小了...")
  elif guess > number:
    print("猜的数字大了...")

执行以上脚本,实例输出结果如下:

$ python3 high_low.py
数字猜谜游戏!
请输入你猜的数字:1
猜的数字小了...
请输入你猜的数字:9
猜的数字大了...
请输入你猜的数字:7
恭喜,你猜对了!

if 嵌套

在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。

if 表达式1:
  语句
  if 表达式2:
    语句
  elif 表达式3:
    语句
  else:
    语句
elif 表达式4:
  语句
else:
  语句

实例

# !/usr/bin/python3
 
num=int(input("输入一个数字:"))
if num%2==0:
  if num%3==0:
    print ("你输入的数字可以整除 2 和 3")
  else:
    print ("你输入的数字可以整除 2,但不能整除 3")
else:
  if num%3==0:
    print ("你输入的数字可以整除 3,但不能整除 2")
  else:
    print ("你输入的数字不能整除 2 和 3")

将以上程序保存到 test_if.py 文件中,执行后输出结果为:

$ python3 test.py
输入一个数字:6
你输入的数字可以整除 2 和 3

二、while语句

Python中while语句的一般形式:

while 判断条件:
 statements

同样需要注意冒号和缩进。另外,在Python中没有do..while循环。

示例代码如下:

a, b = 0, 1
while b < 10: # 循环输出斐波纳契数列
 print(b)
 a, b = b, a+b

三、for语句

Python中的for语句与C语言中的for语句有点不同:C语言中的for语句允许用户自定义迭代步骤和终止条件;而Python的for语句可以遍历任何序列(sequence),按照元素在序列中的出现顺序依次迭代。一般形式为:

for variable in sequence:
 statements
else:
 statements

示例代码如下:

words = ['cat','love','apple','python','friends']
for item in words:
 print(item, len(item))

如果你需要在循环体内修改你正迭代的序列,你最好是制作一个副本,这时切片标记就非常有用了:

words = ['cat','love','apple','python','friends']
for item in words[:]: # 制作整个列表的切片副本
 if len(item) >= 6:
 words.insert(0, item)
print(words)

我们注意到循环语句中还可以使用else子句,下面第五点有讲到。

四、range函数

如果你要遍历一个数字序列,那么内置的range()函数就可以派上用场了。函数range()常用于for循环中,用于产生一个算术数列:

>>> list(range(10)) # 默认从0开始
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11)) # 从1到11,前闭后开
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5)) # 5表示步长,每隔5取一个数
[0, 5, 10, 15, 20, 25]

示例代码如下:

for i in range(2, 11):
 print(i)

五、break、continue、pass及else子句

①.break

break语句与C语言中的一样,跳出最近的for或while循环。

②.continue

continue语句同样是从 C 语言借用的, 它终止当前迭代而进行循环的下一次迭代。

③.pass

pass语句什么都不做,它只在语法上需要一条语句但程序不需要任何操作时使用。pass语句是为了保持程序结构的完整性。

④.else子句

在循环语句中还可以使用else子句,else子句在序列遍历结束(for语句)或循环条件为假(while语句)时执行,但循环被break终止时不执行。如下所示:

# 循环结束执行else子句
for i in range(2, 11):
 print(i)
else:
 print('for statement is over.')

# 被break终止时不会执行else子句
for i in range(5):
 if(i == 4):
 break;
 else:
 print(i)
else:
 print('for statement is over') # 不会输出
Python 相关文章推荐
python三元运算符实现方法
Dec 17 Python
详解 Python 读写XML文件的实例
Aug 02 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
机器学习python实战之手写数字识别
Nov 01 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
python实现简单http服务器功能
Sep 17 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
Python3 JSON编码解码方法详解
Sep 06 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python3基础之基本运算符概述
Aug 13 #Python
Python3基础之list列表实例解析
Aug 13 #Python
Python3基础之基本数据类型概述
Aug 13 #Python
Python常用正则表达式符号浅析
Aug 13 #Python
wxpython中利用线程防止假死的实现方法
Aug 11 #Python
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 #Python
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 #Python
You might like
第十二节--类的自动加载
2006/11/16 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
javascript import css实例代码
2008/07/18 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python中的类与对象之描述符详解
2015/03/27 Python
Python切片知识解析
2016/03/06 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
深入浅析python的第三方库pandas
2020/02/13 Python
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
为什么需要版本控制
2016/10/28 面试题
税务专业毕业生自荐信
2013/11/10 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python