Python的控制语句
控制语句
1. 控制语句简介
控制语句是用来改变程序执行的顺序。程序利用控制语句有条件地执行语句,循环地执行语句或者跳转到程序中的其他部分执行语句。
Python支持三种不同的控制语句:if,for和while,不支持C语言中的switch语句。
1.1 if 语句
编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施。Python中的if语句的语法根java中的表示有点小小的区别。java中执行语句块需要用大括号括起来,而Python中是在if表达式后加冒号。
注意:一个if 语句可以有多个 eli f部分,但是,只能有一个else 。
1.1.1 简单的 if 语句
最简单的 if 语句只有一个条件和一个执行的语句块。其语法格式如下:
if 表达式 :
语句块
以上 if 语句 只有表达式的值为真,才会执行语句块,否则,忽略语句块,什么也不操作。
例如,提示用户输入两个值,如果相同,则输出它们。
a = input("a:")
b = input("b:")
if a == b:
print("a的值和b的值相等,都等于",a,"。")
结果如下:
a:20
b:20
a的值和b的值相等,都等于 20 。
1.1.2 if - else 语句
很多情况下,我们在中文中都会说,如果...就... ,否则就...。其语法格式如下所示:
if 表达式 :
语句块1
else :
语句块2
以上 if 语句,如果 表达式为真,则执行语句块1,否则,则执行语句块2。
例如,我们将用户名和密码存在变量中,然后根据用户输入的用户名和密码判断是否正确,并打印相应提示信息。
_username = 'Yun'
_password = 'abc123'
username = input("username:")
password = input("password:")
if _username == username and _password == password:
print("Welcome user {name} loging...".format(name=username))
else:
print("Invalid username or password")
输入的用户名和密码正确时,运行结果如下:
username:Yun
password:abc123
Welcome user Yun loging...
输入的用户名和密码不正确时,运行结果如下:
username:Yun
password:123abc
Invalid username or password
1.1.3 if - elif - else 语句
许多情况下,我们需要判断的情况不止两种,为此可以使用Python提供的if - elif - else 语句。其语法格式如下所示:
if 表达式 1:
语句块1
elif 表达式 2 :
语句块2
else :
语句块3
以上 if 语句,如果表达式1为真,则执行语句块1;否则如果表达式2为真,则执行语句块2;否则,则执行语句块3。
例如,我们输入a和b两个整数,然后判断a、b的大小,输入最大值。
代码1:
a = input("a:")
b = input("b:")
if a > b :
print("你输入的最大值为",a,"。")
elif b > a:
print("你输入的最大值为",b,"。")
else:
print("你输入的a的值和b的值相等。")
(1)当我们输入的值都是整数时:
a:10
b:20
你输入的最大值为 20 。
(2)当我们输入的值有一个为字符时:
a:10
b:abc
你输入的最大值为 abc 。
说明:在数据类型的介绍中,我们知道,python会将输入的整数当做字符串。所以我们需要用int()函数将输入的整数强行转换为整数,然后才能当作整数使用。
当我们输入的a和b都是整数时,不用int()转换,其结果跟整数比较的结果一样,但是,如果输入的不是整数时,代码仍然可以运行,但是 不是我们想要的整数比较,而是字符串比较。
因此,为了避免输入错误导致不必要的结果,我们应该将输入的值强行转换为整型,这样,当我们输入的不是整数时,就会报异常,我们就知道自己输入的数据不满足需求。这也是写代码养成良好的习惯的细节表现。
代码2:
a = int(input("a:"))
b = int(input("b:"))
if a > b :
print("你输入的最大值为",a,"。")
elif b > a:
print("你输入的最大值为",b,"。")
else:
print("你输入的a的值和b的值相等。")
(1)当我们输入的值是字符时:
a:10
b:abc
Traceback (most recent call last):
File "F:/PyProject/s14/day1/if.py", line 21, in <module>
b = int(input("b:"))
ValueError: invalid literal for int() with base 10: 'abc'
(2)当我们输入的值是浮点数时:
a:10
b:20.10
Traceback (most recent call last):
File "F:/PyProject/s14/day1/if.py", line 21, in <module>
b = int(input("b:"))
ValueError: invalid literal for int() with base 10: '20.10'
(3)当我们数据的都是整数时,分为三种情况输出一下。
- a 小于 b的情况:
a:10
b:20
你输入的最大值为 20 。
- a 大于b的情况:
a:30
b:10
你输入的最大值为 30 。
- a等于b的情况:
a:10
b:10
你输入的a的值和b的值相等。
1.1.4 多个elif代码块
if 表达式 1:
语句块1
elif 表达式 2 :
语句块2
......
elif 表达式 n:
语句块n
else :
语句块n+1
以上 if 语句,如果表达式1为真,则执行语句块1;否则如果表达式2为真,则执行语句块2;否则如果表达式N为真,则执行语句块N;否则,则执行语句块n+1。
例如,我们输入一个学生的姓名、学号即成绩,然后根据学生分数来划分成绩等级:优、良、中、差、不及格,即,大于等于90分为A;大于等于80分为B;大于等于70分C;大于等于60分为D;小于60分为F。
代码:
student_name = input("请输入学生的姓名:")
student_no = input("请输入学生的学号:")
student_score = input("请输入该学生的成绩:")
if student_score >= '' :
grade = "A"
elif student_score >= '':
grade = "B"
elif student_score >= '':
grade = "C"
elif student_score >= '':
grade = "D"
else:
grade = "F"
print(student_name,student_no,grade) if grade == "F":
print("亲爱的",student_name,"该努力了!")
else:
print("亲爱的",student_name,"恭喜过关,再接再厉!")
(1)成绩为99分:
请输入学生的姓名:Yun Qtian
请输入学生的学号:S100001
请输入该学生的成绩:99
Yun Qtian S100001 A
亲爱的 Yun Qtian 恭喜过关,再接再厉!
(2)成绩为87分:
请输入学生的姓名:Yun Qtian
请输入学生的学号:S1000001
请输入该学生的成绩:87
Yun Qtian S1000001 B
亲爱的 Yun Qtian 恭喜过关,再接再厉!
(3)成绩为76分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:76
4 Yun Qtian S1000001 C
5 亲爱的 Yun Qtian 该努力了!
(4)成绩为60分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:60
4 Yun Qtian S1000001 D
5 亲爱的 Yun Qtian 恭喜过关,再接再厉!
(5)成绩为56分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:56
4 Yun Qtian S1000001 F
5 亲爱的 Yun Qtian 该努力了!
1.1.5 省略 else 代码块
在Python代码中,一个 if 语句不能带有多个else 代码块 ,但是可以省略else代码块。
例如,我们将上一节中的例子中的代码里面的else省略后,改为 用 elif 代替它。
代码:
1 student_name = input("请输入学生的姓名:")
2 student_no = input("请输入学生的学号:")
3 student_score = input("请输入该学生的成绩:")
4 if student_score >= '90' :
5 grade = "A"
6 elif student_score >= '80':
7 grade = "B"
8 elif student_score >= '70':
9 grade = "C"
10 elif student_score >= '60':
11 grade = "D"
12 elif student_score < '60'
13 grade = "F"
14 print(student_name,student_no,grade)
15
16 if grade == "F":
17 print("亲爱的",student_name,"该努力了!")
18 else:
19 print("亲爱的",student_name,"恭喜过关,再接再厉!")
(1)成绩为99分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S100001
3 请输入该学生的成绩:99
4 Yun Qtian S100001 A
5 亲爱的 Yun Qtian 恭喜过关,再接再厉!
(2)成绩为87分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:87
4 Yun Qtian S1000001 B
5 亲爱的 Yun Qtian 恭喜过关,再接再厉!
(3)成绩为76分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:76
4 Yun Qtian S1000001 C
5 亲爱的 Yun Qtian 该努力了!
(4)成绩为60分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:60
4 Yun Qtian S1000001 D
5 亲爱的 Yun Qtian 恭喜过关,再接再厉!
(5)成绩为56分:
1 请输入学生的姓名:Yun Qtian
2 请输入学生的学号:S1000001
3 请输入该学生的成绩:56
4 Yun Qtian S1000001 F
5 亲爱的 Yun Qtian 该努力了!
从以上运行结果来看,跟上一节中的完全一致。虽然这有编写Python解释器也支持,但是为了更规范,也让学习过其他语言的朋友更好的理解Python代码,尽量保持相同的编程风格。
1.1.6 多个 if 条件
在Python,虽然 if-elif-else 结构功能强大,但仅适用于只有一个条件满足的情况,因为如果前面的条件满足后,后面的条件就会跳过。这种行为很好,效率很高,让你能测试一个特定的条件。
然后,有时我们需要检查所有条件。在这种情况下,就应该使用多个不包含 elif 和 else 代码块的简单 if 语句。在可能有多个条件为True,且你需要在每个条件为True时都采取相应的措施时,适合使用这种方法。
例如,在一个比萨店中,如果顾客点了两种配料,就需要确保在其比萨中包含这些配料:
代码:
requested_toppings = ['mushrooms','extra cheese'] if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
if 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
运行结果如下:
Adding mushrooms.
Adding extra cheese. Finished making your pizza!
1.2 while 语句
在java 中,while 语句的表达式用括号括起来,循环体用大括号括起来,但在Python中,while 语句的表达式不需要用括号括起来,循环体也不需要用大括号括起来,而是在表达式后用冒号即可。
while 语句条件为真时,while语句重复执行语句块。在Python 中的 while 语句的基本语法为:
while 表达式 :
循环体
首先,while 语句计算表达式,它将返回一个boolean 值(true 或者 false)。如果表达式返回true,则执行循环体中的语句。然后,while 语句继续测试表达式来确定是否执行循环体,直到表达式返回false。
例如,用while循环打印0到5:
count = 0
while count < 5:
print(count)
count += 1
运行结果如下:
0
1
2
3
4
1.3 for 语句
for 语句提供了一个更简便、灵活的方法来进行循环。在Python中,for 语句的语法 如下所示:
for 变量 in 对象:
循环体
例如,循环打印0到5 的数据:
count = 1
for i in range(0,5):
print("第",count,"个数是:",i)
count += 1
运行结果如下:
第 1 个数是: 0
第 2 个数是: 1
第 3 个数是: 2
第 4 个数是: 3
第 5 个数是: 4
1.4 跳转语句
Python 语言有两种跳转语句:
(1)break 语句。跳出循环。
(2)continue 语句。跳出本次循环,继续下一次循环。
1.4.1 break 语句
要立即退出 while 循环或者 for 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break 语句。break 语句用于控制程序流程,可使用它控制哪些代码行将执行,哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
例如,我们循环打印数据,每次加1,直到我们要求退出时结束循环。
代码:
count = 0
while True:
print("count:",count)
count += 1
if count == 5:
break
运行结果如下:
count: 0
count: 1
count: 2
count: 3
count: 4
1.4.2 continue 语句
在循环中,如果要返回到循环开头,并根据条件测试结果决定 是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环。
例如,我们来看一个从1数到10,但只打印其中的奇数的循环。
代码:
count = 0
while count < 10:
count += 1
if count % 2 == 0:
continue
print(count)
运行结果如下:
1
3
5
7
9
Python的控制语句的更多相关文章
- python 各种控制语句
python的控制语句分为: if: if condition: cmd elif condition:#该块为可选 cmd else:#该块为可选 cmd while: whlie conditio ...
- 【转】Python流程控制语句
[转]Python流程控制语句 人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在 ...
- 孤荷凌寒自学python第十五天python循环控制语句
孤荷凌寒自学python第十五天python循环控制语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中只有两种循环控制语句 一.while循环 while 条件判断式 1: ...
- [ Python入门教程 ] Python的控制语句
Python控制语句由条件语句.循环语句构成.控制语句根据条件表达式控制程序的流转.本章将介绍Python中控制语句的基本语法. 条件判断语句 (1)if条件语句 if语句用于检测某个条件是否成立.如 ...
- Python循环控制语句
Python循环控制语句:主要有三种,break.continue 和 pass 语句. break 语句 :在语句块执行过程中,终止循环.并跳出整个循环. continue 语句 :在语句执行 ...
- Python流程控制语句
人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在原地打转,找不到方向.对于相信有 ...
- 和我一起学python,控制语句 (life is short ,we need python)
控制语句 if/elif/else if语句和一般编程语言一样,条件为true 执行 如: if true : print 'true' <----if.else下对齐,要使用相 ...
- python流程控制语句 ifelse - 3
#! /usr/bin/python x = input ('please inut a integer:') x = int(x) : print ('你输入了一个负数') elif x == : ...
- Python流程控制语句详解
1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 2.选择语句 2.1最简单的if语句 Python使用保留 ...
随机推荐
- Python中subplots_adjust函数的说明
使用subplots_adjust一般会传入6个参数,我们分别用A,B,C,D,E,F表示.然后我们对图框建立坐标系,将坐标轴原点定在左下角点,并将整个图框归一化,即横纵坐标都是0到1之间.从下图中可 ...
- Leetcode题解(十八)
51.N-Queens ---------------------------------------------------------------------------------分割线---- ...
- C++获取本机IP等信息
运行环境:VS2008,win7,代码来源于MSDN,相关函数可以查看MSDN中的函数定义.. 代码如下: #include <winsock2.h> #include <ws2tc ...
- CodeForces 11D(状压DP 求图中环的个数)
Given a simple graph, output the number of simple cycles in it. A simple cycle is a cycle with no re ...
- Lifting the Stone(求多边形的重心—)
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- 关于php加密库加密数据上传数据库或解密出错的问题
php加密拓展库随着php版本的更新,函数的使用方法有所改变,所以加密模式推荐使用ecb,其中加密算法19种,加密模式8种,通过这种方式加密后的数据上传数据库后提取出来进行解密会发现结果是乱码,我认为 ...
- 分析Array.apply(null, { length: 5 })
Array.apply(null, { length: 5 }) 和 Array(5)有什么不同 注意:ES5,apply函数的第二个参数除了可以是数组外,还可以是类数组对象 // 类转成真正的数组 ...
- JAVAscript学习笔记 jsBOM 第七节 (原创) 参考js使用表
<html> <head> <title>day02_js</title> <script type="text/javascript& ...
- HTML学习笔记 CSS学习选择器案例 第五节 (原创) 参考使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- eclipse中导入jsp等工程使用过程中常遇问题
1.导入的工程JSP文件出现报错的情况 这个一般不怎么影响文件的执行,这些文件飘红主要是因为eclipse的校验问题. 具体错误信息:Multiple annotations found at thi ...