python条件怎么判断_[10] Python条件判断语句(一)

1. 概述

我们已经了解了Python的一些基础知识,今天我们要看一下Python的条件判断语句,由于从现在开始内容要求逻辑运算,在介绍的时候为了照顾没有计算机科学基础的同学,我会涵盖一些非常基础的逻辑算法知识,已经会的同学可以跳过这些内容。计算机编程的原理简要介绍

集成开发环境PyCharm

变量名、数字、字符串、列表

句式、注释

输入和输出

条件判断语句

循环语句

函数

模块和引入

各类数据结构

2. 流程图

首先,当我们做事情的时候,怎么进行判断呢?一个最直观的表现手法是画流程图,其实在熟悉算法后,我们一般会跳过这个步骤,但在进行项目规划时,如果能先把流程图画好,可以事半功倍。当然本教程主要目的是教大家怎么编写Python,并不会对流程图的各个进行细节阐述,我会通过实例来给大家展示一下流程图的思维方式。

画流程图我们可以使用PowerPoint,就是做幻灯片的那个,当然,还有一款国外的强大在线应用draw.io,我们可以选择保存到各个网盘或者直接本地电脑中,点击创建空白图表就行。土豪可以用微软的那个Visio,听说很贵。

看一道题:

期末算分时,我们需要输入一个学生的各科分数,通过比重判断这个学生最后等第。科目有五门,语文占30%,数学30%,英语20%,计算机10%,经济10%。全部100分制,总分到达90分为A,到达80分为B,到达70分为C,到达60分为D,59分及以下为F。

至于为什么选计算机和经济作为选修,因为笔者就是这俩专业的。

那么流程图怎么画?我们可以通过draw.io的各个组件实现,不过首先我们脑海里需要形成一个概念,即首先程序要拿到数据,即要求老师输入各科分数;

接着计算该学生总成绩;

接着判断学生的等第:如果学生分数为90及以上,等第为A;

如果没有90,但是达到了80,则为B;

如果没有80,但是达到了70,则为C;

如果没有70,但是达到了60,则为D;

如果以上条件都没达到,则拿了60分以下,给F;

最后在屏幕上输出等第,告知老师。

最后流程图长这样:

3. if-elif-else语句

条件判断语句,最常见的就是if-elif-else语句了,if和else很好理解,即如果和否则,感觉就跟我们常说的“非黑即白”同一个逻辑,

#让用户输入一个整数来判断奇偶

number = int(input("Please enter an integer: "))

#如果整数除以2余数是1,则为奇数,否则为偶数

if number % 2 == 1:

print("It is an odd number.")

else:

print("It is an even number.")

也就是说,像这种满足了一个条件,进行如下操作,不满足的话那就怎么样怎么样的,我们可以直接if-else。

有时候我们可能不满足某一条件时,我们就什么也不做,那一个if就够了,else不是必须要的。比如:

#让用户输入一个整数来判断奇偶

number = int(input("Please enter an integer: "))

#如果整数除以2余数是1,则告诉用户它是奇数,不然什么都不说,无可奉告

if number % 2 == 1: #两个等号==来判断左右的值是否相同

print("It is an odd number.")

虽然这个程序看着很调皮,我们输入一个数,如果是奇数,程序会显示,这是个奇数,如果输入的偶数,那程序就默默地结束了,什么也不会显示。

那么有时候我们会遇到这样的情况,如果我们满足了条件一,我们执行以下操作,那么不满足条件一却满足了条件二,我们执行以下操作,如果不满足二满足三又怎么样怎么样,什么都不满足又怎么样怎么样,比如流程图那道题,我复制粘贴下来:期末算分时,我们需要输入一个学生的各科分数,通过比重判断这个学生最后等第。科目有五门,语文占30%,数学30%,英语20%,计算机10%,经济10%。全部100分制,总分到达90分为A,到达80分为B,到达70分为C,到达60分为D,59分及以下为F。

我们则需要使用elif,意思就是“否则如果”(else if不知道怎么翻译了),具体看一下怎么写代码:

#首先,要求老师输入各科成绩

literature = int(input("Please enter your literature score: "))

math = int(input("Please enter your math score: "))

english = int(input("Please enter your english score: "))

computer = int(input("Please enter your computer score: "))

economics = int(input("Please enter your economics score: "))

#其次,计算总分,0.1、0.2之类的可以直接写成.1、.2

total = literature * .3 + math * .3 + \

english * .2 + computer * .1 + economics * .1

#根据总分判断等第

if total >= 90:

grade = "A"

elif total >= 80:

grade = "B"

elif total >= 70:

grade = "C"

elif total >= 60:

grade = "D"

else:

grade = "F"

#显示等第

print("The student's grade is {}".format(grade))

我们看一下if-elif-else这块:

if total >= 90: #很好理解,如果总分大于等于90,得A

grade = "A"

elif total >= 80: #如果上面不满足,总分小于90,那么判断是不是80+,是的话得B

grade = "B"

elif total >= 70: #如果上面不满足,总分小于80,那么判断是不是70+,是的话得C

grade = "C"

elif total >= 60: #如果上面不满足,总分小于70,那么判断是不是60+,是的话得D

grade = "D"

else: #如果上面都不满足,总分都小于60了,给F

grade = "F"

我们可以看到这个判断顺序是从上到下的,不满足某条件,就会向下看是否满足接下来的一个条件,按顺序进行,这里要注意,一旦满足某一条件,就会自动忽略接下来的判断。

如果我们把上面的代码倒着写,把if-elif-else改成如下:

if total >= 0:

grade = "F"

elif total >= 60:

grade = "D"

elif total >= 70:

grade = "C"

elif total >= 80:

grade = "B"

else:

grade = "A"

这就出问题了,如果得了0分或0分以上,给F,但是,一般的课程都是0粉或0分以上,输入的分数肯定满足该条件,grade这个变量就直接被赋了F这个值,满足了条件一,就没了所谓的否则和否则如果,自动忽略接下来的条件二三四五。做出这个程序的人估计要被学霸学神们吊着打,考试拿满分,等第亮红灯。为了保护程序猿,又不伤害程序猿的自尊(等第还是倒着写,但是等第要给对),我们该怎么修改呢?

if total < 60:

grade = "F"

elif total < 70:

grade = "D"

elif total < 80:

grade = "C"

elif total < 90:

grade = "B"

else:

grade = "A"

这样就好多了,如果没拿到60分,给F;如果拿到了,但是没到70,给D;如果到70没到80,给C,以此类推。

有同学就会问了,为什么不给一个区间,看着就不会出错。这样做可以,但是没有必要,上面那段代码等同于:

if total < 60:

grade = "F"

elif 60 <= total < 70:

grade = "D"

elif 70 <= total < 80:

grade = "C"

elif 80 <= total < 90:

grade = "B"

else:

grade = "A"

但是这段代码明显就比较冗杂且没有必要,如果不满足条件1,那么自然total已经大于等于60了,无非再重申一遍。记住Python是一门优雅简洁的语言,我们编程必须要做到简洁干练。

4. 篇幅缩减

我们在本文看到了各种对比大小的符号,比如两个等号==,大于小于,我想把它们放到下面的一篇文章介绍。我也意识到之前的文章都有点太长了,考虑到大家读着读着会失去耐心,再者我自己也不想一下子写太多(懒了),我打算把原来一篇文章的量进行拆解,方便你我他,同时贯彻长辈们的谆谆教诲:

谢谢观赏!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值