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
答案 0 :(得分:0)
看这行:
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 :(得分:0)
程序有两个问题: 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()