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操作CouchDB的方法
Oct 08 Python
Python使用chardet判断字符编码
May 09 Python
python访问抓取网页常用命令总结
Apr 11 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
使用python实现滑动验证码功能
Aug 05 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
pytorch中的自定义数据处理详解
Jan 06 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
python实现股票历史数据可视化分析案例
Jun 10 Python
Python 文字识别
May 11 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
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
PHP实现简单日历类编写
2020/08/28 PHP
jQuery select控制插件
2009/08/17 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
优秀应届生推荐信
2013/11/09 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
教师自荐信范文
2013/12/09 职场文书
八年级美术教学反思
2014/02/02 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
导游词之广西漓江
2019/11/02 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python