首页 > 解决方案 > 我无法弄清楚为什么它在代码行之后不打印( if 6 <= n <= 20 )

问题描述

我正在运行这段代码。当我将输入设置为 6 或更大时,它会打印任何内容并且也不会显示任何错误。如果 6 <= n <= 20 之后它不会打印任何东西

我尝试重写代码或错误,并多次检查它。

#!/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")

它没有显示任何错误

标签: python-3.xif-statement

解决方案


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

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")

你的代码有什么错误?

回答:

if n%2 == 0: 
    some condition
elif n%2 ==0:
    some condition

你的两者ifelif条件都是一样的。所以,它永远不会执行elif条件。

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


推荐阅读