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实现爬取千万淘宝商品的方法
Jun 30 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
使用python turtle画高达
Jan 19 Python
在python3中实现更新界面
Feb 21 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Python中无限循环需要什么条件
May 27 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
浅析Python OpenCV三种滤镜效果
Apr 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 session处理的定制
2009/03/16 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python中子类调用父类函数的方法示例
2017/08/18 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
怎样声明接口
2014/09/19 面试题
时尚休闲吧创业计划书
2014/01/25 职场文书
工作违纪检讨书
2014/02/17 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
创先争优个人总结
2015/03/04 职场文书
新闻稿怎么写
2015/07/18 职场文书
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle