Собственно Сабж.
Если у кого есть Вопросы, Задачки по Программированию на Python постим сюда - Ответы и Решения будут.
И для почина - чтобы разогреть Многоуважаемую Аудиторию - Первый Вопрос от меня про Интересные Shared
К примеру есть такая Программа
import sys class ParseResult: errors_list= [] parse_ok= False def Parse(): result= ParseResult() result.errors_list.append( "something" ) return result def main(): print( Parse().errors_list ) print( Parse().errors_list ) print( Parse().errors_list ) print( Parse().errors_list ) if __name__ == "__main__": sys.exit(main())
Выполнить код он-лайн см. http://rextester.com/PXL1357
Т.е. при выполнении программа на выводе дает вот что
$ python test.py ['something'] ['something', 'something'] ['something', 'something', 'something'] ['something', 'something', 'something', 'something']
Почему? Т.е. откуда возникают Shared состояния?
Кто даст правильный Ответ - получит Плюсик в Репутацию
Сообщение отредактировал T-800 Danya: 27.08.2018, 15:40:06
От нечего делать, вот написал код на python, алгоритм пузырчатой сортировки, возможно её как-то можно упростить...
def bubble_sort(l): for i in range(0, len(l)): for j in range(i, len(l)): if l[i] > l[j]: l[j],l[i] = l[i],l[j] l = [100, 5, 1, 7, 20, 10000] print(l) bubble_sort(l) print(l)
Где можно пройти курсы Python в Алматы?
Я лично научился языку Python просмотрев видеоролики Тимофея Хирьянова на ютубе, он очень хорошо, просто и понятно объясняет. А когда базовые знания получили, потом нужно будет читать онлайн документацию по языку, установить Python на комп, и закреплять теоретические знания практикой.
питон коварен еще эликсир вот хорошая вещь, похож на питон, похож на руби, базирован на Erlang https://habr.com/ru/post/50028/
вацапы, чаты фейсбука, телеграм - это всё джаббер, xml-потоки, можно и protobuf, протокол xmpp
И для почина - чтобы разогреть Многоуважаемую Аудиторию - Первый Вопрос от меня про Интересные Shared
К примеру есть такая Программа
import sys class ParseResult: errors_list= [] parse_ok= False def Parse(): result= ParseResult() result.errors_list.append( "something" ) return result def main(): print( Parse().errors_list ) print( Parse().errors_list ) print( Parse().errors_list ) print( Parse().errors_list ) if __name__ == "__main__": sys.exit(main())Выполнить код он-лайн см. http://rextester.com/PXL1357
Т.е. при выполнении программа на выводе дает вот что
$ python test.py ['something'] ['something', 'something'] ['something', 'something', 'something'] ['something', 'something', 'something', 'something']Почему? Т.е. откуда возникают Shared состояния?
Кто даст правильный Ответ - получит Плюсик в Репутацию
Интересный вопрос. Попробую на него ответить. Мне думается, это происходит по следующим причинам.
В объявлении класса ParseResult используется атрибут error_list с изменяемым типом данных (list), который является переменной класса (class variable), а не его экземпляра. Другими словами, список error_list используется совместно всеми экземплярами данного класса, потому что каждый из них хранит ссылку на один и тот же список. Дальше в функции main() несколько раз вызывается функция Parse(), которая каждый раз создает новый экземпляр класса ParseResult и сразу же изменяет атрибут error_list, когда добавляет новый элемент в список при помощи метода append(). Поскольку атрибут совместно используется всеми экземплярами, он автоматически изменяется во всех остальных уже созданных экземплярах этого класса. Чтобы каждый экземпляр класса имел собственное значение атрибута error_list, надо переписать класс примерно так:
class ParseResult: def __init__(self, parse_ok): self.parse_ok = False self.errors_list = [] # создает новый пустой список для каждого экземпляра ParseResult def add_error(self, error): self.errors_list.append(error)
Правильный ли мой ответ? Будет ли у меня плюсик в репутацию?
Интересный вопрос. Попробую на него ответить. Мне думается, это происходит по следующим причинам.
В объявлении класса ParseResult используется атрибут error_list с изменяемым типом данных (list), который является переменной класса (class variable), а не его экземпляра. Другими словами, список error_list используется совместно всеми экземплярами данного класса, потому что каждый из них хранит ссылку на один и тот же список. Дальше в функции main() несколько раз вызывается функция Parse(), которая каждый раз создает новый экземпляр класса ParseResult и сразу же изменяет атрибут error_list, когда добавляет новый элемент в список при помощи метода append(). Поскольку атрибут совместно используется всеми экземплярами, он автоматически изменяется во всех остальных уже созданных экземплярах этого класса. Чтобы каждый экземпляр класса имел собственное значение атрибута error_list, надо переписать класс примерно так:class ParseResult: def __init__(self, parse_ok): self.parse_ok = False self.errors_list = [] # создает новый пустой список для каждого экземпляра ParseResult def add_error(self, error): self.errors_list.append(error)Правильный ли мой ответ? Будет ли у меня плюсик в репутацию?
Плюсик будет
Суть в том, что в Python поля класса - это именно поля класса, а не инстанса. Инстансы работают за счёт того, что, когда происходит обращаение к полю, которого у инстанса нет, запрос перенаправляется классу.
print('look carefully for object identities') print('\ndefine Inner') class Inner: def __init__(self): print('Inner.__init__(', self, ')') def __del__(self): print('Inner.__del__(', self, ')') print('\ndefine Outer') class Outer: class_attribute = Inner() def __init__(self): print('Outer.__init__(', self, ')') self.instance_attribute = Inner() def __del__(self): print('Outer.__del__(', self, ')') print('\ncreate OuterInstanceA') OuterInstanceA = Outer() print('\ncreate OuterInstanceB') OuterInstanceB = Outer() print('\nOuterInstanceA.class_attribute ::', OuterInstanceA.class_attribute) print('OuterInstanceA.instance_attribute ::', OuterInstanceA.instance_attribute) print('OuterInstanceB.class_attribute ::', OuterInstanceB.class_attribute) print('OuterInstanceB.instance_attribute ::', OuterInstanceB.instance_attribute) print('Outer.class_attribute ::', Outer.class_attribute) try: print('Outer.instance_attribute ::', Outer.instance_attribute) except Exception as e: print('Outer.instance_attribute !', e) print('\ndelete OuterInstanceA') del OuterInstanceA print('\ndelete OuterInstanceB') del OuterInstanceB print('\ndelete Outer') del Outer print('\nend')
См. результат выполнения кода https://rextester.com/SJOH58595
Таким образом если необходимо, чтобы каждый инстанс при появлении получал свою собственную копию list() - надо прописать создание этой копии в __init__.
Сообщение отредактировал T-800 Danya: 08.02.2019, 23:05:42
Суть в том, что в Python поля класса - это именно поля класса, а не инстанса.
А я разве не то же самое сказал?
Таким образом если необходимо, чтобы каждый инстанс при появлении получал свою собственную копию list() - надо прописать создание этой копии в __init__.
И об этом в моем ответе то же самое сказано, с примером кода.
Инстансы работают за счёт того, что, когда происходит обращаение к полю, которого у инстанса нет, запрос перенаправляется классу.
А вот тут интересный момент. Вот пример класса с двумя полями, которых тоже вроде бы не будет у "инстанса" (по-русски говоря, у экземпляра класса).
#python 3.5.2 class MyClass: year = 1900 words = ['spam', 'test'] var1 = MyClass() var2 = MyClass() var3 = MyClass() var2.year = 1999 var3.year = 2019 var2.words[0] = 'Hello' var3.words[1] = 'world' print(var1.year, var1.words) print (var2.year, var2.words) print(var3.year, var3.words)
При выполнении этого кода через тот же самый сервис https://rextester.co...online_compiler получим:
1900 ['Hello', 'world'] 1999 ['Hello', 'world'] 2019 ['Hello', 'world']
Видим, что атрибут words, как и прежде, это атрибут класса. Он общий (совместно используемый). Изменения этого атрибута в любом "инстансе", как и раньше, приводят к его изменению во всех остальных. Атрибут year в MyClass тоже является атрибутом класса, а не "инстанса". А вот значение атрибута year при его изменении в каждом "инстансе" получилось свое! Причем прописывать его в классе через self не потребовалось.
Кто сможет это правильно объяснить, получит от меня плюсик в репутацию.
Буду очень благодарен если хотя-бы подскажите куда копать...
Итак:
есть два массива, скажем таких:
u1=[1,4,2,6,7,3]
x1=[20,43,21,45,32,87]
Количество элементов в двух массивах равное, это важно. Проще говоря каждый n элемент первого массива соотносится к каждому n элементу второго массива.
Далее задаем значение u, например 5.
Задача вычислить значение x.
ТО есть: нужно понять где в первом массиве находится значение u, интерполировать его и на основе этого значения вычислить значение x из второго массива.
Рыл в сторону интерполяции, регрессии, но пока безрезультатно.
Спасибо.
ИМХО если каждый n-й элемент массива Х соотвествует одному и только одному n-ому элементу массива U то Вам надо сделать перебор элементов массива U c n=0 дл n=N, определить индекс n для которого будет минимум модуля разности Un и 5 и выбрать из массива X элемент с определенным Вами индексом n, а потом просто взять да и прибавить к нему (Un-5)*[Xn+1 - Xn]/[Un+1 -Un]Буду очень благодарен если хотя-бы подскажите куда копать...
Итак:
есть два массива, скажем таких:
u1=[1,4,2,6,7,3]
x1=[20,43,21,45,32,87]
Количество элементов в двух массивах равное, это важно. Проще говоря каждый n элемент первого массива соотносится к каждому n элементу второго массива.
Далее задаем значение u, например 5.
Задача вычислить значение x.
ТО есть: нужно понять где в первом массиве находится значение u, интерполировать его и на основе этого значения вычислить значение x из второго массива.
Рыл в сторону интерполяции, регрессии, но пока безрезультатно.
Спасибо.
Сообщение отредактировал T-800 Danya: 12.02.2019, 00:10:59
Где можно пройти курсы Python в Алматы?Я лично научился языку Python просмотрев видеоролики Тимофея Хирьянова на ютубе, он очень хорошо, просто и понятно объясняет. А когда базовые знания получили, потом нужно будет читать онлайн документацию по языку, установить Python на комп, и закреплять теоретические знания практикой.
Добрый день.
Присоединяюсь к вопросу - может ли кто-нибудь подсказать репетитора по Python? Видео уроки смотрю, но так как учу практически с 0, нужен человек, который базу объяснил бы. Если у кого-нибудь есть люди, напишите, пожалуйста, сюда или в ЛС.
Добрый день.
Присоединяюсь к вопросу - может ли кто-нибудь подсказать репетитора по Python? Видео уроки смотрю, но так как учу практически с 0, нужен человек, который базу объяснил бы. Если у кого-нибудь есть люди, напишите, пожалуйста, сюда или в ЛС.
Привет!
Скажем так, если у Вас есть желание Изучить Python на реальном Проекте
Добро Пожаловать в Наш Благотворительный Проект см. https://vse.kz/topic...kazakhskom-iaz/
ИМХО для Новичка в принципе найдется пара Интересных Тасков, что еще надо Запилить
ЗЫ Если будете пилить Таски по Проекту - Консультировать по Python будем БЕСПЛАТНО
ЗЗЫ А если сумете запилить Таски досточно ХОРОШО - даже может быть заплатим Вам немножко ДЕНЕГ из Фонда Проекта
Сообщение отредактировал T-800 Danya: 10.04.2019, 19:54:54
Привет! Скажем так, если у Вас есть желание Изучить Python на реальном Проекте
Благодарю вас за предложение, но вежливо откажусь =)
1) Я прям совсем с 0 начинаю, сейчас изучаю основы програмирования, со мной занимаются, как маленьким с ребенком, все объясняют, нянчатся, указывают на ошибки и терпеливо отвечают на все вопросы. Боюсь, для проэкта, несмотря на то, что он очень интересен, еще не пришло мое время =)
2) Есть вопрос - не знаю в какую тему написать, поэтому напишу сюда. Задача простая - улучшить свой скил в data scientist, а именно - работа с бд, автоматизация выгрузки данных, кубы и кейсы, визуализация, машинное обучение.
Везде пишут, что нужны 2 языка R и Phyton. Вопрос - какой из них "лучше" и полезней в сфере аналитики? Например power bi, насколько я знаю, написан на R.
Есть вопрос - не знаю в какую тему написать, поэтому напишу сюда. Задача простая - улучшить свой скил в data scientist, а именно - работа с бд, автоматизация выгрузки данных, кубы и кейсы, визуализация, машинное обучение.
Везде пишут, что нужны 2 языка R и Phyton. Вопрос - какой из них "лучше" и полезней в сфере аналитики? Например power bi, насколько я знаю, написан на R.
Языки в принципе без разницы. Главное Библиотеки для обработки данных под Вашу конкретную Задачу.
Потому что на практике Разработчик всегда идет от Стандартного Решения - Никто же не мастерит Велосипеды c НУЛЯ - т.е. есть подходящие библиотеки на Python - пишет на Python, есть под его Задачку нормальное решение на R - пишет на R
Благодарю вас за предложение, но вежливо откажусь =)
1) Я прям совсем с 0 начинаю, сейчас изучаю основы програмирования, со мной занимаются, как маленьким с ребенком, все объясняют, нянчатся, указывают на ошибки и терпеливо отвечают на все вопросы. Боюсь, для проэкта, несмотря на то, что он очень интересен, еще не пришло мое время =)
Ну как хотите. Хотя ИМХО для ПроЭктов Время обычно проиходит как правило еще Вчера, а то даже и Позавчера
И вообще как Известно глаза боятся - а Руки делают - Вот так вот
Сообщение отредактировал T-800 Danya: 11.04.2019, 14:01:23
Добрый день. Присоединяюсь к вопросу - может ли кто-нибудь подсказать репетитора по Python? Видео уроки смотрю, но так как учу практически с 0, нужен человек, который базу объяснил бы. Если у кого-нибудь есть люди, напишите, пожалуйста, сюда или в ЛС.
Я так учился, там всё объяснят с нуля:
Как выучить Python
https://www.youtube....h?v=0a2a7dXJYXM
Лекции Тимофея Хирьянова по Python
https://www.youtube....83DFUbm4GeOjjc0
Изучение Python в одном уроке за 1 час
https://www.youtube....h?v=x_2QpLcRdeY
Python для детей
https://www.youtube....NcBt-c4gdmRVxrx
Уроки по Django
https://www.youtube....AqAmD_Cdb9DV-H5
Panda 3D (создание компьютерной игры на Python)
https://www.youtube....h?v=9cFtoq8q9sI
Распознавание объектов на Python
https://www.youtube....h?v=Uj4O2_dwRiA
Создание игры на Python
https://www.youtube....h?v=BZBk4jjbFHk
PyMongo
https://www.youtube....h?v=h6M4x9aXx5g
Сообщение отредактировал lexx821: 13.04.2019, 02:35:03
Спасибо вам огромное за такой подробный ответ и информацию! Спасибо
Понимаете, я сам учился программированию, никто меня этому не учил, в начале 90х у нас был дома ПК, когда учился в школе где-то во втором классе меня заинтересеовало программирование, и то потому что был компьютер дома. На выбор тогда было не большое количество компьютерных программ и инструментов для разработок программного обеспеченья на нашем компьютере, тогда на компьютерах не было ни Windows 10, ни MacOS X High Sierra, а была однозадачная MS-DOS 5.00, и такие программы были на выбор: Norton Commander, Turbo C, FoxPro, GW-BASIC, Лексикон, ну и пару компьютерных игр, типа: шахматы battle chess, 2х-мерный платформер keen commander 4, леталка planet of zoom. Дисплей был маленький, хорошо если он выдовал 256 цветов, на такие дисплеи раньше вешали защитный экран, про CD-ROM и звук я вообще молчу, вместо CD-ROM, были дискеты размером 5,25" или 3.5" на 512кбайт или 1,44мбайт, жёсткие диски хорошо если 40мбайт были. Всё это было настолько убогое и уродлевое, но я всё равно как-то научился программировать, потому-что было очень интересно и был упоротый в этом деле, начинал я с Си и Бейсик, не много программировал на FoxPro. В школе в 6-м классе была информатика, нас учили печатать в слепую на клавиатуре спомощью тренажора, и работать в Лексиконе, мы в Лексиконе тексты набирали, и ещё был какой-то тренажёр по изучению программированию. Тогда не было интернета, был только скучный BBS, и там ничего не было, соседи в этом были ноль, компьютерщиков и программистов можно было тогда по пальцам пересчитать, и то их можно было найти в каких-нибудь вычислительных центрах. Эксперементировал сам, методом тыка, часто даже не понимал что делал, иногда моё программирование заканчиволось очень печально. Поэтому трудно дать совет как научиться программированию. Должна быть предрасположенность к программированию https://www.youtube....h?v=bpdduViubII , упорство, зацикленность, сильный интерес. Раньше я учился методом тыка или читал различные книги, а сейчас ищу уроки на ютубе, благодаря ютуб я много чего освоил. В начале 2000х учился в ВУЗе там нас паскалю учили, на западе изучают Java, и то когда приходишь на первый курс, нужно уже знать основы азыка Java. А в колледжах на западе 17 летних подростков учат сразу C++, C#, Java, Perl, PHP, HTML, CSS, JavaScript, MS-SQL, MySQL, ABAP.
Барахолка →
Вакансии →
Работа для инженера с релокацией в ЮВАОткрытые позиции в отделе R&D на фабрике Автор: Димыч, 28.03.2022, 10:23 юва, фабрика, автоматизация и 2 еще... |
|
|||
Сети и информационные технологии →
Программирование →
CodeWars - кто-нибудь участвует?Программирование Автор: Ligerian, 21.09.2021, 18:12 codewars, программирование |
|
|||
Барахолка →
Вакансии →
Прямые вакансии →
Ищу программистов PythonИмею много заказов, есть возможность работать на постоянной основе! Никаких предоплат и тестов Автор: Avega777, 09.10.2020, 23:29 работа, программист, python |
|
|||
Барахолка →
Продам →
Услуги →
Робототехника и программирование в Алматы.от 10 лет в группе и индивидуально. Автор: olegr, 10.09.2020, 21:33 робототехника, программирование и 2 еще... |
|
|||
Барахолка →
Продам →
Недвижимость →
Аренда недвижимости →
Кабинет для консультаций, тренингов. По часам.для индивидуальных и групповых консультаций, для обучения; хорошо подойдет психологам, коучам, консу Автор: Toffy, 02.06.2020, 13:09 аренда, кабинет, консультации и 2 еще... |
|
пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0
Размещение рекламы на сайте Предложения о сотрудничестве Служба поддержки пользователей
© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.