首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python全栈开发《69.流程控制:初探逻辑》

python全栈开发《69.流程控制:初探逻辑》

作者头像
清菡
发布2024-12-03 22:00:42
发布2024-12-03 22:00:42
13100
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

1.逻辑判断与逻辑语句

1.1 什么是逻辑判断

  • 1)对于一件事情正确与否(真假的判断)。

在python中使用布尔类型,来表示真假对错。

来看一句话:“今天dewei吃早饭了对吗?”

通过这句话得出,我们希望dewei是吃了早饭的。所以我们企图寻找答案。

如果dewei真的吃了,就应证了这句话。所以对于这句话的结果,就是true。

如果dewei没有吃早饭,也就是否定了这个疑问句。所以结果是false。

而如果为true,展开的逻辑就是dewei现在不饿了。如果为false,可能dewei现在会有些饥饿。

所以说,通过判断的结果,做不同的事情。

  • 2)根据判断的结果做不同的事情,就是我们的逻辑业务。
  • 3)对于条件满足的判断语句,就是条件语句。

1.2 什么是逻辑语句

因为程序是自上而下执行的,对于一些条件进行假设,如果条件为true,则执行条件代码块。执行完成之后,继续执行下面的代码。

如果条件为false,则不会执行条件代码,而是跳过条件代码,继续执行下面的代码。

  • 一个逻辑语句是由条件语句和业务语句组合而成。

图中的平行四边形中的条件:就是条件语句。

条件代码:就是业务语句,也就是条件代码块。

2.if语句

2.1功能

if语句将帮助我们构建出条件语句和条件代码块(业务语句)。

  • if判断一个命题的真实性,如果命题为真(True),则执行if的逻辑语句。

2.2if语句用法

if是关键字,在if的后面的bool_result是添加的命题。if就是对这个命题的真实性的判断。

并且命题的后面要书写冒号。大家注意,曾经在脚本入口中学习过,如果遇到冒号,下一行就是新的代码块,并且要进行缩进。

缩进是由一个tab键或者四个空格键组成的。所以我们看到的第二行的do,就是代表if语句的业务代码块。

并且,相比if的起始位置,进行了缩进。

如果if判断bool_result这个命题为真的时候,将会执行这个代码块。

这个代码块里可以执行python任何的代码。另外,if属于强类型的关键字。它不能用于定义变量名,也没有返回值。

代码语言:javascript
代码运行次数:0
运行
复制
dewei_status = 'hunger'
if dewei_status == 'hunger':
    print('Xiaomu invites Dewei to dinner')

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Xiaomu invites Dewei to dinner

定义了一个字符串 'hunger',并且赋值给一个变量dewei_status。

接下来做这样一个命题:变量dewei_status是否等于 'hunger'。

if关键字会对这个判断进行真假的裁判。如果为真,则会进入冒号下面的代码块中进行执行。如果不为真,则不会执行if对应代码块中的代码。

定义的变量dewei_status的值是 'hunger',并且将dewei_status与字符串 'hunger'进行判断。这两个肯定相等。

所以一定返回真。if关键字发现返回的是真(true),则将程序执行带入到if逻辑的代码块中执行。

于是打印出:Xiaomu invites Dewei to dinner

3.代码

例1: if的用法。

代码语言:javascript
代码运行次数:0
运行
复制
# coding:utf-8

info = 'my name is xiaomu'

info_list = info.split()
print(info_list)

if info_list[0] == 'xiaomu':
    print(1)
    info_list[0] = 'dewei'

if info_list[1] == 'xiaomu':
    print(2)
    info_list[1] = 'dewei'

if info_list[2] == 'xiaomu':
    print(3)
    info_list[2] = 'dewei'

if info_list[-1] == 'xiaomu':
    print(4)
    info_list[-1] = 'dewei'

print(info_list)
info = ' '.join(info_list)
print(info)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_if/bin/python /Users/llq/PycharmProjects/pythonlearn/python_if/if_init.py 
['my', 'name', 'is', 'xiaomu']
4
['my', 'name', 'is', 'dewei']
my name is dewei

进程已结束,退出代码为 0

发现print(4)打印出来了。而上面,3个if的代码块都没有走。这很好理解,列表的0索引对应的值是 'my',所以 'my'并不等于 'xiaomu'。

所以if关键字对于这个检测,返回的结果是false,就不会进入到if代码块中。

第二和第三个也是。1索引的值是'name',2索引的值是‘is’,它们都不等于‘xiaomu’这个字符串。

所以它们if条件判断的结果都是false。也不会进入到对应的if代码块中。

只有到了索引3,也就是-1索引的时候,它的成员是‘xiaomu',和我们的比对相等。

if判断为true,所以走进了代码块。执行了代码块中的代码。先将print(4)打印出来,再将列表的-1索引的值改变成了‘dewei’。

例2: or:或者;成员运算符在if语句中的用法。

代码语言:javascript
代码运行次数:0
运行
复制
info = 'my name is dewei, i am a pythoner, i love python'
info_list = info.split()

if info_list[0] in ['python','i']:
    info_list[0] = '*'

if info_list[1] == 'python' or info_list[1] == 'i':
    info_list[1] = '*'

if info_list[2] == 'python' or info_list[2] == 'i':
    info_list[2] = '*'

if info_list[3] == 'python' or info_list[3] == 'i':
    info_list[3] = '*'

if info_list[4] == 'python' or info_list[4] == 'i':
    info_list[4] = '*'

if info_list[5] == 'python' or info_list[5] == 'i':
    info_list[5] = '*'

if info_list[6] == 'python' or info_list[6] == 'i':
    info_list[6] = '*'

if info_list[7] == 'python' or info_list[7] == 'i':
    info_list[7] = '*'

if info_list[8] == 'python' or info_list[8] == 'i':
    info_list[8] = '*'

if info_list[9] == 'python' or info_list[9] == 'i':
    info_list[9] = '*'

if info_list[-1] in ['python','i']:
    info_list[-1] = '*'

print(info_list)

info =' '.join(info_list)
print(info)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_if/bin/python /Users/llq/PycharmProjects/pythonlearn/python_if/if_init.py 
['my', 'name', 'is', 'dewei,', '*', 'am', 'a', 'pythoner,', '*', 'love', '*']
my name is dewei, * am a pythoner, * love *

进程已结束,退出代码为 0

例3:and:并且。

代码语言:javascript
代码运行次数:0
运行
复制
info = 'my name is dewei'
print(len(info))

if len(info) > 10 and len(info) != 16:
    print(info.replace('dewei','xiaomu'))

print('finish')

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_if/bin/python /Users/llq/PycharmProjects/pythonlearn/python_if/if_init.py 
16
finish

进程已结束,退出代码为 0

这个语句里,两个比大小之间用and连接。and两边的命题,与and有一个空格,这和or是一样的。

看代码:先打印了16这个长度。之后进行了这样一次判断:长度大于10并且长度不能等于16。才会进入这个代码块中。

由于不满足这两个命题的条件,没有进入代码块,而是绕了过去,直接执行下一个打印:print('finish')

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.逻辑判断与逻辑语句
    • 1.1 什么是逻辑判断
    • 1.2 什么是逻辑语句
  • 2.if语句
    • 2.1功能
    • 2.2if语句用法
  • 3.代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档