Найти - Пользователи
Полная версия: Хотелось бы узнать в чем ошибка в моем коде
Начало » Центр помощи » Хотелось бы узнать в чем ошибка в моем коде
1
Funee_monkee
Нуждаюсь в помощи, подкорректируйте код и скажите какие есть стилистические, или практические ошибки которых стоит избегать.
Создать функцию, в которой повторяющиеся символы в строке будут выводиться один раз. Пример:
 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')
xam1816
Funee_monkee
Нуждаюсь в помощи, подкорректируйте код и скажите какие есть стилистические, или практические ошибки которых стоит избегать.
посмотри как на форуме выкладывают свой код,это сверху в редакторе сообщений рядом со смайлом теги,
так эффективнее.
Как можно на форуме при регистрации сделать тест на обрамление кода в теги???Просто тупо последним шагом регистрации если сделал
 print("hello world")
то регистрация закончена,нет снова инструкция как обрамлять код
py.user.next
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
PEHDOM
 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'))
OlegHemp
 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']
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