Уведомления

Группа в Telegram: @pythonsu

#1 Март 28, 2010 21:13:07

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

КОД

срабатывает
она выходит из 3-го цикла, но при этом ещё есть 1-ый и 2-й цикл, тут тебе надо return или exit(), для ретурна надо все в ф-ию завернуть
Хух,теперь без ошибки:
import os
simb='надо найти все эти символы. Они находятся, по завершению уже не выдаёт ошибку! IndexError!'
l=[]
n=0
s=''
nomsimb=-1
for x,y,z in os.walk('d:\\'):
for w in z:
for q in w:
nomsimb+=1
if q is simb[n]:
l.append(x)
l.append(w)
l.append(q)
print '\\'.join(l),nomsimb
s+=q
n+=1
if n==len(simb):break
l=[]
nomsimb=-1
if n==len(simb):break
if n==len(simb):break
print s
Благодарочка!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Благодарен всем!
и вообще зачем так извращаться, это не С++, питон - язык высокого уровня, эту задачу можно сделать в 2 строки.
Если можно,как можно упростить этот код,кроме set? Где я усложняю КОД?



Отредактировано (Март 28, 2010 21:20:16)

Офлайн

#2 Март 28, 2010 21:23:29

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

КОД

python4ik
Где я усложняю КОД?
это не усложнение, а загромождение

например зачем писать:
l=[]
...
l.append(x)
l.append(w)
l.append(q)
print '\\'.join(l),nomsimb
...
l=[]
когда можно просто
print '\\'.join( [x,w,q] ),nomsimb
вместо 3-х “if n==len(simb):break”, завернуть в ф-ию def main(): … return

некоторые циклы можно заменить спец. ф-ми

рабочий пример я дал в 4-м посте

Офлайн

#3 Март 29, 2010 01:26:15

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

КОД

python4ik
Хух,теперь без ошибки:
Вот мой тестовый пример.
Ищем символы ‘abc’.
Имеем файлы:
abc1.txt abc2.txt abc3.txt abc.txt
Ваш последний вариант выдает:
.\abc.txt\a 0
.\abc.txt\b 1
.\abc.txt\c 2
abc
Я ожидал, что ваш КОД найдет в каждом файле все три буквы.



Отредактировано (Март 29, 2010 01:27:11)

Офлайн

#4 Март 29, 2010 03:03:24

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

КОД

Хух,теперь без ошибки
Я не имею ввиду,что всё,я выучил Питон! То я написал,что нашёл более менее подходящее решение! Если есть варианты,как упростить КОД,я только рад!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Непротив получить подсказку!Немного не понятно,как завернуть в функцию if n==len(simb):break.Функции я конечно знаю,но как-где вставить?



Отредактировано (Март 30, 2010 23:02:53)

Офлайн

#5 Март 29, 2010 10:20:06

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

КОД

python4ik, программирование это не зубрежка, когда вы наконец это поймете?
Не нужно зубрить, нужно прежде всего понимать!



Офлайн

#6 Март 29, 2010 11:36:41

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

КОД

может быть подойдет модуль glob?



Офлайн

#7 Март 30, 2010 00:40:41

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

КОД

igor.kaist
python4ik, программирование это не зубрежка, когда вы наконец это поймете?
Не нужно зубрить, нужно прежде всего понимать!
+1
python4ik
всё дело в том что если сформируется принцип , то описание это только общие рекомендации , а следовать им или нет уже по месту надо думать…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version