我坚持如何将用户输入的年,月,日和小时转换为Julian时间。
如果我在这样的时间编码,这是有效的:
from __future__ import print_function, division
from PyAstronomy import pyasl
import datetime
# Convert calendar date to JD
dt = datetime.datetime(2017, 5, 23, 10)
print("Input date: ", dt)
print("Corresponding Julian date: ", pyasl.jdcnv(dt))
print("Corresponding reduced Julian date: ", pyasl.juldate(dt))
print()
但是当我尝试像这样的用户输入时
from __future__ import print_function, division
from PyAstronomy import pyasl
import datetime
# Convert calendar date to JD
year = int(input('Enter a year'))
month = int(input('Enter a month'))
day = int(input('Enter a day'))
hour = int(input('Enter hour'))
dt = datetime.date(year, month, day, hour)
print("Input date: ", dt)
print("Corresponding Julian date: ", pyasl.jdcnv(dt))
print("Corresponding reduced Julian date: ", pyasl.juldate(dt))
print()
我收到错误
TypeError Traceback (most recent call
last)
<ipython-input-4-2b1701814572> in <module>()
11 day = int(input('Enter a day'))
12 hour = int(input('Enter hour'))
---> 13 dt = datetime.date(year, month, day, hour)
14 print("Input date: ", dt)
15 print("Corresponding Julian date: ", pyasl.jdcnv(dt))
TypeError:函数最多需要3个参数(给定4个)
答案 0 :(得分:1)
你在第二个例子中写错了代码:
dt = datetime.date(year, month, day, hour)
正确的是:
dt = datetime.datetime(year, month, day, hour)