第三章 python 逻辑运算与流程控制

发布于:2024-10-12 ⋅ 阅读:(10) ⋅ 点赞:(0)

一、 Python的比较运算符及其应用

1  Python的比较运算符与比较表达式

Python的比较运算符及应用实例:

Python的逻辑运算符及应用实例:

运算符

名称

逻辑表达式

结合方向

说明

实例

运算结果

and

逻辑与

x and y

从左到右

如果xFalse0x and y返回False0,否则返回y的计算值

x and y

10

x and z

0

z and x

0

or

逻辑或

x or y

从左到右

如果xTrue,则返回x的值,否则返回y的计算值

x or y

21

x or z

21

z or x

21

not

逻辑非

not x

从右到左

如果xTrue,则返回False。如果xFalse,则返回True

not x

False

not y

False

not (x and y)

False

not (x or y)

False

not z

True

Python所有运算符从最高到最低的优先级:

序号

运算符

说明

1

**

幂(最高优先级)

2

~+-

位取反、正号和负号

3

*/%//

算术运算符:乘、除、取余和取整除

4

+-

算术运算符:加、减

5

>><<

位运算符:右移位、左移位

6

&

位运算符:位与

7

|^

位运算符:位或、位异或

8

<=<>>=

比较运算符

9

==!=

等于、不等于

10

=+=-=*=**=/=//=%=

赋值运算符

11

isis not

身份运算符

12

innot in

成员运算符

13

notorand

逻辑运算符

二、Python的选择结构及其应用

1  if语句及其应用

            if语句由关键字if、判断条件和冒号组成,if语句和从属于该语句的代码段可组成选择结构。

if 条件表达式:
    代码块

              若if语句的判断条件成立(判断条件的布尔值为True),执行之后的代码段;若if语句的判断条件不成立(判断条件的布尔值为False),跳出选择结构,继续向下执行。

【实例3-4】演示Python中if语句的用法

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内的语句没有运行。

2  if…else语句及其应用

【实例3-5】演示Python中if…else语句的用法

password= input("请输入密码:")
if  password =="123456":
    print("输入的密码正确")
else:
    print("输入的密码错误")

运行结果:

请输入密码:666
输入的密码错误

 3  if…elif…else语句及其应用

           除了提供单分支和双分支条件语句外,还提供多分支条件语句if-elif-else。多分支条件语句用于处理单分支和双分支无法处理的情况,其语法格式如下:

if 判断条件1:
    代码段1
elif 判断条件2:
    代码段2
elif 判断条件3:
    代码段3
...
else:
    代码段n

               执行if-elif-else语句时,若if条件成立,执行if语句之后的代码段1;若if条件不成立,判断elif语句的判断条件2:条件2成立则执行elif语句之后的代码段2,否则继续向下执行。以此类推,直至所有的判断条件均不成立,执行else语句之后的代码段。

【实例3-6】演示Python中if…elif…else语句的用法

score=86
grade=""
if score>=90:
    grade="A"
elif score>=80:
    grade="B"
elif score>=60:
    grade="C"
else:
    grade="D"
print("考试成绩为:{},等级为:{}等。".format(score,grade))

运行结果:

考试成绩为:86,等级为:B等。

4  if语句的嵌套结构

通过if嵌套可以实现程序中条件语句的嵌套逻辑。if嵌套的语法格式如下所示:

if 判断条件1:        # 外层条件
    代码段1
    if 判断条件2:    # 内层条件
        代码段2
...

              执行if嵌套时,若外层判断条件(判断条件1)的值为True,执行代码段1,并对内层判断条件(判断条件2)进行判断:若判断条件2的值为True,则执行代码段2,否则跳出内层条件结构,顺序执行外层条件结构中内层条件结构之后的代码;若外层判断条件的值为False,直接跳过条件语句,既不执行代码段1,也不执行内层的条件结构。

【实例3-7】演示if语句的嵌套结构的用法

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整除。")

运行结果:

输入一个数字:7
输入的数字不能被2和3整除。

【任务3-5】应用if…elif…else语句计算分期付款的服务费

【任务实施】

term=int(input("请选择分几期付款(1、3、6、12、24):"))
if term==1:
    serviceFee=0
elif term==3:
    serviceFee = term * 11.53
elif term==6:
    serviceFee = term * 5.87
elif term==12:
    serviceFee = term * 3.03
elif term==24:
    serviceFee = term * 1.61
print("服务费为:{:.2f}元".format(serviceFee))

运行结果:

请选择分几期付款(1、3、6、12、24):6
服务费为:35.22元

三、for循环语句及其应用

1  for循环语句

               for语句一般用于实现遍历循环。遍历指逐一访问目标对象中的数据,例如逐个访问字符串中的字符;遍历循环指在循环中完成对目标对象的遍历。

for 临时变量 in 目标对象:
    代码语句块

               循环变量用于保存取出的值,序列结构为要遍历或迭代的序列对象,例如字符串、列表、元组等,语句块为一组被重复运行的多条语句。

                for循环语句的运行流程如图所示。

Python中for循环的实例如下。

publisher = ["人民邮电出版社", "高等教育出版社", "电子工业出版社"] 
for item in publisher:
      print(item)

运行结果:

人民邮电出版社
高等教育出版社
电子工业出版社

1.使用内置range()函数生成序列数据

          使用内置range()函数生成序列数据,然后使用for语句遍历序列,例如:

for item in range(5):
     print(item, end="  ")

运行结果:

0   1   2   3   4

            也可以使用range()函数指定区间的值生成序列数据,然后使用for语句遍历序列,例如:

for item in range(5,9) :
     print(item, end="  ")

运行结果:

5   6   7   8

             也可以使用range()函数指定数据序列开始数值、终点数值、增量(也称为“步长”),然后使用for语句遍历序列,例如:

for item in range(1, 10, 3) :
     print(item, end="  ")

运行结果:

1   4   7

                range()函数中指定的增量也可以是负数,例如:

>>>for item in range(10, 1, -3) :
     print(item, end="  ")

运行结果:

10   7   4

 【实例3-8】结合range()函数、len()函数遍历一个列表

publisher = ["人民邮电出版社", "高等教育出版社", "电子工业出版社"] 
for item in range(len(publisher)):
    print(item+1, publisher[item])

运行结果:

人民邮电出版社
高等教育出版社
电子工业出版社

2  for…else语句

                 for…else语句的基本语法格式如下。

for <变量> in <序列结构>:
     <语句块1>
else:
     <语句块2>

               当for循环没有被break语句终止时,运行else语句。

【实例3-9】演示应用循环结构判断质数

for n in range(2, 8):
    for m in range(2, n):
        if n % m == 0:
            print(n, '=', m, '*', n//m)
            break
    else:
        print(n, '是质数')   #循环中没有找到元素

运行结果:

2 是质数
3 是质数
4 = 2 * 2
5 是质数
6 = 2 * 3
7 是质数

逢7拍手游戏:

            逢7拍手游戏的规则是:从1开始顺序数数,数到有7或者包含7的倍数的时候拍手。 本实例要求编写代码,模拟实现逢七拍手游戏,实现输出100以内需要拍手的数字的程序。

             判断一个数字是否与7相关,可分为两种情况:1、是否为7的倍数,即一个数取模值为0;2、是否包含7。

for i in range(1, 101):
    # 判断条件:既不包含7,也不是7的倍数
    if "7" in str(i) or int(i) % 7 == 0:
        # 输出,去掉了换行符
        print('*', end="、")
        # 如果包含7 输出*
    elif "7" not in str(i) and int(i) % 7 != 0:
        print(i, end='、')

四、 while循环语句及其应用

1  while循环语句

                 while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构。

while 条件表达式:
    代码语句块

【实例3-10】演示使用while循环语句计算1到10的总和

n = 10
sum = 0
number = 1
while number <= n:
    sum = sum + number
    number += 1
print("1 到{}之和为: {}".format(n,sum))

运行结果:

1 到10之和为: 55

【任务3-8】应用for循环语句显示进度的百分比

2  while…else语句

                   while…else语句的基本语法格式如下。

while <判断条件>:
    <语句块1>
else:
    <语句块2>

               while循环的条件表达式为False时,当while循环没有被break语句终止时,运行else后面的语句块2。else语句可以理解为:作为“正常”完成循环的奖励。

【实例3-11】演示应用循环输出数字,并判断大小

count = 0
while count < 5:
   print (count, "小于5")
   count = count + 1
else:
   print (count, "大于或等于5")

运行结果:

0 小于5
1 小于5
2 小于5
3 小于5
4 小于5
5 大于或等于5

break语句

               break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环

for  <循环变量>  in  <序列结构>:
    <语句块>
    if <条件表达式>:
        break
其中,条件表达式用于判断何时调用break语句跳出循环。

示例:

for word in "Python":
    if (word == 'o'):
        break
    print(word, end="  ")

运行结果:

P y t h

continue语句

                continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。

while <条件表达式1>:
    <语句块>
    if <条件表达式2>:
        continue
其中,条件表达式2用于判断何时调用continue语句终止本次循环。

示例:

for word in "Python":
    if (word == 'o'):
        continue
print(word, end="  ")

运行结果:

P y t h n

3  循环中的跳转语句

【实例3-12】演示for循环中使用break语句

publisher=["人民邮电出版社","高等教育出版社","电子工业出版社","清华大学出版社"]
for item in publisher:
    if item == "电子工业出版社":
        print("跳出for循环")
        break
    print("循环数据:" + item)
else:
    print("没有循环数据")
print("循环结束")

运行结果:

循环数据:人民邮电出版社
循环数据:高等教育出版社
跳出for循环
循环结束

在循环到“电子工业出版社”时,if语句的条件表达式的值为True,运行break语句跳出循环。

【实例3-13】演示while循环中使用break语句

n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)
print("循环结束。")

运行结果:

4
3
循环结束。

【实例3-14】演示for循环中使用continue语句

publisher=["人民邮电出版社","高等教育出版社","电子工业出版社","清华大学出版社"]
for item in publisher:
    if item == "电子工业出版社":
        print("终止本次循环")
        continue
    print("循环数据:" + item)
print("循环结束")

运行结果:

循环数据:人民邮电出版社
循环数据:高等教育出版社
终止本次循环
循环数据:清华大学出版社
循环结束

【实例3-15】演示while循环中使用continue语句

n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print("循环结束。")

运行结果:

4
3
1
0
循环结束。

猜数字小游戏

          猜数字由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示“很遗憾,你猜大了”;若猜测的数字小于设置的数字时,出数字的人提示“很遗憾,你猜小了”;若猜数字的人在规定的次数内猜中设置的数字,出数字的人提示“恭喜,猜数对了”。

           根据以上要求编写代码,实现遵循上述规则的猜数字程序。

本章完!!!!