控制语句

控制语句

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 语句 只有表达式的值为真,才会执行语句块,否则,忽略语句块,什么也不操作。

  例如,提示用户输入两个值,如果相同,则输出它们。

1 a = input("a:")
2 b = input("b:")
3 if a == b:
4     print("a的值和b的值相等,都等于",a,"")

  

  结果如下:

1 a:20
2 b:20
3 a的值和b的值相等,都等于 20 。

 

1.1.2 if - else 语句

 很多情况下,我们在中文中都会说,如果...就... ,否则就...。其语法格式如下所示:

  if 表达式 :

    语句块1

  else :

        语句块2

  以上 if 语句,如果 表达式为真,则执行语句块1,否则,则执行语句块2。

  例如,我们将用户名和密码存在变量中,然后根据用户输入的用户名和密码判断是否正确,并打印相应提示信息。

1 _username = 'Yun'
2 _password = 'abc123'
3 username = input("username:")
4 password = input("password:")
5 if _username == username and _password == password:
6     print("Welcome user {name} loging...".format(name=username))
7 else:
8     print("Invalid username or password")

   

  输入的用户名和密码正确时,运行结果如下:

1 username:Yun
2 password:abc123
3 Welcome user Yun loging...

  

  输入的用户名和密码不正确时,运行结果如下:

1 username:Yun
2 password:123abc
3 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:

1 a = input("a:")
2 b = input("b:")
3 if a > b :
4     print("你输入的最大值为",a,"")
5 elif b > a:
6     print("你输入的最大值为",b,"")
7 else:
8     print("你输入的a的值和b的值相等。")

  

  (1)当我们输入的值都是整数时:

1 a:10
2 b:20
3 你输入的最大值为 20 。

 

  (2)当我们输入的值有一个为字符时:

1 a:10
2 b:abc
3 你输入的最大值为 abc 。

 

  说明:在数据类型的介绍中,我们知道,python会将输入的整数当做字符串。所以我们需要用int()函数将输入的整数强行转换为整数,然后才能当作整数使用。

当我们输入的a和b都是整数时,不用int()转换,其结果跟整数比较的结果一样,但是,如果输入的不是整数时,代码仍然可以运行,但是 不是我们想要的整数比较,而是字符串比较。

  因此,为了避免输入错误导致不必要的结果,我们应该将输入的值强行转换为整型,这样,当我们输入的不是整数时,就会报异常,我们就知道自己输入的数据不满足需求。这也是写代码养成良好的习惯的细节表现。

  

  代码2:

1 a = int(input("a:"))
2 b = int(input("b:"))
3 if a > b :
4     print("你输入的最大值为",a,"")
5 elif b > a:
6     print("你输入的最大值为",b,"")
7 else:
8     print("你输入的a的值和b的值相等。")

  

  (1)当我们输入的值是字符时:

1 a:10
2 b:abc
3 Traceback (most recent call last):
4   File "F:/PyProject/s14/day1/if.py", line 21, in <module>
5     b = int(input("b:"))
6 ValueError: invalid literal for int() with base 10: 'abc'

 

  (2)当我们输入的值是浮点数时:

1 a:10
2 b:20.10
3 Traceback (most recent call last):
4   File "F:/PyProject/s14/day1/if.py", line 21, in <module>
5     b = int(input("b:"))
6 ValueError: invalid literal for int() with base 10: '20.10'

 

  (3)当我们数据的都是整数时,分为三种情况输出一下。

  • a 小于 b的情况:
1 a:10
2 b:20
3 你输入的最大值为 20 。

 

  • a 大于b的情况:
1 a:30
2 b:10
3 你输入的最大值为 30 。
  • a等于b的情况:
1 a:10
2 b:10
3 你输入的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。

  代码:

 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 else:
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 该努力了! 

 

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时都采取相应的措施时,适合使用这种方法。

   例如,在一个比萨店中,如果顾客点了两种配料,就需要确保在其比萨中包含这些配料:

  代码:

1 requested_toppings = ['mushrooms','extra cheese']
2 
3 if 'mushrooms' in requested_toppings:
4     print("Adding mushrooms.")
5 if 'pepperoni' in requested_toppings:
6     print("Adding pepperoni.")
7 if 'extra cheese' in requested_toppings:
8     print("Adding extra cheese.")
9 print("\nFinished making your pizza!")

 

  运行结果如下:

1 Adding mushrooms.
2 Adding extra cheese.
3 
4 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:

1 count = 0
2 while count < 5:
3     print(count)
4     count += 1

 

  运行结果如下:

1 0
2 1
3 2
4 3
5 4

 

1.3 for 语句

   for 语句提供了一个更简便、灵活的方法来进行循环。在Python中,for 语句的语法 如下所示:

   for  变量 in  对象:  

    循环体  

  例如,循环打印0到5 的数据:

1 count = 1
2 for i in range(0,5):
3    print("",count,"个数是:",i)
4    count += 1

 

  运行结果如下:

1 第 1 个数是: 0
2 第 2 个数是: 1
3 第 3 个数是: 2
4 第 4 个数是: 3
5 第 5 个数是: 4

 

1.4  跳转语句

  Python 语言有两种跳转语句:

  (1)break 语句。跳出循环。

  (2)continue 语句。跳出本次循环,继续下一次循环。

1.4.1  break 语句

  要立即退出 while 循环或者 for 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break  语句。break 语句用于控制程序流程,可使用它控制哪些代码行将执行,哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。

  例如,我们循环打印数据,每次加1,直到我们要求退出时结束循环。

  代码:

1 count = 0
2 while   True:
3     print("count:",count)
4     count += 1
5     if count == 5:
6         break

 

  运行结果如下:

1 count: 0
2 count: 1
3 count: 2
4 count: 3
5 count: 4

 

1.4.2  continue 语句

  在循环中,如果要返回到循环开头,并根据条件测试结果决定 是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环。

  例如,我们来看一个从1数到10,但只打印其中的奇数的循环。

  代码:

1 count = 0
2 while count < 10:
3     count += 1
4     if count % 2 == 0:
5         continue
6     print(count)

 

  运行结果如下:

1 1
2 3
3 5
4 7
5 9

 

转载于:https://www.cnblogs.com/qtyun/p/8007867.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值