首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我搞不懂为什么不在代码行后面打印( if 6 <= n <= 20 )

我搞不懂为什么不在代码行后面打印( if 6 <= n <= 20 )
EN

Stack Overflow用户
提问于 2019-07-06 15:31:32
回答 2查看 20关注 0票数 0

我正在运行这段代码。当我把输入值设置为6或更大时,它不会打印任何东西,也不会显示任何错误。就像它不打印任何东西一样,如果6 <= n <= 20

我试着重写代码或bug,我检查了很多次。

代码语言:javascript
复制
#!/bin/python3

import math
import os
import random
import re
import sys



if __name__ == '__main__':
    n = int(input().strip())
    if n%2 == 0 :
        if 2 <= n <= 5:
            print("Not Weird")
    elif n%2 == 0:
        if 6 <= n <= 20 :
            print("Weird")
    elif n%2 == 0:
        if n > 20:
             print("Not Weird")
    else:
        print("Weird")

它没有显示任何错误

EN

回答 2

Stack Overflow用户

发布于 2019-07-06 15:35:50

您没有正确使用if。看看这个,

代码语言:javascript
复制
if __name__ == '__main__':
    n = int(input().strip())
    if n%2 == 0 :
        if 2 <= n and n <= 5:
            print("Not Weird")

        elif 6 <= n and n <= 20 :
            print("Weird")
        elif n > 20:
             print("Not Weird")
    else:
        print("Weird")

您的代码中有什么错误?

ANS:

代码语言:javascript
复制
if n%2 == 0: 
    some condition
elif n%2 ==0:
    some condition

您的ifelif条件是相同的。因此,它从不执行elif条件。

因此,在你的情况下,当n=6时,它进入第一个if条件。因为在第一个if条件中没有任何else语句。它不会像预期的那样print任何东西。

票数 0
EN

Stack Overflow用户

发布于 2019-07-06 15:38:12

尝试以下操作:

代码语言:javascript
复制
if __name__ == '__main__':
    n = int(input().strip())
    if n%2 == 0 :
        if 2 <= n <= 5:
            print("Not Weird")
        elif 6 <= n <= 20 :
            print("Weird")
        elif n > 20:
             print("Not Weird")
    else:
        print("Weird")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56912108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档