Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 9, 2009 11:10:45

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

такой вопрос. можно ли сделать так чтобы если ты запускаешь фаил .ру чтобы он сразу не закрывался если там ошибка, а показывал ее. может быть ,конечно, я прошу не возможного. О_о



Отредактировано (Авг. 9, 2009 11:11:29)

Офлайн

#2 Авг. 9, 2009 11:59:57

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

я написал вот это в консоли все работает а в файле нет. почему?

import pickle
file = open('state.txt', 'r')
names = pickle.load(file)
numbers = pickle.load(file)
file.close()
while(1):
n =raw_input('enter the name: ')
i = 0
for i in range(len(names)):
if n==names[i]:
print numbers[i]
break
elif i == len(names) - 1:
print 'Oops. Cant finded this name.'
break
i+=1
break



Офлайн

#3 Авг. 9, 2009 12:14:25

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

breeve
я написал вот это в консоли все работает а в файле нет. почему?
А как ты запускаешь файл?



Офлайн

#4 Авг. 9, 2009 12:47:15

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

pento
breeve
я написал вот это в консоли все работает а в файле нет. почему?
А как ты запускаешь файл?
у меня стоит прога называется notepad++ я там пишу код. сохраняю в формате ру. и далее просто открываю созданный фаил.



Офлайн

#5 Авг. 9, 2009 23:39:03

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

напиши в конце программы raw_input('end') и окно консоли не будет исчезать



Офлайн

#6 Авг. 10, 2009 09:42:56

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

dimabest
напиши в конце программы raw_input('end') и окно консоли не будет исчезать
вы наверное не понимаете в чем проблема. я написал какую-нибудь прогу. записал ее в отдельный фаил.
эта прога с ошибкой. и если я этот фаил запускаю то он не открывается. а точнее он открывается показывает ошибку и резко закрывает. вопрос. можно ли сделать так чтобы он показывал ошибку при открытии файла с ошибкой.



Офлайн

#7 Авг. 10, 2009 11:26:24

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

при открытии или при запуске?
если при запуске то запускай скрипт через cmd или через FAR таким образом:
python myscript.py
тогда stdout и stderr будет выводится в ту консоль из которой ты его запускаешь.
а вообще стандартный IDLE мне очень даже нравится…

можно еще так сделать:

try:
import pickle
file = open('state.txt', 'r')
names = pickle.load(file)
numbers = pickle.load(file)
file.close()
while(1):
n =raw_input('enter the name: ')
i = 0
for i in range(len(names)):
if n==names[i]:
print numbers[i]
break
elif i == len(names) - 1:
print 'Oops. Cant finded this name.'
break
i+=1
break
except Exception, info:
print info
raw_input()



Отредактировано (Авг. 10, 2009 11:32:16)

Офлайн

#8 Авг. 10, 2009 13:37:36

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

goblin_maks
при открытии или при запуске?
если при запуске то запускай скрипт через cmd или через FAR таким образом:
python myscript.py
тогда stdout и stderr будет выводится в ту консоль из которой ты его запускаешь.
а вообще стандартный IDLE мне очень даже нравится…

можно еще так сделать:
try:
import pickle
file = open('state.txt', 'r')
names = pickle.load(file)
numbers = pickle.load(file)
file.close()
while(1):
n =raw_input('enter the name: ')
i = 0
for i in range(len(names)):
if n==names[i]:
print numbers[i]
break
elif i == len(names) - 1:
print 'Oops. Cant finded this name.'
break
i+=1
break
except Exception, info:
print info
raw_input()
попробовал так вставить except не вышло. а насчет cmd все получилось спасибо!



Офлайн

#9 Авг. 10, 2009 13:43:34

breeve
От:
Зарегистрирован: 2009-08-09
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

Теперь выдает ошибку:

Cmd
D:\Python25>Python tel_kniga.py
File “tel_kniga.py”, line 14
break
SyntaxError: ‘break’ outside loop
на 14 строке нету брейка.
вот код:
import pickle
def addNew():
names = ['kolya','valera','petya']
numbers = ['123','456','789']
while(1):
temp = raw_input("Enter the new name.\n")
names.append(temp)
temp = raw_input("Enter the number.\n")
numbers.append(temp)
file = open('state.txt', 'w')
pickle.dump(names, file)
pickle.dump(numbers, file)
file.close()

def findByName():
file = open('state.txt', 'r')
names = pickle.load(file)
numbers = pickle.load(file)
file.close()
while(1):
n = raw_input('enter the name: ')
i = 0
for i in range(len(names)):
if n == names[i]:
print numbers[i]
break
elif i == len(names) - 1:
print 'Oops. Cant finded this name.'
break
i+=1
print "This is a telephone book.\nPress 1 to find by name.\n"
print "Press 2 to add new contacts.\nPress 3 to exit."
while(1):
choice = raw_input()
if choice == '1':
findByName()
elif choice == '2':
addNew()
elif choice == '3':
exit()
else:
print "error enter."

raw_input("Press any key to exit")



Офлайн

#10 Авг. 10, 2009 23:19:27

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

написание кода в файле.

настрой свой ноутпад++ корректно (в настройках поставь заменять таб на 4 пробела), поставь корректно отступы и все будет работать.
ты пишешь в винде..запускай скрипты из стандартного IDLE через F5…тогда ошибки будут вываливатся в т.н. интерактивную консоль..и не надо будет переключаться туда сюда…IDLE люди писали не по приколу…а для того что бы удобней было работать..


import pickle
def addNew():
names = ['kolya','valera','petya']
numbers = ['123','456','789']

temp = raw_input("Enter the new name.\n")
names.append(temp)
temp = raw_input("Enter the number.\n")
numbers.append(temp)
file = open('state.txt', 'w')
pickle.dump(names, file)
pickle.dump(numbers, file)
file.close()

def findByName():
file = open('state.txt', 'r')
names = pickle.load(file)
numbers = pickle.load(file)
file.close()
while(1):
n = raw_input('enter the name: ')
i = 0
for i in range(len(names)):
if n == names[i]:
print numbers[i]
break
elif i == len(names) - 1:
print 'Oops. Cant finded this name.'
break
i+=1
print "This is a telephone book.\nPress 1 to find by name.\n"
print "Press 2 to add new contacts.\nPress 3 to exit."
while(1):
choice = raw_input()
if choice == '1':
findByName()
elif choice == '2':
addNew()
elif choice == '3':
exit()
else:
print "error enter."


raw_input("Press any key to exit")



Отредактировано (Авг. 10, 2009 23:31:47)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version