python的if和else对应问题,python中if可以不用else吗

本篇文章给大家谈谈python中if后面一定要加else吗,以及python的if和else对应问题,希望对各位有所帮助,不要忘了收藏本站喔。

Source code download: 本文相关源码

基本结构

        python中判断语句的基本结构由if和else组成,当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,执行else下面的语句。这里条件的真假都是用bool值来作为依据的,我们知道比较运算、成员运算、身份运算返回的结果都是bool值python怎么画拱形。所以比较运算、成员运算、身份运算都可以作为条件放到判断语句中去。

if 1 > 2:
    print('yes')  # 代码缩进为一个Tab键或者4个空格键
else:
    print('no')

        当我们只需要条件为真时执行某些语句,条件为假时不用执行语句。那我们可以只要if不要else。

if 1 < 2:
    print('yes')

嵌套结构

        嵌套结构由多重基本结构组成,每一重的if对应每一重的else(else可有可无,具体看需求)。嵌套结构可以无限的嵌套下去,但要注意的是很多的嵌套结构都可以用其他的方式来优化,我们写代码的时候尽量不要写太多重的嵌套结构,嵌套结构重数越多代码的可读性越差。

        举个例子,现有3条线段a、b、c,请判断这三条线段能否构成三角形。三角形的判定方法:任意两边之和大于第三边。

a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c:
    print('线段a + b大于c')
    if a + c > b:
        print('线段a + c大于b')
        if b + c > a:
            print('线段b + c大于a')
            print('三条线段a、b、c可以构成三角形')
        else:
            print('线段a大于等于b + c,不能构成三角形')
    else:
        print('线段b大于等于a + c,不能构成三角形')
else:
    print('线段c大于等于a + b,不能构成三角形')

执行结果如下:

我们可以随意的输入一些值来判断能否构成三角形,不同的输入可能会得到不同的输出。 

多条件结构

        多条件结构由if、elif和else组成。当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,判断第一个elif后面的条件,当第一个elif后面的条件为真时,执行第一个elif下面的语句;当第一个elif后面的条件为假时,判断第二个elif后面的条件,当第二个elif后面的条件为真时,执行第二个elif下面的语句;当第二个elif后面的条件为假时,判断第三个elif后面的条件,以此类推。如果所有的条件都为假时,执行else下面的语句(else可有可无,具体看需求)。

        举个例子,我们来给小学生的数学成绩分等级,大于等于90分的为优秀,大于等于80分小于90分的为良好,大于60分小于80分的为一般,等于60分的为及格,小于60分的为不及格。

score = int(input('请输入分数:'))
if score > 100:
    print('超范围')
elif score >= 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 60:
    print('一般')
elif score == 60:
    print('及格')
else:
    print('不及格')

执行结果如下:

逻辑运算符

        使用逻辑运算符可以在一个判断语句中使用复杂的判断条件。

and做与运算,左右两边同时为真时结果为真,否则结果为假
or做或运算,左右两边同时为假时结果为假,否则结果为真
not做非运算,值为真时结果为假,值为假时结果为真

逻辑运算符(and)

结果

        逻辑运算符(and)用来做与运算,当左右两边的值都为真时返回真,否者返回假。

print(1 < 2 and 5 > 4)  # True
print(1 == 2 and 5 > 4)  # False
print(1 == 2 and 5 == 4)  # False

         逻辑运算符(and)在判断语句中的应用,用一个判断语句完成能否构成三角形的判断。

a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
    print('三条线段a、b、c可以构成三角形')
else:
    print('三条线段a、b、c不能构成三角形')

执行结果如下:

逻辑运算符(or)

结果

        逻辑运算符(or)用来做或运算,当左右两边的值都为假时返回假,否者返回真。

print(1 < 2 or 5 > 4)  # True
print(1 == 2 or 5 > 4)  # True
print(1 == 2 or 5 == 4)  # False

        逻辑运算符(or)在判断语句中的应用,判断小学生的数学成绩是否超出0~100的范围。

score = int(input('请输入分数:'))
if score > 100 or score < 0:
    print('分数超出0~100的范围')

执行结果如下:

逻辑运算符(not)

结果

        逻辑运算符(not)用来做非运算,当值为真时返回假,值为假时返回真。

print(not 1 < 2)  # False
print(not 1 == 2)  # True
print(not 1 > 2)  # True

        逻辑运算符(not)在判断语句中的应用,判断小学生的数学成绩是否超出0~100的范围。

score = int(input('请输入分数:'))
if not 0 <= score <= 100:
    print('分数超出0~100的范围')

执行结果如下:

综合运用

        现有3条线段a、b、c,请判断这三条线段能否构成三角形。如果能构成三角形,请判断构成的三角形是等边、等腰还是普通三角形。

a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
    if a == b == c:
        print('三条线段a、b、c能构成等边三角形')
    elif a == b or a == c or b == c:
        print('三条线段a、b、c能构成等腰三角形')
    else:
        print('三条线段a、b、c能构成普通三角形')
else:
    print('三条线段a、b、c不能构成三角形')

执行结果如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值