Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一行中使用3条if语句时,即使第三条语句为true,它也不会执行任何操作_Python_If Statement - Fatal编程技术网

Python 在一行中使用3条if语句时,即使第三条语句为true,它也不会执行任何操作

Python 在一行中使用3条if语句时,即使第三条语句为true,它也不会执行任何操作,python,if-statement,Python,If Statement,我开始学习编程,我的第一语言是Python 我做了一个练习,需要根据输入的数字返回某个字符串。 如果多个条件为真,则必须连接字符串并在控制台中打印答案 代码如下: number = int(input("enter your number here: ")) def plingplangplong(number): strPling = "pling" strPlong = "plong" strPlang = "plang" strAnswer = ""

我开始学习编程,我的第一语言是Python

我做了一个练习,需要根据输入的数字返回某个字符串。 如果多个条件为真,则必须连接字符串并在控制台中打印答案

代码如下:

number = int(input("enter your number here: "))

def plingplangplong(number):
    strPling = "pling"
    strPlong = "plong"
    strPlang = "plang"
    strAnswer = ""

    if number % 3 == 0:
        strAnswer = strAnswer + strPling
    if number % 5 == 0:
        strAnswer = strAnswer + strPlong
    if number % 7 == 0:
        strAnswer = strAnswer + strPlang
    elif strAnswer:
        print(strAnswer)
    else:
        print(number)


plingplangplong(number)
若我输入一个可被
7
整除的数字,它在控制台上不会提供任何输出。为什么?

如果我输入
3
5
它会工作<代码>30和
60
按预期返回“plingplong”的工作


我需要更改什么?

只有当
数字
不能被7整除时,您的代码才是打印内容,因为所有
打印
都在
elif/else
块中:

if number % 7 == 0:
    strAnswer = strAnswer + strPlang
elif strAnswer:
    # we get here only when the first `if` condition is NOT true
    print(strAnswer)
else:
    # we get here only when the first `if` condition and the `elif` condition are NOT true
    print(number)
您应该这样更改它:

if number % 7 == 0:
    strAnswer = strAnswer + strPlang

if strAnswer:
    print(strAnswer)
else:
    print(number)
请尝试以下操作:

number = int(input("enter your number here: "))
def plingplangplong(number):

    strPling = "pling"
    strPlong = "plong"
    strPlang = "plang"
    strAnswer = ""

    if number % 3 == 0:
        strAnswer = strAnswer + strPling
    if number % 5 == 0:
        strAnswer = strAnswer + strPlong
    if number % 7 == 0:
        strAnswer = strAnswer + strPlang

    if strAnswer:
        print(strAnswer)
    else:
        print(number)


plingplangplong(number)

阅读有关声明的内容。代码中的'elif'和
else
语句引用了行
如果数字%7==0
,这意味着如果数字除以7,您将只生成字符串,而不会打印它。谢谢!我不知道为什么在第四个语句中使用elif语句。我的愚蠢疏忽。完全有道理!非常感谢。