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之编写类之四再论继承
Oct 11 Python
python追加元素到列表的方法
Jul 28 Python
Python3.2模拟实现webqq登录
Feb 15 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python实现括号匹配的思路详解
Aug 23 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
Oct 30 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
如何用Python绘制3D柱形图
Sep 16 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 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 HTML代码串截取代码
2008/12/29 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
python dict.get()和dict['key']的区别详解
2016/06/30 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
python实现单链表的方法示例
2019/09/03 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
国贸专业个人求职信分享
2013/12/04 职场文书
学校办公室主任职责
2013/12/27 职场文书
领导视察欢迎词
2014/01/15 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
趵突泉导游词
2015/02/03 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python