首页 > 技术文章 > 判断语句和循环语句

liangdian 2020-09-13 20:20 原文

if判断语句

<1>if判断语句介绍

  • if语句是用来进行判断的,其使用格式如下:
    if 要判断的条件:
        条件成立时,要做的事情
  • demo1:(demo的中文意思:演示、案例)
    age = 30

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")
  • 运行结果:
    ------if判断开始------
    我已经成年了
    ------if判断结束------
  • demo2:
    age = 16

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")
  • 运行结果:
    ------if判断开始------
    ------if判断结束------

小总结:

  • 以上2个demo仅仅是age变量的值不一样,导致结果却不同;能够看得出if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。

  • 注意:代码的缩进为一个tab键,或者4个空格

<2>练一练

要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”

  1. 使用input从键盘中获取数据,并且存入到一个变量中
  2. 使用if语句,来判断 age>=18是否成立

<3>想一想

判断age大于或者等于18岁使用的是 >=,如果是其他判断,还有哪些呢?

----------------------------------------------------------------------------------------------------------------------------------

比较(即关系)运算符

python中的比较运算符如下表

运算符描述示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3,则(a == b) 为 True
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3,则(a != b) 为 True
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3,则(a > b) 为 True
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3,则(a < b) 为 False
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3,则(a >= b) 为 True
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3,则(a <= b) 为 True
>>> ## 关系运算符
... 
>>> # == 等于:表示左右两个操作数是否相等,如果相等则整个表达式的值为 True;不相等则为False
... num1 = 15
>>> num2 = 20
>>> 
>>> print(num1 == num2)
False
>>> 
>>> # != 不等于
... print(num1 != num2)
True
>>> 
>>> # > 大于
... print(num1 > num2)
False
>>> 
>>> # < 小于
... print(num1 < num2)
True
>>> 
>>> # >= 大于等于: num1 大于 或者 等于 num2 ,条件都成立
... print(num1 >= num2)
False
>>> 
>>> # <= 小于等于: num1 小于 或者 等于 num2 ,条件都成立
... print(num1 <= num2)
True
>>> 
>>> if num1 >= num2:
...     print("条件成立!")
... 
>>>

<2> 逻辑运算符

运算符逻辑表达式描述实例
and x and y 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 True and False, 返回 False。
or x or y 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 False or True, 返回 True。
not not x 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not True 返回 False, not False 返回 True
>>> ## 逻辑运算符
... 
>>> # and : 左右表达式都为True,整个表达式结果才为 True
... if (1 == 1) and (10 > 3):
...     print("条件成立!")
... 
条件成立!

>>> # or : 左右表达式有一个为True,整个表达式结果就为 True
... if (1 == 2) or (10 > 3):
...     print("条件成立!")
... 
条件成立!

>>> # not:将右边表达式的逻辑结果取反,Ture变为False,False变为True
... if not (1 == 2):
...     print("条件成立!")
... 
条件成立!

>>>

-----------------------------------------------------------------------------------------------------

if-else

想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?

答:使用 if-else

<1>if-else的使用格式

    if 条件:
        满足条件时要做的事情1
        满足条件时要做的事情2
        满足条件时要做的事情3
        ...(省略)...
    else:
        不满足条件时要做的事情1
        不满足条件时要做的事情2
        不满足条件时要做的事情3
        ...(省略)...

demo1

    chePiao = 1 # 用1代表有车票,0代表没有车票
    if chePiao == 1:
        print("有车票,可以上火车")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有车票,不能上车")
        print("亲爱的,那就下次见了")

结果1:有车票的情况

    有车票,可以上火车
    终于可以见到Ta了,美滋滋~~~

结果2:没有车票的情况

    没有车票,不能上车
    亲爱的,那就下次见了
--
----------------------------------------------------------------------

elif

  • 想一想:

    if能完成当xxx时做事情

    if-else能完成当xxx时做事情1,否则做事情2

    如果有这样一种情况:当xxx1满足时做事情1;当xxx1不满足、xxx2满足时做事情2;当xxx2不满足、xxx3满足时做事情3,那该怎么实现呢?

  • 答:

    elif

<1> elif的功能

elif的使用格式如下:


    if xxx1:
        事情1
    elif xxx2:
        事情2
    elif xxx3:
        事情3

说明:

  • 当xxx1满足时,执行事情1,然后整个if结束
  • 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
  • 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

demo:


    score = 77

    if score>=90 and score<=100:
        print('本次考试,等级为A')
    elif score>=80 and score<90:
        print('本次考试,等级为B')
    elif score>=70 and score<80:
        print('本次考试,等级为C')
    elif score>=60 and score<70:
        print('本次考试,等级为D')
    elif score>=0 and score<60:
        print('本次考试,等级为E')

<2> 注意点

  • 可以和else一起使用

    
       if 性别为男性:
           输出男性的体重
           ...
       elif 性别为女性:
           输出女性的体重
           ...
       else:
           第三种性别的体重
           ...
    

    说明:

    • 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码
    • 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码
    • 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码
    • elif必须和if一起使用,否则出错

      else 一般用在最后,即所有条件都不满足时使用

 

---

-------------------------------------------------------------------------------------------------------------------------

 

if嵌套

通过学习if的基本用法,已经知道了

  • 当需要满足条件去做事情的这种情况需要使用if
  • 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else

想一想:

坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?

答:

if嵌套

<1>if嵌套的格式

    if 条件1:

        满足条件1 做的事情1
        满足条件1 做的事情2

        if 条件2:
            满足条件2 做的事情1
            满足条件2 做的事情2
  • 说明
    • 外层的if判断,也可以是if-else
    • 内层的if判断,也可以是if-else
    • 根据实际开发的情况,进行选择

<2>if嵌套的应用

demo:

chePiao = 1     # 用1代表有车票,0代表没有车票
daoLenght = 9     # 刀子的长度,单位为cm

if chePiao == 1:
    print("有车票,可以进站")
    if daoLenght < 10:
        print("通过安检")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有通过安检")
        print("刀子的长度超过规定,等待警察处理...")
else:
    print("没有车票,不能进站")
    print("亲爱的,那就下次见了")

结果1:chePiao = 1;daoLenght = 9

    有车票,可以进站
    通过安检
    终于可以见到Ta了,美滋滋~~~

结果2:chePiao = 1;daoLenght = 20

    有车票,可以进站
    没有通过安检
    刀子的长度超过规定,等待警察处理...

结果3:chePiao = 0;daoLenght = 9

    没有车票,不能进站
    亲爱的,那就下次见了

结果4:chePiao = 0;daoLenght = 20

    没有车票,不能进站
    亲爱的,那就下次见了
  • 想一想:为什么结果3和结果4相同???

 

----------------------------------------------------------------------------------------------------------------------

循环介绍

软件开发中循环的使用场景

跟媳妇承认错误,说一万遍"媳妇儿,我错了"

    print("媳妇儿,我错了")
    print("媳妇儿,我错了")
    print("媳妇儿,我错了")
    ...(还有99997遍)...

使用循环语句一句话搞定

    i = 0
    while i < 10000:
        print("媳妇儿,我错了")
        i += 1

<3>小总结

  • while和if的用法基本类似,区别在于:if 条件成立,则执行一次; while 条件成立,则重复执行,直到条件不成立为止。

  • 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成

  • 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环



------------------------------------------------------------------------------------------------------------------

while循环

<1>while循环的格式

    while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...

demo

    i = 0
    while i < 5:
        print("当前是第%d次执行循环" % (i + 1))
        print("i=%d" % i)
        i+=1

结果:

    当前是第1次执行循环
    i=0
    当前是第2次执行循环
    i=1
    当前是第3次执行循环
    i=2
    当前是第4次执行循环
    i=3
    当前是第5次执行循环
    i=4


---------------------------------------------------------------------------------------------------------

while循环应用

1. 计算1~100的累积和(包含1和100)

参考代码如下:

#encoding=utf-8

i = 1
sum = 0
while i <= 100:
    sum = sum + i
    i += 1

print("1~100的累积和为:%d" % sum)

2. 计算1~100之间偶数的累积和(包含1和100)

参考代码如下:

#encoding=utf-8

i = 1
sum = 0
while i <= 100:
    if i % 2 == 0:
        sum = sum + i
    i+=1

print("1~100的累积和为:%d" % sum)



----------------------------------------------------------------------------------------------------------

while循环嵌套

  • 前面学习过if的嵌套了,想一想if嵌套是什么样子的?

  • 类似if的嵌套,while嵌套就是:while里面还有while

<1>while嵌套的格式

    while 条件1:

        条件1满足时,做的事情1
        条件1满足时,做的事情2
        条件1满足时,做的事情3
        ...(省略)...

        while 条件2:
            条件2满足时,做的事情1
            条件2满足时,做的事情2
            条件2满足时,做的事情3
            ...(省略)...

<2>while嵌套应用一

要求:打印如下图形:

    *
    * *
    * * *
    * * * *
    * * * * *

参考代码:

i = 1
while i <= 5:
    j = 1
    while j <= i:
        print("* ", end = '')
        j += 1

    print("\n")
    i += 1

<3>while嵌套应用二:九九乘法表

参考代码:

i = 1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%-2d " % (j, i, i*j), end = '')
        j+=1
    print('\n')
    i+=1


--

-------------------------------------------------------------------------------------------------------------

 

 

for循环

像while循环一样,for可以完成循环的功能。

在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for循环的格式


for 临时变量 in 列表或者字符串等可迭代对象:
    循环满足条件时执行的代码

demo1

name = 'jiyun'

for x in name:
    print(x)

运行结果如下:

i
t
h
e
i
m
a

demo2

>>> for x in name:
        print(x)
        if x == 'l':
            print("Hello world!")

运行结果如下:

h
e
l
Hello world!
l
Hello world!
o

demo3


# range(5) 在python就业班中进行讲解会牵扯到迭代器的知识,
# 作为刚开始学习python的我们,此阶段仅仅知道range(5)表示可以循环5次即可
for i in range(5):
    print(i)

'''
效果等同于 while 循环的:

i = 0
while i < 5:
    print(i)
    i += 1
'''

运行结果如下:

0
1
2
3
4

----------------------------------------------------------------------------------------------------------

break和continue

1. break

<1> for循环

  • 普通的循环示例如下:

name = 'jiyun'

for x in name:
    print('----')
    print(x)
else:
    print("==for循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
i
----
t
----
h
----
e
----
i
----
m
----
a
==for循环过程中,如果没有break则执行==
  • 带有break的循环示例如下:

name = 'jiyun'

for x in name:
    print('----')
    if x == 'e': 
        break
    print(x)
else:
    print("==for循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
i
----
t
----
h
----

<2> while循环

  • 普通的循环示例如下:

i = 0

while i<5:
    i = i+1
    print('----')
    print(i)
else:
    print("==while循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
1
----
2
----
3
----
4
----
5
==while循环过程中,如果没有break则执行==
  • 带有break的循环示例如下:

i = 0

while i<5:
    i = i+1
    print('----')
    if i==3:
        break
    print(i)
else:
    print("==while循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
1
----
2
----

小结:

  • break的作用:立刻结束break所在的循环

2. continue

<1> for循环

  • 带有continue的循环示例如下:

name = 'jiyun'

for x in name:
    print('----')
    if x == 'e': 
        continue
    print(x)
else:
    print("==while循环过程中,如果没有break则执行==")

运行结果:

----
i
----
t
----
h
----
----
i
----
m
----
a
==while循环过程中,如果没有break则执行==

<2> while循环

  • 带有continue的循环示例如下:

i = 0

while i<5:
    i = i+1
    print('----')
    if i==3:
        continue
    print(i)

运行结果:

----
1
----
2
----
----
4
----
5

小结:

  • continue的作用:用来结束本次循环,紧接着执行下一次的循环

3. 注意点

  • break/continue只能用在循环中,除此以外不能单独使用

  • break/continue在嵌套循环中,只对最近的一层循环起作用

推荐阅读