Python 我必须调用一个函数并获得输出

Python 我必须调用一个函数并获得输出,python,Python,我有一个功能: def divisible(num): if num%9 == 0: print("true") else: print("false") 通过使用这个函数,我必须得到可被1到100之间的9个数字整除的输出。我怎么能得到这个?我是python新手,谁能帮我解决这个问题呢 到目前为止,我试图这样称呼: for i in range(10): j = divisible(i) if j == 'true

我有一个功能:

def divisible(num):
    if num%9 == 0:
        print("true")
    else:
        print("false")
通过使用这个函数,我必须得到可被1到100之间的9个数字整除的输出。我怎么能得到这个?我是python新手,谁能帮我解决这个问题呢

到目前为止,我试图这样称呼:

for i in range(10):
        j = divisible(i)
        if j == 'true':
            print(i)

但它没有给我确切的输出。我必须得到像
(9,18,36,45等)

您当前的打印
true
false
作为您函数的值。您需要
返回它们

def divisible(num):
    if num % 9 == 0:
        return 'true'
    else:
        return 'false

当前
true
false
打印为函数中的值。您需要
返回它们

def divisible(num):
    if num % 9 == 0:
        return 'true'
    else:
        return 'false
divisible()
函数不返回任何内容。将输出写入控制台(使用
print()
)与将结果返回给调用者不同

由于函数不返回值,Python将返回值设置为
None
None==“true”
永远不会为true,因此循环不会打印任何内容

返回布尔值,而不是打印;
True
False

def divisible(num):
    if num%9 == 0:
        return True
    else:
        return False
甚至,由于
=
生成布尔值:

def divisible(num):
    return num%9 == 0
当然,您仍然可以返回字符串,
return'true'
return'false'
,但是Python为此有特殊的对象,许多Python代码可以直接使用布尔值

现在,您的函数将向调用者返回您可以测试的内容:

for i in range(10):
    j = divisible(i)
    if j:
        print(i)
请注意,
j
要么是
True
要么是
False
,如果直接进行
测试,您可以在
中使用它。

您的
divisible()
函数不会返回任何内容。将输出写入控制台(使用
print()
)与将结果返回给调用者不同

由于函数不返回值,Python将返回值设置为
None
None==“true”
永远不会为true,因此循环不会打印任何内容

返回布尔值,而不是打印;
True
False

def divisible(num):
    if num%9 == 0:
        return True
    else:
        return False
甚至,由于
=
生成布尔值:

def divisible(num):
    return num%9 == 0
当然,您仍然可以返回字符串,
return'true'
return'false'
,但是Python为此有特殊的对象,许多Python代码可以直接使用布尔值

现在,您的函数将向调用者返回您可以测试的内容:

for i in range(10):
    j = divisible(i)
    if j:
        print(i)

请注意,
j
True
False
,您可以直接在
测试中使用它。

您还可以通过
过滤器获得数字列表:

lst = list(filter(lambda x: x%9, range(0,100)))
print(set(range(100)) - set(lst)
# {0, 99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

final_list = list(set(range(100)) - set(lst)).sort()  # to sort it

您还可以通过
过滤器
获取数字列表:

lst = list(filter(lambda x: x%9, range(0,100)))
print(set(range(100)) - set(lst)
# {0, 99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

final_list = list(set(range(100)) - set(lst)).sort()  # to sort it

您应该返回而不是打印

def divisible(num):
    if num%9 == 0:
        return "true"
    else:
        return "false"

for i in range(100):
    j = divisible(i)
    if j == 'true':
        print(i)

您应该返回而不是打印

def divisible(num):
    if num%9 == 0:
        return "true"
    else:
        return "false"

for i in range(100):
    j = divisible(i)
    if j == 'true':
        print(i)
使用:

这将使你:

[9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99]
使用:

这将使你:

[9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99]

您需要在第一个函数中返回true或false?可除函数应返回true或false。您的循环应该运行10次以上打印(“true”)并不意味着返回true:)您需要在第一个函数中返回true或false?可除函数应该返回true或false。你的循环应该运行超过10print(“true”)并不意味着返回true:)更短、更“Pythonic”的方式…
[范围内的项目对应(100)如果(项目%9==0)]
你知道,这不是一场炫耀你如何解决问题的竞赛。是的,有很多方法可以用聪明的Python代码来实现这一点,但这篇文章根本没有解决这个问题。OP说“我必须像(9,18,36,45等)”,所以我的解决方案会给他一个更短、更“Pythonic”的列表…
[如果(项目%9==0)范围内的项目对应项目(100)]
你知道,这不是一场炫耀你如何解决问题的比赛。是的,有很多方法可以用聪明的Python代码来实现这一点,但是这篇文章根本没有解决这个问题。OP说“我必须像(9,18,36,45等)”,所以我的解决方案会给他那个列表非常感谢,这回答了我的问题非常感谢,这回答了我的问题