Уведомления

Группа в Telegram: @pythonsu

#1 Март 24, 2014 12:20:27

Big_Man
Зарегистрирован: 2014-03-24
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите! Пытаюсь освоить пайтон по Лутцу...

import shelve
fieldnames=('name', 'age', 'job', 'pay')
maxfield=max(len(f) for f in fieldnames)
db=shelve.open('class-shelve')
while True:
	key=input('\nKey?=> ')	# ключ или пустая строка, возбуждает исключение
				#при вводе EOF
	if not key: break
		try:
			record=db[key]# извлечь запись по ключу и вывести
		except:
			print('No such key "%S"!' % key)
		else:
			for field in fieldnames:
				print(field.ljust(maxfield), '=>', getattr(record, field))

Выводит сообщение: unexpected indent и подкрашивает строку try: …
Если внести изменения и записать вот так:
    import shelve
    fieldnames=('name', 'age', 'job', 'pay')
    maxfield=max(len(f) for f in fieldnames)
    db=shelve.open('class-shelve')
    while True:
	    key=input('\nKey?=> ')	# ключ или пустая строка, возбуждает исключение
				#при вводе EOF
	    if not key: break
	    try:
		    record=db[key]# извлечь запись по ключу и вывести
	    except:
		    print('No such key "%S"!' % key)
	    else:
		for field in fieldnames:
			print(field.ljust(maxfield), '=>', getattr(record, field))

То все прекрасно работает ровно до того пока не введен несуществующий ключ:

Traceback (most recent call last):
  File "C:\Python33\peopleinteract_query.py", line 13, in <module>
    print('No such key "%S"!' % key)
ValueError: unsupported format character 'S' (0x53) at index 14

пробовал менять символ S на $ менял версии самого пайтона не помогает… Подскажите пожайлуста в чем ошибка!

Отредактировано FishHook (Март 24, 2014 12:30:14)

Прикреплённый файлы:
attachment peopleinteract_query.py (539 байт)

Офлайн

#2 Март 24, 2014 12:32:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите! Пытаюсь освоить пайтон по Лутцу...

if not key: break

Не надо так делать
Делай вот так и будет все как у Лутца
if not key: 
    break



Офлайн

#3 Март 24, 2014 12:32:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите! Пытаюсь освоить пайтон по Лутцу...

Big_Man
ValueError: unsupported format character ‘S’ (0x53) at index 14
Блин, ну маленькая же s должна быть



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version