#python #tuples
#python #кортежи
Вопрос:
Здравствуйте, я работаю над программным обеспечением для астрологии, но у меня проблема
def solar_longitude(jd):
"""Solar longitude at given instant (julian day) jd"""
data = swe.calc_ut(jd, swe.SUN, flag = swe.FLG_SWIEPH)
return data[0] # in degrees
def lunar_longitude(jd):
"""Lunar longitude at given instant (julian day) jd"""
data = swe.calc_ut(jd, swe.MOON, flag = swe.FLG_SWIEPH)
return data[0] # in degrees
def lunar_phase(jd):
solar_long = solar_longitude(jd)
lunar_long = lunar_longitude(jd)
moon_phase = (lunar_long - solar_long) % 360
return moon_phase
print(lunar_phase(2455027.75138))
вывод—
moon_phase = (lunar_long - solar_long) % 360
TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple'
Пожалуйста, помогите с этой проблемой
Ответ №1:
Согласно документам calc_ut()
, возвращается «кортеж из 6 float и возвращаемых флагов», поэтому, когда вы берете data[0]
, вы все равно получаете кортеж. Вы, вероятно, хотите data[0][0]
вместо этого.