Python

С чего начать программирование?

хочу понять основы, хотя-бы базу.
Говорят,язык python подходит для новичок,ибо он лёгкий и понятный.
с питона и начни. на степике есть курс хороший для начала
ВМ
Валерий Малютин
1 299
Лучший ответ
Книга "Песни о Паскале". Это азы, уровень для подростков
Скачивай и вперёд
с установки винды
........ Бала Только не Винды, а Linux. Винда - для домохозяек.
Мериин Владимир соре, я нормальный человек, а не красноглазый
наоборот надо начинать с тяжелого чтобы не питать себя иллюзиями, например с++
Саргис Бадалян обычная Java подойдёт?
С любого места, т.е., что нравиться/получается, то и изучаешь/ тем и занимаешься, потом, расширяешь границы и сам поймёшь куда тебе надо, в чём ошибался.
Ты не особо обольщайся тем что якобы "Питон легкий". Как пойдет речь о каких-либо сложных структурах данных - всю "легкость" как рукой снимет. Построение бинарных деревьев на Питоне я понял только раза с третьего. А начинать программирование именно с этого и нужно - алгоритмы и структуры данных
 class Node:  
def __init__(self, data):
self.data = data
self.left = self.right = None
# вершина
# data - поочередно элементы списка [10, 5, 7, 16, 13, 2, 20]


class Tree:
def __init__(self):
self.root = None
# указатель на узел. Изначально пустой

def __find(self, node, parent, value):
# начинаем поиск с корневой вершины
# если значение value (Node(x)) из цикла меньше
# чем в корневой вершине - идем по левой ветви, иначе по правой
# в новой вершине рекурсивно повторяем это сравнение

if node is None:
return None, parent, False
if value == node.data:
return node, parent, True
if value < node.data:
if node.left:
return self.__find(node.left, node, value)
if value > node.data:
if node.right:
return self.__find(node.right, node, value)
# попадание в узел без дочерних узлов завершает рекурсию
return node, parent, False
# не нашли узел со значение value. К node нужно добавлять новый узел

def append(self, obj):
if self.root is None:
self.root = obj
return obj
# в дереве нет ни одного объекта. Новая вершина добавляется как корневая
# если это условие не сработало,
# то мы должны найти вершину к которой добавляем новую вершину
# чтобы ее добавить нужно получить ссылку
# на предыдущую вершину к которой будем цеплять новую вершину
s, p, fl_find = self.__find(self.root, None, obj.data)
# __find ищет родительский узел к которому нужно прицепить новый узел
# он возвращает (НЕ ПРИНИМАЕТ, А ВОЗВРАЩАЕТ) кортеж из трех значений -
# узел, его родитель, флаг Тру или Фолс
# принимает он следующие параметры
# self.root корень дерева
# None - родительская вершина для корня. У корня нет родителя
# obj.data - данные относительно которых ищем вершину к которой цепляем новую вершину
if not fl_find and s:
if obj.data < s.data:
s.left = obj
else:
s.right = obj
return obj

def show_tree(self, node):
if node is None:
return
self.show_tree(node.left)
print(node.data)
self.show_tree(node.right)


v = [10, 5, 7, 16, 13, 2, 20]
t = Tree()
for x in v:
t.append(Node(x))
t.show_tree(t.root)
VS
Vladimir Savelyev
5 840
........ Бала С чего ты взял, что ты понял эту тему?
Смотря что делать, если приложения и чат ботов, то пайтон.
Георг Лобков
Георг Лобков
3 222
если умеешь переустанавливать винду и менять плашки то в принципе достаточно
Stepic python и укус питона книга