专栏首页前端说吧【python系统学习04】条件判断语句

【python系统学习04】条件判断语句

if,elif,else 条件判断语句

写法

number = 1

if number=='1': # 这里注意英文冒号

  print('1') # 这里注意缩进

elif number=='2': # 表达式没有小括号包裹

  print('2-1')
  print('2-2')
  print('2-3')
elif number=='3':
  print('3')
else:
  print('heihei')

学过 js 的你,看到这个肯定小 case 吧!肯定第一时间得到答案,打印出“1”吧!

实际答案是“heihei”

这就是 python 和 js 的不同之处了。

python 和 js 的不同之处

上上节数据类型的时候我强调了好多遍的。python 是强类型语言,不会做隐式类型转换

这里number == '1'在 js 中,肯定会把双等号左右的数据类型统一,然后判断得到 true,if 条件成立。

但是在 python 中,number 是 int 类型的 1,而双等号右边的是 str 类型的 1,他俩不相等,if 条件不成立。

所以,最后走到 else 条件,输出“heihei”。

在这里依据 js 的写法,学一下 python 的写法:

if 在 python 中的写法总结

  • if 后边表达式没有小括号
  • 表达式后边写英文冒号
  • 语句块没有大括号包裹,直接冒号后回车。可以巧记成冒号代替大括号。
  • if 条件成立后要执行的语句块在冒号下边、且需要“缩进”
  • elif写法 (对应 js 中的 else if)
  • python 中判断左右相等用双等号,没有三等号。

关于缩进

“ 注意:在条件判断代码中的冒号“:”后、下一行内容的前面,要有缩进,空几个格。 ”

对于 Python 而言,冒号和缩进是一种语法。它会帮助 Python 区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格或一个 Tab 键】

在 if 条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车,我们的开发工具(用来编写 Python 代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。

被缩进的内容(print()函数)和 if 条件语句组成了一个代码块(一个整体),成为了 if 条件下的内部命令。

如果赋值满足 if 条件,计算机就会准确执行 if 条件内部的命令(即缩进的代码块)。

无缩进报错

如果在 if 语句下边没有缩进的代码块。就会报错。(详细错误见上一节的缩进错误)

这是因为,当我们去掉缩进时,if 条件和 print 命令成为了两个不同的代码组,属于平行关系。你看:if 条件下面,缺少了可以执行的动作。我们想一下:无论条件成不成立,都不会执行什么操作,这个条件的存在没有任何意义。

语法

总结出语法如下:

if xxx :
# if语句 条件:
  xxxx
  # 带缩进的代码块
# if后边跟英文冒号,换行后自动缩进。

接下来系统说说这三个语句

单向判断:if...

含义:如果……就

条件成立,执行冒号下边缩进在 if 语句里的内容。

number=6

# 条件:如果number数量小于6,打印“我是爱你的”

if number >=6 :

    print('我是爱你的')


print('我没有错缩进,不是if的语句块,不受条件限制,我都要打印。')
# 我是爱你的
# 我没有错缩进,不是if的语句块,不受条件限制,我都要打印。

条件不满足,无法执行 if 条件下的命令,从而自动跳过,执行下一行命令。

number=6

# 条件:如果number数量小于6,打印“我不爱你了”

if number < 6:

    print('我不爱你了')

print('我没有错缩进,不是if的语句块,不受条件限制,我都要打印。')
# 我没有错缩进,不是if的语句块,不受条件限制,我都要打印。

所以上述代码没有打印“我不爱你了”,而是直接跳过,打印代码块外边不受if控制的print。

双向判断:if...else...

双向判断表示的是条件和其他条件的互斥关系——

条件满足,执行if下边的代码块。

如果不满足条件时,执行else下的代码块

即if和else下的代码块只会执行一个

bool = False 
# 注意这里,不要写成js中的“false”。

if  bool:

  print('我爱你')
else:
  print('我不爱你了')
print('我没有错缩进,不是if的语句块,不受条件限制,我都要打印。')
# 我不爱你了
# 我没有错缩进,不是if的语句块,不受条件限制,我都要打印。

上述条件不满足,执行else内的代码块:“我不爱你了”

多向判断:if...elif...else...

用于判断三个或三个以上的条件时:

  • if的条件满足,执行if下边的代码块。
  • 反之,elif的条件满足,执行elif下边的代码块。 elif可以有多个,你乐意写多少都行。
  • 实在都不满足,执行else下的代码块

if、elif、else三者所代表的条件都是互斥的。

score = 74

if score > 99:
  print('优秀')
elif score > 85:
  print('良好')
elif score > 66:
  print('及格')
else:
  print('好意思吗?!')
print('我没有错缩进,不是if的语句块,不受条件限制,我都要打印。')
# 及格
# 我没有错缩进,不是if的语句块,不受条件限制,我都要打印。

74不满足>99,所以if下边的代码块跳过不执行

74不满足>85,所以第1个elif下边的代码块跳过不执行

74满足>66,所以执行第2个elif下边的代码块,打印及格

最后跳过else,执行最后不受语句控制的print。

if 嵌套

if嵌套的应用场景,简单来讲就是:在第一个条件条件满足的情况下,在此基础上增加额外的条件判断。

嵌套示例

实现如果底下还有如果、条件里还套条件

goal = 94

if goal > 99:
  if goal < 105:
    print('天才')
  else:
    print('人间精品')
elif goal > 85:
  if goal > 90: # 嵌套if

    print('优秀')
  else:
    print('良好')
  print('是个人才!')
elif goal > 66:
  print('及格')
else:
  print('好意思吗?!')
# 优秀
# 是个人才!

94分,满足第一个elif的>85的条件,执行elif下的代码块

在代码块中,还有一组if...else...

因为满足嵌套if中的else,即85不大于90。所以打印良好

elif goal > 85:这组代码块中,还有一个print('是个人才!')不受内部嵌套if的管制,所以在第一个elif条件成立后,也打印了出来。

嵌套执行顺序

缩进相同的命令处于同一个等级。

因为计算机就要按顺序一条一条地执行命令

先给goal赋值为94

if、elif、else是只能走一个的互斥关系,所以当条件满足第一个elif的时候,就进入该elif的代码块内。 如下:

elif goal > 85:
  if goal > 90: # 嵌套if

    print('优秀')
  else:
    print('良好')
  print('是个人才!')

其他条件的代码块将不会执行。

在上述代码中,又一个嵌套if,则继续判断条件,进入if、else互斥条件中的其中一个代码块内。

根据成立条件,进入if,打印“优秀”

if goal > 90: # 嵌套if

    print('优秀')

最后,跳出嵌套if,执行嵌套if外边、elif里边的其他剩余代码,打印“是个人才”。

print('是个人才!')

思考应用题

用py代码实现如下逻辑(欢迎评论留言你的写法)

秋天到了,树上果子熟了。猴妈妈让小猴子去山上摘果子。猴妈妈告诉猴子:

如果碰到了苹果树,树上还有5个以上红果子,就摘五个苹果回来。没有的话就摘两个青果子。

碰到了香蕉树,若手里有5个苹果拿不了多少,就摘两根回来。手里有2个苹果,就摘10根香蕉回来。手里没苹果,就尽可能多摘回来点香蕉。

若什么树都没有碰到,就去山上庙里化点斋饭回来。

原网页地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小游戏——js+h5[canvas]+cs3制作【五子棋】小游戏

    xing.org1^
  • JS案例 - 基于vue的移动端长按手势

    当时首先想到要做长按事件的时候,我想到的是vue内部的自定义指令,毕竟官网里边有这么一句描述:

    xing.org1^
  • JS-完美运动框架(封装)

    xing.org1^
  • Python基础05 缩进和选择

    缩进 Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块。 先看C语言的表...

    Vamei
  • python笔记3

    检测当前元素中是否存在bwm,如果存在就全部大写打印bwm,如果没有则首字母大写打印所有字母.

    blankmiss
  • R语言写2048游戏

           2048 是一款益智游戏,只需要用方向键让两两相同的数字碰撞就会诞生一个翻倍的数字,初始数字由 2 或者 4 构成,直到游戏界面全部被填满,游戏结...

    用户1680321
  • R条件语句

    但如果你有一长串 if 语句,那么就要考虑重写了。重写的一种方法是使用 switch() 函数, 它先对第一个参数求值,然后按照名称或位置在后面的参数列表中匹...

    生信编程日常
  • futureTask的超时原理解析

    java/util/concurrent/AbstractExecutorService.java

    codecraft
  • 计算机科学中的数学(一)

    数学函数三要素:定义域、对应法则、值域。 对应于编程语言中的函数:形式参数、函数主体(逻辑、计算规则)、返回值。

    城市中的游牧民族
  • 源码阅读--xutil3

    提莫队长

扫码关注云+社区

领取腾讯云代金券