Найти - Пользователи
Полная версия: написание кода в файле.
Начало » Python для новичков » написание кода в файле.
1
breeve
такой вопрос. можно ли сделать так чтобы если ты запускаешь фаил .ру чтобы он сразу не закрывался если там ошибка, а показывал ее. может быть ,конечно, я прошу не возможного. О_о
breeve
я написал вот это в консоли все работает а в файле нет. почему?
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
pento
breeve
я написал вот это в консоли все работает а в файле нет. почему?
А как ты запускаешь файл?
breeve
pento
breeve
я написал вот это в консоли все работает а в файле нет. почему?
А как ты запускаешь файл?
у меня стоит прога называется notepad++ я там пишу код. сохраняю в формате ру. и далее просто открываю созданный фаил.
dimabest
напиши в конце программы raw_input('end') и окно консоли не будет исчезать
breeve
dimabest
напиши в конце программы raw_input('end') и окно консоли не будет исчезать
вы наверное не понимаете в чем проблема. я написал какую-нибудь прогу. записал ее в отдельный фаил.
эта прога с ошибкой. и если я этот фаил запускаю то он не открывается. а точнее он открывается показывает ошибку и резко закрывает. вопрос. можно ли сделать так чтобы он показывал ошибку при открытии файла с ошибкой.
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()
breeve
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 все получилось спасибо!
breeve
Теперь выдает ошибку:
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")
goblin_maks
настрой свой ноутпад++ корректно (в настройках поставь заменять таб на 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")
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