“条件”是生活中常常听到的定义,例如小王想要娶一位年轻漂亮的女孩为妻,那么第一条件小王必须是未婚人士,其次小王要娶的女孩要年满20且未婚,这是二人能够修成正果的条件,只有满足了这些条件才能够结婚。
在Python中也是有着条件判断的语法的,这样的结构我们称之为条件语句。当代码执行到条件语句时,就会去判断条件是否满足,只有条件满足的时候代码才会执行到满足条件的代码块之中。
在讲解条件语句之前,我们先来看一个内置函数input
的使用。
input
是用于接收键盘输入的内容的函数,其返回值为字符串类型。如:
a = input("请任意输入一段内容:")
print(a)
print(type(a))
代码执行效果如下:
代码执行的时候遇到input函数,就会等待键盘输入结果,以回车为结束标志,也就是说键入回车的时候代码才会继续往下执行。
一、if语句
在编程中,我们常常需要根据条件来执行不同的代码,这就需要用到条件语句,Python中最常用的条件语句是if语句。
if语句是一种分支语句,用于判断条件是否成立,如果条件成立则执行相应的代码,否则不执行。if语句通常的语法形式如下:
if condition:
statement
其中,condition
为需要判断的条件,可以是任何返回True
或False
的表达式;statement
为需要执行的语句,可以是以缩进的任何代码块,缩进的空格数必须相同。
例如,我们想要判断一个数是否为偶数,可以使用如下的if语句:
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print("输入的数是偶数")
在这个例子中,我们用input()
函数让用户输入一个整数,然后用条件表达式num % 2 == 0
来判断这个数是否为偶数,如果是,则执行下面的print()
语句,打印出“输入的数是偶数”。
二、if-else语句
如果我们想要有条件地执行两种不同的代码块,可以使用if-else语句。if-else语句的语法形式如下:
if condition:
statement1
else:
statement2
在if-else语句中,如果条件成立,则执行语句块statement1
,否则执行语句块statement2
。
例如,我们可以使用if-else语句来判断一个数是否为偶数,并打印相应的信息:
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print("输入的数是偶数")
else:
print("输入的数是奇数")
在这个例子中,如果输入的数字是偶数,则执行print("输入的数是偶数")
语句块,否则执行print("输入的数是奇数")
语句块。
三、if-elif-else语句
有时候,我们需要根据多个条件进行判断,此时可以使用if-elif-else语句。if-elif-else语句的语法形式如下:
if condition1:
statement1
elif condition2:
statement2
elif condition3:
statement3
else:
statement4
在if-elif-else语句中,会逐一判断每个condition
,如果有一个condition
为True
,则执行相应的statement
语句块,并跳过其他的elif
和else
语句块。
例如,我们可以使用if-elif-else语句来判断一个人是初中生还是高中生或者大学生,并打印相应的信息:
age = int(input("请输入这个人的年龄:"))
if age<12:
print("还没上初中")
elif 12 <= age < 15:
print("他是一个初中生")
elif 15 <= age < 18:
print("他是一个高中生")
elif 18 <= age < 22:
print("他是大学生")
else:
print("他已经毕业踏入社会了")
这个案例中,根据年龄范围来大致判断某人的身份是初中、高中、大学生或其他。需要注意的是,**如果多个条件均成立,则只会执行第一个条件判断为True
的语句块,并跳过其他的语句。**也就是说如果键盘输入值为10,则只进入到if中执行。
四、if嵌套
if嵌套是指在一个if语句中嵌套另一个if语句的语法结构。在Python中,if语句可以嵌套使用,这样可以根据更复杂的条件进行判断。
if嵌套的语法形式如下:
if condition1:
if condition2:
statement1
else:
statement2
else:
if condition3:
statement3
else:
statement4
在if嵌套中,先判断condition1
是否为True
,如果为True
,则继续嵌套判断,执行内部的if语句块;如果为False
,则执行外部的else语句块。
在内部的if语句块中,首先判断condition2
是否为True
,如果为True
,则执行statement1
语句块;如果为False
,则执行内部的else语句块。
在内部的else语句块中,执行statement2
语句块。
在外部的else语句块中,首先判断condition3
是否为True
,如果为True
,则执行statement3
语句块;如果为False
,则执行内部的else语句块。
在内部的else语句块中,执行statement4
语句块。
举个例子,假设现在需要根据用户输入的数字x,判断其正负性以及奇偶性。可以使用如下嵌套if语句:
x = int(input("请输入一个数字:"))
if x > 0:
if x % 2 == 0:
print("输入的数字是正偶数")
else:
print("输入的数字是正奇数")
else:
if x % 2 == 0:
print("输入的数字是负偶数")
else:
print("输入的数字是负奇数")
在这个例子中,首先使用input()
函数让用户输入一个整数,将其转换为整型变量x
。然后,使用if嵌套语句根据不同情况输出信息,如果x
大于0,则进入第一个if语句块,否则进入第一个else语句块。在每个语句块中,再根据x
的奇偶性进一步判断,输出相应的信息。例如,如果x
是正偶数,则打印出“输入的数字是正偶数”。
需要注意,if嵌套虽然可以解决某些复杂问题,但是容易让代码变得冗长,可读性变差,需要慎重使用。通常情况下,可以通过对条件进行逻辑运算符的组合等方式,避免嵌套过深的if语句。