尝试在变量“ n中打印”时获取<function main。<locals> .nPrint at 0x02AE0030>

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

ayaya1234 回答:尝试在变量“ n中打印”时获取<function main。<locals> .nPrint at 0x02AE0030>

看这行:

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变量

,

程序有两个问题: 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()

main()

本文链接:https://www.f2er.com/3164528.html

大家都在问