2013-08-17 2 views
-1

У меня есть много проблем, пытаясь понять это.Форматирование телефонной книги

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

В любом случае, вот код:

elif menu==2: 
    print("NAME=================PHONE NUMBER===") 
    for x in book.keys(): 
     s=1 
     p=s+1 
     print(str(p)+")",x,"\t\t",book[x]) 
     s=p 

Кроме того, если есть что-нибудь еще, что я делаю, что может быть более эффективным, пожалуйста, скажите мне, как я новичок в Python. И я могу дать вам больше кода, если это необходимо.

Редактировать

К сожалению, я не объяснить очень хорошо, выход я хочу что-то вроде:

NAME===================PHONE NUMBER 
John     0425111222 
Alexander    81238211 
Firstand Lastname  99938880 

Спасибо,

Leo

ответ

1

Вы можете сделать это так:

i = 1 
print('{0:2s} {1:15s} {2}'.format('#', 'Name', 'Number')) 
for name, number in book.items(): 
    print('{0:<2d} {1:15s} {2}'.format(i, name, number)) 
    i += 1 

Это просто и ясно.

Пример вывода:

# Name   Number 
1 Contact1  555 
2 Contact2  777 
+0

Похоже, у меня есть много, чтобы узнать ... Не могли бы вы объяснить, что фигурные скобки и функции формата в первом операторе печати сделать? (и второй) Кроме того, 'book.items():' должны быть элементами или это общая вещь. – FaceySmile

+0

Вы должны изучить форматирование вывода и словарь (методы, подобные элементам()), чтобы четко понимать этот код. –

Смежные вопросы