• Как разбить текст на предложения, не используя регулярные выражения?

    aRegius
    @aRegius
    Python Enthusiast
    "Дожмите" ваше собственное решение
    text = text.replace('. ', '.|').replace('! ', '!|').replace('? ', '?|')


    добавив проверку на вхождение заглавных букв и чуточку подкорректировав аргументы в replace():
    >>> letters = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЭЮЯ'
    >>> text = '"Смотри, как расхрабрился!" говорил Чуб, оставшись один на улице..' # и далее по тексту
    >>> for letter in letters:
    	        if letter in text:
    		            text = text.replace('. '+letter, '.|'+letter).replace('. "'+letter, '.|"'+letter).replace('! '+letter, '!|'+letter)
    		
    >>> for sentence in text.split('|'):
    	        print(sentence)
    	
    "Смотри, как расхрабрился!" говорил Чуб, оставшись один на улице.
    "Попробуй, подойди! вишь какой! вот большая цяца! ты думаешь, я на тебя суда не найду.
    Нет, голубчик, я пойду, и пойду прямо к комиссару.
    Ты у меня будешь знать.
    .... 
    и т.д.
    Ответ написан
    Комментировать
  • Как отфильтровать лист, чтобы если в значении из листа первый символ, выполнялось действие?

    aRegius
    @aRegius
    Python Enthusiast
    >>> text = ['bob', 'auto', 'milk', 'bear', 'tool']
    >>> for word in text:
    	        if word.startswith('b'):
    		            print(word)	
    	
    bob
    bear
    >>>
    Ответ написан
    Комментировать
  • Правильно ли я пишу код?

    aRegius
    @aRegius
    Python Enthusiast
    Пробуйте при помощи функции sum() (свежо предание):
    >>> num = 5
    >>> sum(int(i) for i in str(num))
    5
    >>> num = 25
    >>> sum(int(i) for i in str(num))
    7
    >>> num = 325
    >>> sum(int(i) for i in str(num))
    10
    Ответ написан
    Комментировать
  • Как сравнить каждый элемент в списке Python?

    aRegius
    @aRegius
    Python Enthusiast
    Привет!

    Если каждый элемент больше предыдущего - у вас, де-факто, будет отсортированный список. Поэтому просто сравните ваш текущий с им же отсортированным. Если True - все норм, каждый элемент больше предыдущего, иначе - False:

    >>> new_list = [1, 2, 3, 4, 5, 6]
    >>> new_list == sorted(new_list)
    True
    >>> new_list = [1, 2, 3, 4, 8, 6, 5]
    >>> new_list == sorted(new_list)
    False
    Ответ написан
  • Как выводить по 5 значений из листа?

    aRegius
    @aRegius
    Python Enthusiast
    Используйте слайсы (срезы), цикл for и функцию range():
    >>> num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>> len_num_list = len(num_list) + 1
    >>> start_slice = 0
    >>> for i in range(5, len_num_list, 5):
    	        print(num_list[start_slice:i])
    	        start_slice += i
    	
    [1, 2, 3, 4, 5]
    [6, 7, 8, 9, 10]


    Для того, чтобы вывести по группам в случайном порядке без повторов добавьте random.shuffle():
    >>> import random
    >>> new_num_list = num_list[:]
    >>> random.shuffle(new_num_list)
    >>> start_slice = 0
    >>> for i in range(5, len_num_list, 5):
    	        print(new_num_list[start_slice:i])
    	        start_slice += i
    	
    [8, 2, 9, 3, 6]
    [10, 1, 4, 7, 5]
    Ответ написан
    Комментировать
  • Как организовать самообучение языкам программирования?

    aRegius
    @aRegius
    Python Enthusiast
    1. Определяете минимум, который вам необходим для создания продукта-цели. Ну, то есть, самый минимум, minimum minimorum. Например: "Для создания моего продукта мне нужны HTML, CSS, JS и PHP. Без любого из них я свой продукт создать не смогу. Это мой необходимый минимум."

    2. Ищите по 1-му толковому материалу (чтобы не распылять усилия на 8 книг и 15 онлайн-курсов по JS, условно) для каждого инструмента. Более того, по трем из них я вам могу дать рекомендации: HTML5 + CSS3 + JS. PHP не мой "конек", возможно коллеги подскажут...

    3. Учите в том же порядке: HTML, потом CSS, потом JS/PHP (PHP/JS, тут уж сами смотрите).

    4. Открывайте соответствующий материал по предмету, ознакомьтесь со структурой подачи материала и определите для себя ключевые точки для разбития этого материала на блоки, каждый из которых вы будете стараться пройти "за один присест".
    Например: открываете книгу по HTML, смотрите содержание, и принимаете решение (исходя из имеющегося у вас времени, которое вы готовы в день уделять обучению), что будете в день работать над 2-мя главами материала.
    Или: открываете материал по JS, смотрите содержание, и принимаете решение, что будете в день работать над 1-ой темой (сегодня - "Основы JavaScript", завтра - "Качество кода" и т.п.)

    5. Планируя таким образом обучение, вы, что немаловажно, будете примерно представлять сроки, которые вам для этого потребуются.

    6. До тех пор, пока вы не реализуете свой стартовый проект, учите и практикуйте только то, что вам для этого необходимо. Работу непосредственно над самим проектом начинайте ровно в тот момент, когда почувствуете, что пора. Тут уж все индивидуально.

    7. После реализации проекта можете выдохнуть, осмотреться, наметить очередные цели с учетом приобретенного опыта - и дальше в путь!

    Подытожим: определитесь с минимумом технологий, распланируйте время на изучение, учите технологии step-by-step - не распыляйте усилий, придерживайтесь графика.

    P.S. Вам будет проще, если вы сконцентрируетесь, поставите себе минимально возможные сроки и "возьмете эту крепость блицкригом", ибо на скользкую горку проще всего забраться с разбегу :)
    Ответ написан
    4 комментария
  • Что за идиома в питоне?

    aRegius
    @aRegius
    Python Enthusiast
    Привет, Вова.

    Это называется Генератор списка / List comprehension
    Ответ написан
    3 комментария
  • Есть ли хороший онлайн самоучитель по Python, который хорошо показовал бы его работу на примерах?

    aRegius
    @aRegius
    Python Enthusiast
    Ну конечно же Доусон. Вряд ли найдете что-то лучше - интересно, просто и практично.
    Ответ написан
    Комментировать
  • Как подсчитать количество вхождения каждого слова в списке?

    aRegius
    @aRegius
    Python Enthusiast
    На Python это делается элементарно, при помощи класса Counter из модуля collections. А любое количество наиболее часто встречающихся элементов находите при помощи метода most_common():

    >>> text = ['1', '12', '123', '11', '1', '12', '12']
    >>> from collections import Counter
    >>> text_counts = Counter(text)
    >>> text_counts
    Counter({'12': 3, '1': 2, '11': 1, '123': 1})
    >>> top_two = text_counts.most_common(2)
    >>> top_two
    [('12', 3), ('1', 2)]
    Ответ написан
    Комментировать
  • Как исправить данный Traceback?

    aRegius
    @aRegius
    Python Enthusiast
    Судя по тому, что я вижу и читаю - попробуйте убрать скобки:
    вместо {% if current_user.is_authenticated() %}
    так {% if current_user.is_authenticated %}
    Ответ написан
    Комментировать
  • Python3 для опытного непитонщика, какую литературу выбрать?

    aRegius
    @aRegius
    Python Enthusiast
    Привет.

    Да, с литературой (хорошей литературой) у Python все в полном порядке.

    Но, исходя из обозначенных критериев, я бы порекомендовал связку Fluent Python + Python Pocket Reference. Вторая - на случай, если почувствуете, что "плывете" при чтении первой. Т.е., она может понадобиться, а может и нет.

    Обе есть на русском. Перевод Fluent Python очень на любителя (по мне - плохой, а-ля Google Translate), второй - не знаю, держу в оригинале.

    Лично я бы рекомендовал обе читать в оригинале. Но вы уж сами для себя решайте.

    P.S. Pyramid - отличный фреймворк.
    Ответ написан
    Комментировать
  • Достаточно ли простого интернет магазина на Django для устройства на работу?

    aRegius
    @aRegius
    Python Enthusiast
    И вам доброго.

    Недавно была хорошая статья относительно вашего вопроса. Посмотрите, возможно окажется полезным.
    Ответ написан
  • Реально ли эмигрировать PHP программисту в возрасте?

    aRegius
    @aRegius
    Python Enthusiast
    Почитайте-ка историю Алексея Ситникова

    И лично от себя... Просто примите как данность - в жизни ВОЗМОЖНО ВСЁ!
    Что бы вы не планировали, какие бы цели не ставили, в какой бы ситуации не находились, как бы не комплексовали и какие-бы страхи вас не одолевали, ВСЕГДА найдется не один человек, который в схожих, либо худших, стартовых условиях добился того, о чем грезите и вы.
    Ответ написан
    Комментировать
  • Как записать список с целыми числами в файл с помощью writelines() (Python)?

    aRegius
    @aRegius
    Python Enthusiast
    1. Преобразуем числа в строки (ибо метод writelines работает только со строками)
    2. Добавляем символ перевода строки (чтобы в один ряд не записалось)
    3. Записываем

    >>> list = [1, 2, 3, 4, 5, 6]
    >>> new_list = [str(i)+'\n' for i in list]
    >>> with open('file.txt', 'w') as f:
    	        f.writelines(new_list)
    Ответ написан
    Комментировать
  • Уроки Python + django, что посоветуете?

    aRegius
    @aRegius
    Python Enthusiast
    Django by Example
    Другие варианты (с подобной информацией) лично мне неизвестны.

    Кликните на изображении обложки книги (над которым стоит указатель со стрелкой Look inside), перейдите в раздел Table of Contents и ознакомьтесь с информацией о темах, представленных в книге.
    Ответ написан
    Комментировать
  • Ресурсы по django?

    aRegius
    @aRegius
    Python Enthusiast
    Здравствуйте.
    Еще ресурсов? Пожалуйста:

    TaskBuster Django Tutorial
    Tango With Django
    Try Django Tutorial
    Django Packages
    Classy Class-Based Views
    Awesome Django
    GoDjango
    Django REST framework
    Django Vanilla Views

    UPD
    Не в моих правилах давать непрошеные советы, поэтому не в качестве истины в последней инстанции, а в качестве мыслей вслух:
    1. Как бы от такого количества материала не образовалась "каша" в голове :)
    2. На сегодняшний день я склоняюсь к такому варианту изучения Django с нуля:
    a) Django. Подробное руководство, Джейкоб-Каплан Мосс и Адриан Головатый. Почему, Зачем и Как от непосредственных создателей фреймворка. Да, немолода, но все так же актуальна.
    б) Руководство Django Girls. После того, как вы осилите пункт а), можете приступать к практике, и ничего проще, быстрей и понятней Django Girls на этом этапе вы не найдете.
    в) Django by Example + Two Scoops of Django. Создавайте что душе угодно + "шлифуйте" свои знания примерами лучших практик.

    В качестве настольной и справочной книги используйте Официальную документацию.
    Ну и не забывайте про сам Python, конечно.
    Ответ написан
    Комментировать
  • Как вывести результат функции?

    aRegius
    @aRegius
    Python Enthusiast
    Уберите либо аргумент name из функции, либо переменную name из ее тела. Обе одновременно - не нужны.

    Или так:
    >>> def my_func():
    	        name = input('What is your name?: ')
    	        print(name)
    
    >>> my_func()
    What is your name?: Alex
    Alex
    >>> my_func()
    What is your name?: Bob
    Bob

    Или так:
    >>> def my_func(name):
    	        print(name)
    
    >>> my_func('Alex')
    Alex
    >>> my_func('Bob')
    Bob
    Ответ написан
    9 комментариев
  • Как подтянуть английский за год?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый вечер.

    Может окажется полезным...

    Я не профессионал в области организации обучения иностранным языкам, а в своей практике опираюсь на здравый смысл и личный комфорт (или, что тождественно, отсутствие внутреннего дискомфорта при изучении). Поэтому исключительно из собственного опыта поделюсь простым советом, но вначале чуть-чуть субъективной теории.

    Поток.
    Я за собой заметил такую штуку - когда приступал к чтению, мне требовалось какое-то непродолжительное время для того, чтобы "набрать обороты". Т.е. вначале чтения я как бы "притормаживал", "спотыкаясь" на тех или иных словах/фразах/оборотах... Это занимало минуты 3-4 наверное. После, я набирал естественный для себя ритм и читал уже довольно свободно.

    Это я к чему... Когда я пробовал читать, например, методом Ильи Франка (суть метода в том, что текст разбит на блоки: сначала блок текста, сопровождаемый переводом, после - блок текста повторяется без перевода), либо читать и по ходу смотреть в словарь для перевода нового незнакомого слова - данные варианты вызывали у меня некоторый дискомфорт в том смысле, что "рвали" этот самый ритм/поток чтения и не позволяли погрузиться в него, что необходимо для более естественного как восприятия прочитанного, так и наработки плавного разговорного темпоритма.

    Поэтому я задумался о таком варианте, который бы позволял мне не отвлекаться от чтения и одновременно максимально понимать прочитанное...

    Теперь сам простой совет: есть ли книга, сюжет которой вам знаком практически идеально? Найдите англоязычную версию и читайте.

    P.S. Я, например, читаю "Три мушкетера" Александра Дюма :)
    Ответ написан
    7 комментариев
  • Как увеличить значение и уменьшить его на необходимо число?

    aRegius
    @aRegius
    Python Enthusiast
    Привет, Вадим!
    Ну, самый простой вариант - обращаться по индексу:
    >>> stats = [["сила",0],["здоровье", 1],["мудрость",0],["ловкость", 0]]
    >>> stats[0][1] += 1
    >>> stats
    [['сила', 1], ['здоровье', 1], ['мудрость', 0], ['ловкость', 0]]
    >>> stats[1][1] += 5
    >>> stats
    [['сила', 1], ['здоровье', 6], ['мудрость', 0], ['ловкость', 0]]
    >>> stats[1][1] -= 2
    >>> stats
    [['сила', 1], ['здоровье', 4], ['мудрость', 0], ['ловкость', 0]]
    Ответ написан
    2 комментария
  • Из C# в Python! Как это сделать максимально быстро?

    aRegius
    @aRegius
    Python Enthusiast
    Доброго дня, Валентин!

    По Python смотрите это (на выбор, что лучше воспринимаете, полистайте "Оглавление" ):
    Think Python (более книжное, повествовательное изложение, на русском нету)
    либо
    Python Pocket Reference (справочное изложение, более широкий охват тем, есть на русском)

    По Django:
    Django Girls (быстрее некуда).
    Ответ написан
    2 комментария