пʼятниця, 24 жовтня 2014 р.

Чтоб кодить по курсу Алгоритмы в биоинформатике мне нужон язык программирования и выбор пал на Питон. Ибо Питон по мнению Хабра - это самое оно.
На кодекадеми допройду курс по Питону.. но мне уже нужна среда с интрепретатором под Винду, ибо линукс на ноуте у меня позорно пал, а переформатировать диск, переразбить разделы и переставить ОСы как положено - лень и .. лень.  И слабая вера в свои силы. И лень.
Забвываются все фичи по конструкциям языка очень быстро. Можно даже сказать - резко. Два дня не кодить - и с чистыми мозгами нужно глядеть в мануал (+ втом, что знаю, что там искать. т.е. улетучиваются детали образов  и форм - суть и понятия остаются навечно О_о это радует).

ЙФ-ция реверса произвольной строки моего производства на питоне:

def reverse(text):
    res = []
    last = len(text) - 1

    for i in range(0,len(text)):
     
        res.append(text[last])
        last -=1
    return "".join(res)

print reverse("REVERSE STRING!!! with spaces, digits 123 and special characters  !, @, or # ")

output: # ro ,@ ,!  sretcarahc laiceps dna 321 stigid ,secaps htiw !!!GNIRTS ESREVER
None

В самом питоне есть ф-ции для реверса строк : reversed or [::-1] (их недостаток - нельзя чтоб строка содержала пробелы, нельзя чтоб строка содержала спец символы)

Йф-ция вырезания гласных:

def anti_vowel(text):
#лузерский метод тыка - работает
    res = text
    res = res.replace("a", "")
    res = res.replace("e", "")
    res = res.replace("o", "")
    res = res.replace("i", "")
    res = res.replace("u", "")
    res = res.replace("A", "")
    res = res.replace("E", "")
    res = res.replace("O", "")
    res = res.replace("I", "")
    res = res.replace("U", "")
    return res

#метод, подсказанный в подсказке - работает
    for i in text:
        if i in "aeiouAEIOU":
            res = res.replace(i, "")
    return res    

#метод перебора эелементов строки и удаления по факту совпадения - не работает, ибо говрит, что у строки нет метода поп О_о переводить строку в лист?
'''   for i in text:
        if i == "a" or i == "e" or i == "i" or i == "o" or i == "u" or i == "A" or i == "E" or i == "I" or i == "O" or i == "U":
          res.pop(text.index(i))
    return "".join(res)
'''

print anti_vowel("Hello OLOLOLO ALALA ILILI ELELE ILILI ULULU")


И вот наконецто код для определения расстояния Хемминга(нужен мне для квиза по чаптеру1 на курсе):

def hamdist(str1, str2):
   """Count the # of differences between equal length strings str1 and str2"""
        
        diffs = 0
        for ch1, ch2 in zip(str1, str2):
                if ch1 != ch2:
                        diffs += 1
        return diffs

и результат сей магии для строк
CAGAAAGGAAGGTCCCCATACACCGACGCACCAGTTTA and CACGCCGTATGCATAAACGAGCCGCACGAACCAGAGAG.
=== 23

после пятого вопроса мне понадобилось почитать о чем меня просят? (придется таки вникнуть в теорию)
в целом: занятно

Немає коментарів:

Дописати коментар