一、python条件判断
条件语句是指根据条件表达式的不同计算结果,使程序流转到不同的代码块。python中的条件语句是if语句和if else语句。
1、if条件语句
if语句用于判断某个条件是否成立,如果成立,则执行语句内的程序,否则跳过if语句执行后面的内容,语法格式如下:
if语句的执行过程是,如果条件的布尔值为true,则执行语句块:否则跳过语句块,继续执行后面的语句。语句块是一组程序语句,python的语法中没有用Java等语言中的花括号表示一组语句,而是采用空格缩进的方式表示一组语句,
通常用4个空格表示一组语句,使程序员在编码时减少了代码的工作量。下面示例展示if的使用:
>>> money = 100
>>> if (money > 99):
print ("double kill")
print ("triple kill")
double kill
triple kill
定义变量money=100,使用if语句时条件money>99的值是布尔值true,执行下面的2条打印语句,这2条打印语句都是前面有4个空格,表示他们是一个语句块。
2、条件表达式与关系运算符
使用if语句时,后面要用到条件表示式和关系运算符,他们可以经过运算得到布尔值。条件表达式的语法如下:
前后两个数值,中间使用关系运算符比较,得到布尔值。常用的关系运算符如下表所示:
下面代码演示他们的运算结果:
>>> print(10==9)
False #假
>>> print(10!=9)
True #真
>>> print(10>9)
True #真
>>> print(10<9)
False #假
>>> print(10>=9)
True #真
>>> print(10<=9)
False #假
语句10==9是等于判断,他们不相等,结果是false。10!=9是不等于判断,它们不相等,结果是true。其他几种也是采用相同的方式进行判断得到结果。
3、if-else条件语句
if语句还可以加上else关键字,根据条件判断,决定执行不同的语句块,当条件为true时,执行语句块1,当条件为false时,执行语句块2,语法如下:
示例代码如下:
cj=input("请输入您的成绩:")
cj=eval(cj)
if cj>=60:
print("合格")
else:
print("继续努力")
//输出结果
请输入您的成绩:80
合格
>>>
请输入您的成绩:50
继续努力
第1遍执行时,输入80,条件为true,执行print‘合格’语句;第2遍执行时,输入50,条件为false,执行print‘继续努力’。所以if-else是在需要根据条件决定程序需要执行的内容时使用。
语法上要注意if和else后面都是要使用冒号,它们前面的空格缩进是相同的,表示他们是一个整体,而他们对应的语句块也是同级的,空格缩进是相同的,整体的代码看起来比其他语言更加简洁易懂。
4、多重if语句
使用if-else通过条件判断使程序能够有2条执行路径,但有时还需要更多路径进行处理,这时可以加入elif关键字处理。语法如下:
当条件1成立时,执行条件1对应的语句块1,当条件2,3成立时,分别执行对应的语句块,当前面的条件都不成功时,执行else对应的语句块。示例代码如下:
while True:
cj=input("请输入您的成绩:")
cj=eval(cj)
if cj>=90:
print("优秀")
elif cj>=70:
print("合格")
elif cj>=60:
print("良好")
else:
print("继续努力")
//输出结果
请输入您的成绩:92
优秀
请输入您的成绩:71
合格
请输入您的成绩:65
良好
请输入您的成绩:45
继续努力
请输入您的成绩:35
继续努力
使用键盘输入不同的值,输出结果不同,执行了不同的语句块,其中else语句是一个可选项,可以有也可以没有,需要根据程序的需要灵活掌握。
5、if语句的常见问题
1)使用if-elif-else语句时,容易出现逻辑错误,因为条件是由上向下判断,如果条件成立,下面的条件判断将不再执行。前面示例代码如果把条件颠倒过来,比如把cj>=60放到cj>=90的上面,那么输入100时,首先判断的cj>=60是成立的,则不会再执行cj>=90的判断语句,程序将无法按要求得到结果,以下代码就是逻辑错误的典型情况:
cj=input("请输入您的成绩:")
cj=eval(cj)
if cj>=60:
print("优秀")
elif cj>=70:
print("合格")
elif cj>=90:
print("良好")
else:
print("继续努力")
2)if语句中语句块没有缩进也是容易犯的错误,如下代码编译器会直接报错:
cj=input("请输入您的成绩:")
cj=eval(cj)
if cj>=60:
print("优秀") #没有缩进
还要保证同级的语句缩进空格的绝对一致,即使只有一个空格的差别,他们已经表示不同的语句块了,如下代码所示:
cj=input("请输入您的成绩:")
cj=eval(cj)
if cj>=60:
print("优秀")
elif cj>=70:
print("合格") #少了一个空格
elif cj>=90:
print("良好") #少了两个空格
第2条输出语句比第1条少了1个空格,执行时会报错。
3)对于使用其他语言转为python的程序员,由于习惯经常会忘记表达式后面的冒号,多练习熟悉语法。