Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 9, 2021 23:23:46

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

Хотелось бы узнать в чем ошибка в моем коде

Нуждаюсь в помощи, подкорректируйте код и скажите какие есть стилистические, или практические ошибки которых стоит избегать.
Создать функцию, в которой повторяющиеся символы в строке будут выводиться один раз. Пример:

 bez_povtorov_symbols_ebat('AAABBBCCC') >>> ['A','B','C']
bez_povtorov_symbols_ebat('AAAaaaAAA') >>> ['A','a','A']
 def bez_povtorov_symbols_ebat(stroka):
    result = []
    for index_of_symbol in range(len(stroka)):
        if index_of_symbol == 0:
            continue
        else:
            if stroka[index_of_symbol] ==stroka[index_of_symbol-1]:
                continue
            else:
                result.append(stroka[index_of_symbol-1])
    return(result)
bez_povtorov_symbols_ebat('aaaazzzzvvv')

Отредактировано Funee_monkee (Авг. 10, 2021 01:18:37)

Прикреплённый файлы:
attachment изображение_2021-08-09_232234.png (31,0 KБ)

Офлайн

#2 Авг. 10, 2021 00:36:30

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1308
Репутация: +  112  -
Профиль   Отправить e-mail  

Хотелось бы узнать в чем ошибка в моем коде

Funee_monkee
Нуждаюсь в помощи, подкорректируйте код и скажите какие есть стилистические, или практические ошибки которых стоит избегать.
посмотри как на форуме выкладывают свой код,это сверху в редакторе сообщений рядом со смайлом теги,
так эффективнее.
Как можно на форуме при регистрации сделать тест на обрамление кода в теги???Просто тупо последним шагом регистрации если сделал
 print("hello world")
то регистрация закончена,нет снова инструкция как обрамлять код

Офлайн

#3 Авг. 10, 2021 01:09:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Хотелось бы узнать в чем ошибка в моем коде

Funee_monkee
Ниже прикрепил скрин моего кода, при выполнении, массив result всегда пуст
Он, скорее всего, не пуст, а просто не выводится на экран, так как print() нет для результата. Может быть всякое, конечно, так что запустить твой код и проверить, что там происходит на самом деле, мы не можем, так как ты запостил картинку. Переписывать твой код с картинки в исходник просто лень. Тут есть теги code, в них и надо писать, потому что это можно просто скопировать и запустить.
[code python] 
тут код типа
[/code]

Funee_monkee
Нуждаюсь в помощи, подкорректируйте код и скажите какие есть стилистические, или практические ошибки которых стоит избегать.
Надо проверить пустой список, надо проверить список с одним элементом, надо проверить последний элемент. И естественно, не надо проверять на каждом шаге цикла, является ли этот элемент первым, так как информация эта становится известна на первом шаге цикла и остаётся известной до конца. Если там миллион элементов будет, то он будет миллион раз проверять то, что и так известно. Поэтому всё это надо проверить до входа в цикл.

Название функции выбрано неправильно. Если у тебя есть только вызов функции и ты не видишь содержимого функции, потому что оно где-то вообще в другом файле находится, то по названию непонятно, что делает функция. Ну, то есть если эту функцию будет использовать вообще другой человек, он даже не поймёт, что она делает, потому что он не знает, как ты её писал и когда. Поэтому ты должен составить название функции так, чтобы оно отвечало на вопрос “что нужно сделать?”. Прямо так задаёшь вопрос безымянной функции “что нужно сделать?” - и она отвечает “нужно сократить повторы символов в строке до одного символа”. Таким образом, ты это всё длинное название фукнции укорачиваешь до “сократить повторы символов”. И так у тебя название у функции становится squeeze_char_repeats(), например.

What should I do?
I should squeeze characters' repeats.


tags: name function imperative



Отредактировано py.user.next (Авг. 10, 2021 01:25:57)

Офлайн

#4 Авг. 10, 2021 12:54:04

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Хотелось бы узнать в чем ошибка в моем коде

 def bez_povtorov_symbols_ebat(stroka):
    result = [stroka[0],]
    for char in stroka:
        if char == result[-1]:
            continue
        else:
            result.append(char)
    return result
print(bez_povtorov_symbols_ebat('aaaazzzzvvv'))



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Авг. 11, 2021 14:41:41

OlegHemp
Зарегистрирован: 2021-08-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Хотелось бы узнать в чем ошибка в моем коде

 def double_sumbol(s: str):
    """
    Ищет в переданной строке двойники символов. Возвращает список с символами, которые встречались в строке.
    :param s: str
    :return: List[str]
    """
    tmp = ''
    arr = []
    for i in s:
        if tmp != i:
            arr.append(i)
            tmp = i
    return arr
a = 'AAABBBCCC'
b = 'AAAaaaAAA'
print(double_sumbol(a))
print(double_sumbol(b))

 >>> ['A', 'B', 'C']
>>> ['A', 'a', 'A']

Отредактировано OlegHemp (Авг. 11, 2021 14:43:29)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version