正在学习python,求解惑

为什么输入大于30000的数字后会输出'舰长要小心身体 ‘'啊舰长太躺平了吧'两个结果

shuijin=int(input('请输入上个月获得水晶数量'))
if shuijin>30000:
print('舰长要小心身体啊')
if 30000<=shuijin<25000:
print('最勤劳的舰长就是你')
if 25000<=shuijin<20000:
print('作为舰长还不够努力啊')
if 20000<=shuijin<15000:
print('老舰长真的没有肝费吗?')
if 15000<=shuijin<10000:
print('舰长继续努力啊')
if 10000<=shuijin<5000:
print('舰长加油,老婆就在眼前')
else:
print('舰长太躺平了吧')

请输入上个月获得水晶数量222222
舰长要小心身体啊
舰长太躺平了吧
请输入上个月获得水晶数量222222
舰长要小心身体啊
舰长太躺平了吧

因为你都用的if判断,会对输入判读多次,应该用elif,参考我的代码:

shuijin=int(input('请输入上个月获得水晶数量'))
if shuijin>30000:
    print('舰长要小心身体啊')
elif 30000<=shuijin<25000:
    print('最勤劳的舰长就是你')
elif 25000<=shuijin<20000:
    print('作为舰长还不够努力啊')
elif 20000<=shuijin<15000:
    print('老舰长真的没有肝费吗?')
elif 15000<=shuijin<10000:
    print('舰长继续努力啊')
elif 10000<=shuijin<5000:
    print('舰长加油,老婆就在眼前')
else:
    print('舰长太躺平了吧')


因为30000的条件满足你下面的两个条件哇,所以都需要输出啊

多加几个else

一个else会匹配最近的一个if,你这个else是匹配倒数第一个if语句。
建议使用
if
else if
else if
else
的结构

当你输入大于30000的数时,
满足
if shuijin>30000:
print('舰长要小心身体啊')
这里不满足if条件,执行esle下面的语句
if 10000<=shuijin<5000:
print('舰长加油,老婆就在眼前')
else:
print('舰长太躺平了吧')

img


我看出你是想写一个多重判断根据水晶数来对应不同结果,
但是你这里这几个if都是并列关系也就是说每个if都走了一遍,这是不对的,你应该用elif(也就是其他语言里面的else if)。
你现在的写法最后一个else之和前面一个if有关系

img

再说会为什么会显示两个的问题,前几个if只有第一个舰长要小心身体啊的判断符合条件,中间几个if不符合没有输出。最后一个if也不符合输出了else里的舰长太躺平了吧