3:python语法第二章:语法基础2(适合小白进行观看)

目录:

3.1条件控制语句

3.1.1基本的if,else语句

3.1.2if嵌套

首先学习两个语句的话,最为重要的就是要搞清楚这个底层逻辑是啥,学会了底层的逻辑便很容易的写出代码。

3.1条件控制语句

3.1.1基本的if,else语句

基本的if,else的代码,可以首先理解一些什么是if,在英文中if指的是如果,所以说这个基本的代码其实非常好理解。以下是非常基本的if循环,代码的逻辑结构的整理:

tips:python代码是从上往下看的,这个非常重要。

if 不重要的代码(代号a):

          需要做的东西(代号b

else:(代号c

        需要做的东西(代号d

在这里的代号a这里,是一个逻辑语句,而何为逻辑语句,很简单就是数学中的比较,你看下面的表:

数学表达式python中的表达式
a等于ba==b
a不等于ba!=b
a大于ba>b
a小于ba<b
a大于等于ba>=b
a小于等于ba<=b

这个就是逻辑语句,所以在a处是一个逻辑语句。这里就衍生出为啥python能判断逻辑语句,为啥这里写6>7 python就能知道我这里是错的还是正确的?本着追根溯源的态度,这里还要介绍一个叫做布尔值(bool)的东西,布尔值就是用来判断着一些逻辑语句的一种数据类型,它分为True 与 False两种。

print(9 > 7)
print(8 == 7)
print(8 < 7 )
print(6 >= 6)

这个就是基本的布尔值的运算,可以先来猜猜看这些代码的值。

第一个第二个与第三个非常正常,我认为大家在这里不会犯错,答案一定能够猜到。但是一看最后一个犯迷糊了,为啥6还能大于等于6,这个操作是真的6,我的天,在数学中这个大于等于,中间并不是and的关系,就是并不是都需要满足,是or的关系,是或的关系是只要满足一个就好的意思。所以6显然不大于6,但是6显然等于6。所以满足一个就够了。所以当然是正确的呀!!而来解答一下关于这个为什么python能知道它是正确的或是错误的,如果判断是True就是正确的,判断错来是Flase就是错误的

接着来关注以下这个代码的逻辑。

首先这个python代码是从上往下看的,到第一句首先会判断a这个逻辑语句是否正确,如果正确的话那就进入if这个循环块(这个你可以理解成就是在if语句中里面的东西),运行b(一般是一些指令,比如说print啥的,或者其他的);如果满足不了条件a,那就到c这里。注意c这里是没有代码的(这个非常重要,因为很多的初学者都喜欢在这里写一下代码,所以千万记住这里没有代码)进入c这个模块后,直接运行d(这个d与之前一样是一个命令)

这个就是基本的if else逻辑语句。我来举一个例子

a = 66
b = 70
if b > a:
  print("b is greater than a   即a小于b")
else:
  print("a is bigger than b and a,b is equal 即a大于等于b")

这个就是一个基本的if条件语句的代码,这个代码的答案是啥我来解释以下,首先python从上往下看,看了前两行之后python就知道了a=66,b=70,接下来看if条件语句这一块,b显然是大于a的,所以在if后面的逻辑语句的布尔值是True,所以运行if的运算块(就是那个b)所以打印出来

这个print前面的空格,大家有可能会非常的不理解,这里也是需要重点讲一讲的。为啥这里需要空格,首先这个空格在编程中的学名叫做缩进,这个缩进在之后的编程之路中非常的重要。第一个print有几个空格,代表的是他是if中的代码块,第二个代表的是else中的代码块。这里vscode也帮助我们分别了,那些是代码块里那些不在代码块里。

在这张图里面有两个箭头,在这个红的箭头有一个小灰线,这个线就是在提醒你,这个是我的代码块,所以if的代码块就是在print这里。同样这个黄色的箭头表示了else的代码块,所以这个就是VScode在帮助编码。

接着说回来,这个代码的逻辑是有一定问题的,因为首先判断if 后面的逻辑语句是否正确,正确便在运行if代码块的东西,然后不对就是运行else代码块的东西吗,但是有一个问题在这个代码中我没有办法进行比较a与b是否相等或者说a比b大,比如说 我的a的值是70 b的值也是70,按照if条件语句的逻辑来说,肯定是运行了else中的代码块的东西但是我却不知道到底是大于还是等于。

所以引进了elif,这个是啥东西呢,我写一下结构你就完全知道这个是啥东西了。看看下面的图:

if 不重要的逻辑语句(a):(注意这个的冒号不要忘记掉,初学者经常忘记这个从而出现了报错的现象)

        b(不重要的命令)

elif 不重要的逻辑语句(c):

        (d)(不重要的命令)

else:(e)

       (f)(不重要的命令)

注意这里一样的逻辑只不过出现了另外的一个分支,总体的逻辑是这样的:如果不满足if的逻辑语句,那就到elif这里也就是c,满足c,那才是运行关于d的命令。如果不满足c的命令那就直接运行f就好了。这个就是关于加上了elif的总体逻辑。

接下来就是关于改善之前的代码

a = 66
b = 66
if b > a:
  print("a小于b")
elif b==a:
  print("a与b是一样的")
else:
  print("a大于b")

这样就是比较正确的代码,也是比较严谨的。同样这个输出的答案就是a与b是一样的。注意不要以为elif只能用一次,它可以运用很多次如果你需要的话。

3.1.2if嵌套

if的嵌套,相比与if基本的语句是难了很多的,但是总体来说是可以克服并且是简单的,所以不需要太过于担心。

首先来讲一下if循环的结构是怎么样的,它的底层逻辑又是怎么样的。

if 不重要的逻辑语句(a):

           if 不重要的逻辑语句(b):

                      c(命令语句)--------如果到这里,那便是满足了a,b两个逻辑语句的状态

          else:(d)

                     f(命令语句)---------如果到这里,那便是满足了a,没有满足b的逻辑语句的状态

else:

            g(命令语句)-------如果到这里,那就是不满足a的情况下

这里的逻辑图是相对于简单的逻辑图,理科的思维就是从简单到难,把会的变成不会的,这个非常的重要。首先来看一下,python是从上往下看的,所以首先有了一些数据之后,在a这个逻辑语句这个地方进行了一定的判断,就像之前说的,如果输出的bool值是True的话,那么进入(第一个)if的代码块,着这样的情况下,碰到了第二个逻辑语句,所以在第二个逻辑语句的话,如果满足这个逻辑语句,运行c,不满足便运行f。同样首先就不满足a的话,那就到else的模块,直接运行g。

所以如果想要到c或者f这里,那前提就是满足a,必须要满足a才能进入第一个if这个逻辑块。

举一个例子:在这个之前,要首先讲一下关于input函数的内容,input函数的作用就是可以理解成你登录一个网站然后要你输入你的用户名密码。

而我要举的一个例子就是输入你的分数,看看你的评级这样子的一个简单的代码(这个是一个小练习并不是说一个非常庞大的系统)

a=int(input("输入你的成绩;"))
if a>= 600:
    if a>700:
        print("你是一个优秀的孩子,你的评级是非常优秀")
    else:
        print("你是一个优秀的孩子,你的评级是优秀")
else:
    print("你的考试成绩一般,评级是良好")

在这里看一下这个输出的情况:

这里的620是我进行输入的,所以说它满足了第一个if的条件,但是没有满足第二个if的条件,所以说打印出来的就是 你是一个优秀的孩子,你的评级是优秀这样子一个结构。

但是这个在一般的现实生活中会出现一些问题,就是500--600分的评级不应该与100--200分的评级一样(我从来不歧视,虽然我认为这个其实很蠢,学校里用分数排名来定义你好不好本身就是一个笑话,这个只是学习所用)

所以代码应该改成

a=int(input("输入你的成绩;"))
if a>= 600:
    if a>700:
        print("你是一个优秀的孩子,你的评级是非常优秀")
    else:
        print("你是一个优秀的孩子,你的评级是优秀")
else:
    if a>=500:
        print("你的考试成绩一般,评级是良好")
    elif a>=400:
        print("你的成绩还是可以的,评级是合格")
    else:
        print("你的成绩不太理想,评级是不合格")

在这里代码变得更加的复杂了,但是并么有关系,因为我们打牢了简单的基础,所以不用害怕难的东西,这里的逻辑是这样的首先看一下如果我的成绩是390分

这里390分是为啥会跳出来这个东西的,是这样390分首先不满足第一个if的条件,所以肯定是不能进入第一个if的代码块的。但是到了else这里(注意从上到下)首先不满足else中的if与elif,所以直接跳到了else这里,所以打印出来的是 你的成绩不太理想,评级是不合格这样子的。

然后看一下499这个分数回事怎么样,首先来预测一波,499不满足第一个if 所以到else这里,看if不满足 看elif满足,所以应该是 你的成绩还是可以的,评级是合格

所以我们的推断是正确的。

在这里会有很多人问,为什么你在后面的代码中写道a大于等于400 这个不严谨 如果是510 那岂不是与之前冲突了么 那我们再来看一下这个510分会是咋样的状态。

为什么呢,大家可以自己想一下,在评论区回答。

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值