Найти - Пользователи
Полная версия: Помогите! Пытаюсь освоить пайтон по Лутцу...
Начало » Python для новичков » Помогите! Пытаюсь освоить пайтон по Лутцу...
1
Big_Man
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
if not key: break

Не надо так делать
Делай вот так и будет все как у Лутца
if not key: 
    break
FishHook
Big_Man
ValueError: unsupported format character ‘S’ (0x53) at index 14
Блин, ну маленькая же s должна быть
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB