Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скрипт для поиска 
:(
    Опции темы
Nerazumovskiy
Дата 16.11.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.11.2009
Где: Киев

Репутация: нет
Всего: нет



Вот моя первая программа на Python, и сразуже натыкаюсь на проблему.
Код

def main():
    x =  str(input("Hello pliz input \n"))
    print(x)
    while True:
        y = str(input("find :"))
        try:
            i=x.index(y)
        except ValueError as err:
                print(err)
        else:
            print("index =",i)
            
if __name__ == '__main__':
    main()

Оно работает не так как хотелось, а хотелось чтобы оно возвращало индекск первого елемента вхождения в строку искомой фразы
Я так понял что проблема заключается в том что у  переменной "y" есть ещо один(последний символ) который участвует в поиске (Это я по аналогии с С). 

1)Можете подсказать как правильно написать этот код
2)Я так понял что различие между index() и find() заключаеться только в разной реакции на неудачный поиск, так ли это?
PM MAIL ICQ   Вверх
powerfox
Дата 16.11.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Цитата(Nerazumovskiy @  16.11.2009,  17:51 Найти цитируемый пост)
input("Hello pliz input \n")


Цитата

input([prompt])
    Equivalent to eval(raw_input(prompt)).


Судя по всему, вам нужно raw_input(promt):
Код

def main():    text =  raw_input(">>")
    while True:
        pattern = raw_input(">>>find:")
        try:
            i = text.index(pattern)
        except ValueError as err:
            print(err)
        else:
            print("index: ",i)
            
if __name__ == '__main__':
    main()


Код

>>Python really rocks!                                                                                                                                                              
>>>find:really                                                                                                                                                                      
('index: ', 7)                                                                                                                                                                      
>>>find:sucks                                                                                                                                                                       
substring not found                                                                                                                                                                 
>>>find:Python                                                                                                                                                                      
('index: ', 0)



Цитата(Nerazumovskiy @  16.11.2009,  17:51 Найти цитируемый пост)
2)Я так понял что различие между index() и find() заключаеться только в разной реакции на неудачный поиск, так ли это? 

Да. 

Это сообщение отредактировал(а) powerfox - 16.11.2009, 17:35


--------------------
user posted image
PM WWW   Вверх
Nerazumovskiy
Дата 16.11.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.11.2009
Где: Киев

Репутация: нет
Всего: нет



Спасибо, вроде всё законно, но почемуто мне говорит что такой функции нету.
Python 3.1. 

Они чтото придумали в замен?
PM MAIL ICQ   Вверх
powerfox
Дата 16.11.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Цитата(Nerazumovskiy @  16.11.2009,  18:55 Найти цитируемый пост)
Они чтото придумали в замен? 

В Python 3 raw_input переименовали в input.

А что не работает в вашем коде (у меня Python3 не стоит)? Выглядит всё нормально (только input и так возвращает строку, поэтому не нужно оборачивать в str() ).

Цитата(Nerazumovskiy @  16.11.2009,  17:51 Найти цитируемый пост)
Я так понял что проблема заключается в том что у  переменной "y" есть ещо один(последний символ) который участвует в поиске (Это я по аналогии с С). 

input() возвращает строку без '\n' в коце, в остальном — нормальная строка (и точно не Си-строка).


--------------------
user posted image
PM WWW   Вверх
Nerazumovskiy
Дата 16.11.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.11.2009
Где: Киев

Репутация: нет
Всего: нет



Забавно, проверил на PyScripter работает, на Eclips+ PyDev тотже код неработает.
Притом что питон у меня только один smile

У меня есть подозрение что в Eclipse чтото с консольным вводом намудрили, может ктото проверить?

_______
Суто в образовательных целях: как узнать длинну строки?

Это сообщение отредактировал(а) Nerazumovskiy - 16.11.2009, 18:37
PM MAIL ICQ   Вверх
powerfox
Дата 16.11.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Цитата(Nerazumovskiy @  16.11.2009,  19:34 Найти цитируемый пост)
Суто в образовательных целях: как узнать длинну строки?

len(s)


--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1864 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.