前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python系统学习04】条件判断语句

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

作者头像
xing.org1^
发布2020-02-13 12:51:56
1K0
发布2020-02-13 12:51:56
举报
文章被收录于专栏:前端说吧前端说吧

if,elif,else 条件判断语句

写法

代码语言:javascript
复制
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 条件下面,缺少了可以执行的动作。我们想一下:无论条件成不成立,都不会执行什么操作,这个条件的存在没有任何意义。

语法

总结出语法如下:

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

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

单向判断:if...

含义:如果……就

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

代码语言:javascript
复制
number=6

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

if number >=6 :

    print('我是爱你的')


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

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

代码语言:javascript
复制
number=6

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

if number < 6:

    print('我不爱你了')

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

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

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

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

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

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

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

代码语言:javascript
复制
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三者所代表的条件都是互斥的。

代码语言:javascript
复制
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嵌套的应用场景,简单来讲就是:在第一个条件条件满足的情况下,在此基础上增加额外的条件判断。

嵌套示例

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

代码语言:javascript
复制
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的代码块内。 如下:

代码语言:javascript
复制
elif goal > 85:
  if goal > 90: # 嵌套if

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

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

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

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

代码语言:javascript
复制
if goal > 90: # 嵌套if

    print('优秀')

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

代码语言:javascript
复制
print('是个人才!')

思考应用题

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

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

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

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

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

原网页地址

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if,elif,else 条件判断语句
    • 写法
      • python 和 js 的不同之处
      • if 在 python 中的写法总结
      • 关于缩进
      • 无缩进报错
    • 语法
      • 单向判断:if...
        • 双向判断:if...else...
          • 多向判断:if...elif...else...
            • if 嵌套
              • 嵌套示例
              • 嵌套执行顺序
            • 思考应用题
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档