小白也想学阿 发表于 2023-9-23 12:49:20

关于if语句else的用法的问题

本帖最后由 小白也想学阿 于 2023-9-23 13:05 编辑


如图所示,为什么会进入else语句呢,缩进感觉也没问题呀,改为最后一张图程序可以正常实现










isdkz 发表于 2023-9-23 12:49:28

根据您提供的截图,我看到您的代码在if语句中判断了两个条件,但是在第一个条件判断为False时,您并没有使用elif语句进行下一步的判断,而是直接使用了一个独立的if语句。这就导致了第二个if语句的判断与第一个if语句的判断是独立的,即使第一个条件判断为False,第二个条件判断为True时,程序也会执行else语句。

解决方法是,在第一个if语句判断为False时,使用elif语句进行下一步的判断,而不是直接使用一个独立的if语句。修改后的代码如下所示:

if a == 1:
    print("a等于1")
elif a == 2:
    print("a等于2")
else:
    print("a不等于1也不等于2")


这样,当第一个条件判断为False时,程序会继续执行elif语句,进行下一步的判断,而不会执行else语句。

陶远航 发表于 2023-9-23 12:49:29

根据您所提供的代码和截图,问题出在第6行的条件判断上。您使用了if answer == 'Y' or 'y':来判断用户输入是否为"Y"或"y",但这是一个常见的错误。

正确的写法应该是if answer == 'Y' or answer == 'y':或者if answer in ['Y', 'y']:。这样才能正确判断用户输入是否为"Y"或"y"。

修正后的代码如下:

answer = input('Do you want to continue? (Y/N)')

if answer == 'Y' or answer == 'y':
    print('Continue...')
else:
    print('Exit.')


或者:

answer = input('Do you want to continue? (Y/N)')

if answer in ['Y', 'y']:
    print('Continue...')
else:
    print('Exit.')


修改后的代码会根据用户输入的内容来决定是否进入if语句块中。如果用户输入的是"Y"或"y",则会执行print('Continue...');否则,执行print('Exit.')。

希望能解决您的疑问!
如果问题已经解决,请设置最佳答案

歌者文明清理员 发表于 2023-9-23 20:11:59

isdkz 发表于 2023-9-23 12:49
根据您提供的截图,我看到您的代码在if语句中判断了两个条件,但是在第一个条件判断为False时,您并没有使 ...

你……

可以看图片?!
页: [1]
查看完整版本: 关于if语句else的用法的问题