Как выровнять надписи? Питон

#python #label

Вопрос:

Итак, у меня есть эта программа, в которой я должен получать определенную информацию из файла, а затем я должен разделить ее на группы, как в таблице.

 Like this:
Name   Sales  #Items
Randy  85     5
Charli 100    10
 

Я знаю, как это напечатать, я бы обычно так делал:

 print ("{:<10} {:<10} {:<10}".format('Name', 'Sales', '#Items'))
for name, sales, item in list:
    name, age, course = value
    print ("{:<10} {:<10} {:<10}".format(name, sales, item))
 

Но это не работает с ярлыками, и результат не выровнен. Есть какие-нибудь решения?

Комментарии:

1. Что такое переменная списка. Кроме того, вы хотели бы изменить это имя, потому что это помешало бы вам преобразовать что-либо в список. Никогда не используйте встроенное ключевое слово в качестве переменной

2. Список-это список кортежей,поэтому [(Рэнди,85, 5), (Чарли,100, 10)]. Имя lst в списке программ, которые я только что написал, чтобы было проще.

3. Как упоминал @Sujay, вы не должны использовать ключевые слова в качестве переменной. Кроме того, я думаю, что ваш код должен работать нормально и правильно выровнен.

4. Я думаю, вам нужно объяснить, какого рода Label . Похоже, это может быть графический интерфейс. Если да, то какой именно? И было бы неплохо посмотреть, какой код работает не так, как вы ожидаете.

Ответ №1:

Вы никогда не должны использовать ключевые слова в качестве переменной. Кроме того, переменная, которая должна быть назначена, всегда должна быть слева.

 lists=[('Randy',85,5),('Charli',100,10)]
print ("{:<10} {:<10} {:<10}".format('Name', 'Sales', '#Items'))
for name, sales, item in lists:
    value=name, sales,item
    print ("{:<10} {:<10} {:<10}".format(name, sales, item))
 

Выход

 Name       Sales      #Items    
Randy      85         5         
Charli     100        10     
 

Комментарии:

1. Я знаю и понимаю, но мой вопрос в следующем: как мне получить тот же вывод в метке?

2. Что вы имеете в виду под тем же выводом @AlexJB

3. Вы хотите, чтобы у каждого студента был заголовок

4. Нет. Вы знаете, как я использовал цикл for, чтобы выровнять их с print()? Я хотел бы знать, есть ли способ сделать то же самое с лейблом. Потому что с меткой, когда они отображаются в Tkinter, они не выровнены.

5. Если вы используете сетку, то липкость хороша для вас. Если вы используете место, то x должен быть таким же, и для пакета вы можете просто упаковать его в сторону