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实现的简单RPG游戏流程实例
Jun 28 Python
python比较两个列表是否相等的方法
Jul 28 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
微信跳一跳辅助python代码实现
Jan 05 Python
TensorFlow实现创建分类器
Feb 06 Python
python微信跳一跳系列之自动计算跳一跳距离
Feb 26 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
python+playwright微软自动化工具的使用
Feb 02 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
python中json格式数据输出的简单实现方法
2016/10/31 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
Linux的文件类型
2016/07/05 面试题
静态变量和实例变量的区别
2015/07/07 面试题
旅游节目策划方案
2014/05/26 职场文书
工厂车间标语
2014/06/19 职场文书
党员个人剖析材料
2014/09/30 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
妇产科护理心得体会
2016/01/22 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python