尝试打印“for n in variable”Python时获取<function main.<locals>.nPrint at 0x02AE0030>

2024-09-26 22:50:50 发布

您现在位置:Python中文网/ 问答频道 /正文

def main():
    import time
    import datetime
    import random


    def nPrint():
        for n in range(1,x):
            print(n)

    def iRan():
        for i in range(0,x):
            xRan = print(nPrint, datetime.datetime.now().strftime("%H:%M:%S"))
            xRan
            time.sleep(1)

    x = int(input('How many times?'))
    iRan()
    xInp = input('Again?(y/n)')

    if xInp == 'y':
        main()
    else:
        exit()

main()

我对python很陌生,有人能解释一下为什么这个代码不能从1到n打印吗? 每次得到的输出:<function main.<locals>.nPrint at 0x02AE0030> 19:05:56


Tags: inimportforinputdatetimetimemaindef
2条回答

您的程序有两个问题: 1.nPrint丢失()。 2.即使输入()也只会打印0到某个范围的数字(取决于输入),然后输出时间

因此,我建议您采取以下措施:

删除nPrint()并使程序打印变量“i”:

def main(): 导入时间 导入日期时间 随机导入

def iRan():
    for i in range(0,x):
        xRan = print(i, datetime.datetime.now().strftime("%H:%M:%S"))
        xRan
        time.sleep(1)

x = int(input('How many times?'))
iRan()
xInp = input('Again?(y/n)')

if xInp == 'y':
    main()
else:
    exit()

主()

看这一行:

xRan = print(nPrint, datetime.datetime.now().strftime("%H:%M:%S"))

这里您尝试打印nPrint,而nPrint是一个函数,您应该添加()来调用它。另外请注意,此函数本身能够打印数字,因此无需调用print(nPrint()),因为此函数返回None,因此打印将毫无用处:

nPrint()
print(datetime.datetime.now().strftime("%H:%M:%S"))

注意,不需要将print()结果保存到xRan变量

相关问题 更多 >

    热门问题