目录

一、判断(if)语句

二、逻辑运算

三、if语句进阶

四、综合应用--石头剪刀布

五、循环

一、判断(if)语句

1.判断语句演练--判断年龄

"""
需求
1.定义一个整数变量记录年龄
2.判断是否满18岁(>=)
3.如果满18岁,允许进网吧嗨皮
"""

#1.定义年龄变量
age = 18

#2.判断是否满18岁
# if 语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
    #3.如果满了18岁,可以进网吧嗨皮
    print("可以进入网吧嗨皮")

#3.思考!- 无论条件是否满足都会执行
print ("这句代码什么时候执行?")

2.运算符

比较(关系)运算符

python3判断逻辑报错 python 逻辑判断语句_python3判断逻辑报错

3.else处理条件不满足的情况

如果需要在不满足条件的时候,做某些事情,可以使用else处理条件不满足的情况

if 要判断的条件:
    条件成立时,要做的事情
    ......
else:
    条件不成立时,要做的事情
    ......

注意:if 和 else 语句以及各自的缩进部分共同是一个完整的代码块

4.判断语句演练--判断年龄改进

"""
需求:
1.输入用户年龄
2.判断是否满18岁(>=)
3.如果满18岁,允许进网吧嗨皮
4.如果未满18岁,提示回家写作业
"""

# 1.输入用户年龄
age = int(input("今年多大了?"))

# 2.判断是否满18岁
if age >= 18:
    print("可以进网吧嗨皮")
else:
    print("你还没长大,应该回家写作业!")

二、逻辑运算

在程序开发中,通常在判断条件时,会需要同时判断多个条件,只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符。

逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件。

python中的逻辑运算符包括:与and/或or/非not三种。

1.and

条件1 and 条件2

与/并且,两个条件同时满足,返回True,只要有一个不满足,就返回False。

python3判断逻辑报错 python 逻辑判断语句_缩进_02

 逻辑运算演练:

"""
练习1:定义一个整数变量age,编写代码判断年龄是否正确
要求人的年龄在0-120之间
"""

age = int(input("请输入年龄:"))

if age >= 0 and age <= 120:
    print("年龄正确")
else:
    print("年龄不正确")
"""
练习2:定义两个整数变量python_score、c_score,编写代码判断成绩
要求只要有一门成绩>60分就算合格
"""

python_score = int(input("请输入python成绩:"))
c_score = int(input("请输入c成绩:"))

if python_score > 60 or c_score > 60:
    print("考试通过")
else:
    print("考试失败,继续努力")
"""
练习3:定义一个布尔型变量is_employee,编写代码判断是否是本公司员工
如果不是提示不允许入内
"""
#注意:python将非空字符串解读为True,故该程序只有输入回车时返回False

is_employee = bool(input("请输入你的证明:"))

#如果不是提示不允许入内
if not is_employee:
    print("非本公司人员,请勿入内")

三、if语句进阶

1.elif

在开发中,使用if可以判断条件,使用else可以处理条件不成立的情况,但是,如果希望再增加一些条件,条件不同,需要执行的代码也不同时,就可以使用elif。

语法格式如下:

if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……

对比逻辑运算符的代码

if 条件1 and 条件2:
    条件1满足 并且 条件2满足 执行的代码
    ……

注意:elif和else都必须和if联合使用,而不能单独使用;可以将if、elif和else以及各自缩进的代码,看成一个完整的代码块。

"""
需求:
1.定义holiday_name字符串变量记录节日名称
2.如果是情人节应该买玫瑰/看电影
3.如果是平安夜应该买苹果/吃大餐
4.如果是生日应该买蛋糕
5.其他的日子每天都是节日啊......
"""

holiday_name = input("今天是什么节日?")

if holiday_name == "情人节":
    print("买玫瑰")
    print("看电影")
elif holiday_name == "平安夜":
    print("买苹果")
    print("吃大餐")
elif holiday_name == "生日":
    print("买蛋糕")
else:
    print("每天都是节日啊......")

2.if的嵌套

elif的应用场景是:同时判断多个条件,所有的条件是平级的。

在开发中,使用if进行条件判断,如果希望在条件成立的执行语句中再增加条件判断,就可以使用if的嵌套。

if的嵌套的应用场景就是:在之前条件满足的前提下,再增加额外的判断。

if的嵌套的语法格式,除了缩进之外和之前的没有区别。

语法格式如下:

if 条件 1:
    条件 1 满足执行的代码
    ……
    
    if 条件 1 基础上的条件 2:
        条件 2 满足时,执行的代码
        ……    
        
    # 条件 2 不满足的处理
    else:
        条件 2 不满足时,执行的代码
        
# 条件 1 不满足的处理
else:
    条件1 不满足时,执行的代码
    ……

2.1 if的嵌套演练--火车站安检

"""
需求:
1.定义布尔型变量has_ticket表示有车票
2.定义整型变量knife_length表示刀的长度,单位:厘米
3.首先检查是否有车票,如果有,才允许进行安检
4.安检时,需要检查刀的长度,判断是否超过20厘米
    如果超过20厘米,提示刀的长度,不允许上车
    如果不超过20厘米,安检通过
5.如果没有车票,不允许进门
"""
 
# 定义布尔型变量 has_ticket 表示是否有车票
has_ticket = True

# 定义整数型变量 knife_length 表示刀的长度,单位:厘米
knife_length = 20

# 首先检查是否有车票,如果有,才允许进行 安检
if has_ticket:
    print("有车票,可以开始安检...")

    # 安检时,需要检查刀的长度,判断是否超过 20 厘米
    # 如果超过 20 厘米,提示刀的长度,不允许上车
    if knife_length >= 20:
        print("不允许携带 %d 厘米长的刀上车" % knife_length)
    # 如果不超过 20 厘米,安检通过
    else:
        print("安检通过,祝您旅途愉快……")

# 如果没有车票,不允许进门
else:
    print("大哥,您要先买票啊")

四、综合应用--石头剪刀布

目标:1.强化多个条件的逻辑运算;2.体会import导入模块(“工具包”)的使用

1.石头剪刀布-简易版

"""
需求:
1.从控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
2.先假定电脑只会出石头,完成整体代码功能
3.比较胜负
"""

# 从控制台输入要出的拳-石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 先假定电脑只会出石头,完成整体代码功能
computer = 1

print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))

# 玩家胜
if ((player == 1 and computer == 2) 
        or (player == 2 and computer == 3) 
        or(player == 3 and computer == 1)):
    print("欧耶,电脑弱爆了!")
# 平局
elif player == computer:
    print("真是心有灵犀啊,再来一盘")
# 电脑胜
else:
    print("不服气,我们决战到天明!")

2.石头剪刀布-升级版(随机数)

在pthon中,要使用随机数,首先需要导入随机数的模块--“工具包”

import random

导入模块后,可以直接在模块名称后面敲一个.然后按Tab键,会提示该模块中包含的所有函数

random.randint(a,b),返回[a,b]之间的整数,包含a和b

例如:

import random
random.randint(12,20) #生成的随机数n:12 <= n <= 20
random.randint(20,20) #结果永远是20
random.randint(20,10) #该语句是错误的,下限必须小于上限
"""
需求:
1.从控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
2.电脑随机出拳,完成整体代码功能
3.比较胜负
"""

# 导入随机工具包
# 注意:在导入工具包的时候,应该将导入的语句,放在文件的顶部
# 因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具
import random

# 从控制台输入要出的拳-石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1,3)

print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))

# 玩家胜
if ((player == 1 and computer == 2) 
        or (player == 2 and computer == 3) 
        or(player == 3 and computer == 1)):
    print("欧耶,电脑弱爆了!")
# 平局
elif player == computer:
    print("真是心有灵犀啊,再来一盘")
# 电脑胜
else:
    print("不服气,我们决战到天明!")

五、循环

1.程序的三大流程

在程序开发中,一共有三种流程方式:

顺序--从上到下,顺序执行代码

分支--根据条件判断,决定执行代码的分支

循环--让特定代码重复执行

python3判断逻辑报错 python 逻辑判断语句_嵌套_03

2.while 循环基本使用

循环的作用就是让指定的代码重复的执行

while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行

2.1 while语句基本语法

初始条件设置-通常是重复执行的计数器

while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...

    处理条件(计数器 + 1)

注意:

while语句以及缩进部分是一个完整的代码块

第一个while循环

"""
需求:
打印5遍Hello Python
"""

# 1.定义重复次数计数器
i = 0

# 2.使用while判断条件
while i < 5:
    # 要重复执行的代码
    print("Hello Python")

    # 处理计算器 i
    i = i + 1

print("循环结束后的 i = %d" % i)

注意:循环结束后,之前定义的计数器条件的数值是依旧存在的

死循环

由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止! 

2.2 赋值运算符

在python中,使用=可以给变量赋值

在算术运算时,为了简化代码的编写,python还提供了一系列的与算术运算符对应的赋值运算符

注意:赋值运算符中间不能使用空格

python3判断逻辑报错 python 逻辑判断语句_嵌套_04

2.3 python中的计数方法

常见的计数方法有两种,可以分别称为:

自然计数法(从1开始)--更符合人类的习惯

程序计数法(从0开始)--几乎所有的程序语言都选择从0开始计数

2.4 循环计算

在程序开发中,通常会遇到利用循环重复计算的需求

遇到这种需求,可以:

1.在while上方定义一个变量,用于存放最终计算

2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量

# 需求:
# 计算0~100之间所有数字的累计求和结果
# 0.定义最终结果的变量
result = 0

# 1.定义一个整数的变量记录循环的次数
i = 0

# 2.开始循环
while i <= 100:
    # 每一次循环,都让result这个变量和i这个计数器相加
    result += i

    # 处理计数器
    i += 1

print("0~100之间的数字求和结果:%d" % result)
# 需求进阶
# 计算0~100之间所有偶数的累计求和结果

"""
开发步骤:
1.编写循环确认要计算的数字
2.添加结果变量,在循环内部处理计算结果
"""

# 0.最终结果
result = 0

# 1.计数器
i = 0

# 2.开始循环
while i <= 100:

    # 判断计数器是否为偶数
    if i % 2 == 0:
        # i是偶数时,都让result这个变量和i这个计数器相加
        result += i

    # 处理计数器
    i += 1

print("0~100之间的偶数求和结果:%d" % result)

3.break和continue

break和continue是专门在循环中使用的关键字

break某一条件满足时,退出循环,不再执行后续重复的代码

continue某一条件满足时,不执行后续重复的代码

break和continue只针对当前所在循环有效

python3判断逻辑报错 python 逻辑判断语句_嵌套_05

i = 0

while i < 10:
    
    if i == 3:
        break

    print(i)

    i += 1

print("over")
i = 0

while i < 10:
    
    if i == 3:
        # 在使用关键字之前,需要确认循环的计数是否修改,否则可能会导致死循环
        i += 1
        continue

    print(i)

    i += 1

 4.while循环嵌套

4.1 循环嵌套

while嵌套就是:while里面还有while

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

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

        处理条件 2
    处理条件 1

 4.2 循环嵌套演练--九九乘法表

第1步:用嵌套打印小星星

# 在控制台连续输出五行*,每一行星号的数量依次递增
# *
# **
# ***
# ****
# *****

# 1.定义一个计数器变量,从数字1开始
row = 1

# 2.开始循环
while row <= 5:

    print("*" * row)

    row += 1

第2步:使用循环嵌套打印小星星

在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行

如果不希望末尾增加换行,可以在print函数输出内容的后面增加,end=""

其中""中间可以指定print函数输出内容之后,继续希望显示的内容

语法格式如下:

# 向控制台输出内容结束之后,不会换行
print("*", end="")

# 单纯的换行
print("")

end=""表示向控制台输出内容结束之后,不会换行

# 假设python没有提供字符串的*操作(乘法操作)拼接字符串
# 需求:在控制台连续输出五行*,每一行星号的数量依次递增
# *
# **
# ***
# ****
# *****

row = 1

while row <= 5:

    # 假设python没有提供字符串*操作
    # 在循环内部,再增加一个循环,实现每一行的星星打印
    col = 1

    while col <= row:
        print("*",end="")

        col += 1

    # 每一行星号输出完成后,再增加一个换行
    print("")

    row += 1

第三步:九九乘法表

# 需求:输出九九乘法表
"""
1.打印9行小星星
2.将星星替换成每个乘法算式
"""

row = 1
while row <= 9:
    col = 1
    while col <= row:
        # print("*", end="")
        print("%d * %d = %2d "% (col,row,col * row), end=" ")
        col += 1
    print("")
    row += 1

 字符串中的转义字符

\t  在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐

\n 在控制台输出一个换行符

制表符的功能实在不使用表格的情况下在垂直方向按列对齐文本

python3判断逻辑报错 python 逻辑判断语句_python3判断逻辑报错_06

# \t  在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐

row = 1
while row <= 9:
    col = 1
    while col <= row:
        # print("*", end="")
        print("%d * %d = %d "% (col,row,col * row), end="\t")
        col += 1
    print("")
    row += 1