#python #tkinter
Вопрос:
я бы хотел, чтобы он печатал все планеты в классе, как это происходит, когда я печатаю его, но он печатает только последнюю, я попробовал несколько вещей, но ни одна из них не сработала, я бы хотел, чтобы он печатал каждую планету под другой
def infomation(day_count, planets):
Day.config(text=day_count)
for planet in planets:
Infomation.config(text='{:<8} posision (m) x ={:6.2f} y ={:6.2f} velocity (m/s) x ={:9.2f} y = {:9.2f} '.format(
planet.planet_name, planet.pos_x/AU, planet.pos_y/AU, planet.velocity_x, planet.velocity_y))
Ответ №1:
Используйте список для хранения отформатированной строки для каждой планеты, а затем соедините эти строки и отобразите объединенную строку в Infomation
:
def infomation(day_count, planets):
Day.config(text=day_count)
txt = []
for planet in planets:
txt.append('{:<8} posision (m) x ={:6.2f} y ={:6.2f} velocity (m/s) x ={:9.2f} y = {:9.2f} '.format(
planet.planet_name, planet.pos_x/AU, planet.pos_y/AU, planet.velocity_x, planet.velocity_y))
Infomation.config(text='n'.join(txt))
Комментарии:
1. Я бы сказал, что для такой довольно сложной строки, как эта, использование
f strings
было бы намного лучшим подходом