Python 在一行中使用3条if语句时,即使第三条语句为true,它也不会执行任何操作
我开始学习编程,我的第一语言是Python 我做了一个练习,需要根据输入的数字返回某个字符串。 如果多个条件为真,则必须连接字符串并在控制台中打印答案 代码如下: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 = ""
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语句。我的愚蠢疏忽。完全有道理!非常感谢。