Софт Становление Python'иста | Часть 1

Забаненный
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
308
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем hi. Дело в том что я решил начать изучать такой язык как PYTHON. Решил начать именно с него.

В своих темах я буду делиться тем чему я научился, и если что, если я чет не то делаю, рассчитываю на вашу помощь.
Также я выложу то что у меня получилось в своем канале в телеге:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(НЕ РЕКЛАМАА, ни в коем случае!!!!!!)

Ну что ж, начнем.
На данный момент я учусь 10 классе, и у меня проходит по матеше такая тема как точки екстремума и векторы. У меня по этим тема все зае***ь. Но мне каждый раз лень искать всякие расстояние между точками, находить ту же середину вектора. Я решил автоматизировать этот процесс, и на данный момент я сделал только нахождение середины вектора.

1. Для начала я добавил дох*я всяких не нужных импортов.
2. Потом решил сделать вступление
3. Потом создал список функций(Найти середину отрезка)
4.Написал тип если выбор == 1 то выполнять след действия
5.Так как мы знаем, что середина отрезка равна сумме двух точек / 2, то я для начала решил узнать точки, потом их прибавить а потом поделить на 2.
6.В процессе, я столкнулся с такой проблемой can only concatenate str (not "int") to str. И тут я вспомнил то я да*н, и забыл про конкатенацию(пзд, я помню как это называется) и перевел все в int.
7.Просто вывел на экран результат, изначально перевел переменные в string.

Python:
import autograd.numpy as np
from autograd import grad
import math




print("Привет шкрэкус. Это программа поможет тебе по геометрии. by VEGAS")
input("Нажми Enter что бы продолжить.")

print(" ")
print("Шо я умею:")

print("1.Найти середину отрезка")

vibor = input("Выбери то что тебе надо, указав цифру: ")

if vibor == "1":

    print("Введи x1 y1 z1, а потом x2 y2 z2")

    ############################################# Тут я узнаю числа
                                               ##
    oneX = int(input("x1: "))                  ##
    oneY = int(input("y1: "))                   ##
    oneZ = int(input("z1: "))                   ##
    #############################################   X Y Z
                          ##
    twoX = int(input("x2: "))                    ##
    twoY = int(input("y2: "))                  ##
    twoZ = int(input("z2: "))                  ##
    #############################################

    AresultX = float(oneX + twoX) ## Тут я прибавляю X1 и X2
    BresultX = float(AresultX / 2) ## Тут я сумму X1 и X2 делю на 2

    AresultY = float(oneY + twoY)  ## ТОже что и в первом только с:
    BresultY = float(AresultY / 2) ## Y
                                   ##
    AresultZ = float(oneZ + twoZ)  ## Z
    BresultZ = float(AresultZ / 2) ##

    print(" ")
    print("X:" + str(BresultX), "Y:" + str(BresultY), "Z:" + str(BresultZ)) ##Вывел на экран Координаты точки

Решил скомпилить тогда, когда прога будет полностью готова.

Если что-то сделал не так то сообщайте, с радостью почитаю.
Заранее спасибо!
 
Забаненный
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
308
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Идея для школьного проекта хорошая, но реализация немного хромает. Для начала советую почистить код от ненужного мусора и оформить все основные методы в отдельный класс, уверяю, с этим будет гораздо проще работать, еще и можно спокойно публиковать в открытый доступ, не боясь кибербуллинга :).
Накидал вот небольшой пример подкорректированного кода:
Python:
import math

class VectorPoint(object):

    COUNT = 0

    def __init__(self, x, y, z):
        self.X = x
        self.Y = y
        self.Z = z

    def move(self, dx, dy, dz):
        self.X = self.X + dx
        self.Y = self.Y + dy
        self.Z = self.Z + dz

    def __str__(self):
        return "Point(%s, %s, %s)" % (self.X, self.Y, self.Z)

    def getX(self):
        return self.X

    def getY(self):
        return self.Y

    def getZ(self):
        return self.Z

    def distance(self, other):
        dx = self.X - other.X
        dy = self.Y - other.Y
        dz = self.Z - other.Z
        return math.sqrt(dx**2 + dy**2 + dz**2)
    
    def midlenght(self, other):
        return self.distance(other) / 2

    def midpoint(self, other):
        return VectorPoint((self.X + other.X) / 2, (self.Y + other.Y) / 2, (self.Z + other.Z) / 2)

print("Привет шкрэкус. Это программа поможет тебе по геометрии. by VEGAS")
print("Шо я умею:")
print("1. Найти середину отрезка\n2. Найти длину вектора")

vibor = input("Выбери то что тебе надо, указав цифру: ")
if vibor in ["1", "2"]:
    print("\nУкажите всю необходимую информацию:")
    oneX = float(input("x1: "))
    oneY = float(input("y1: "))
    oneZ = float(input("z1: "))
    twoX = float(input("x2: "))
    twoY = float(input("y2: "))
    twoZ = float(input("z2: "))

    point1 = VectorPoint(oneX, oneY, oneZ)
    point2 = VectorPoint(twoX, twoY, twoZ)

    if vibor == "1":
        print(point1.midpoint(point2))

    if vibor == "2":
        print(point1.distance(point2))
else:
    print("\nНеизвестная команда")
 
Забаненный
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
308
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Идея для школьного проекта хорошая, но реализация немного хромает. Для начала советую почистить код от ненужного мусора и оформить все основные методы в отдельный класс, уверяю, с этим будет гораздо проще работать, еще и можно спокойно публиковать в открытый доступ, не боясь кибербуллинга :).
Накидал вот небольшой пример подкорректированного кода:
Python:
import math

class VectorPoint(object):

    COUNT = 0

    def __init__(self, x, y, z):
        self.X = x
        self.Y = y
        self.Z = z

    def move(self, dx, dy, dz):
        self.X = self.X + dx
        self.Y = self.Y + dy
        self.Z = self.Z + dz

    def __str__(self):
        return "Point(%s, %s, %s)" % (self.X, self.Y, self.Z)

    def getX(self):
        return self.X

    def getY(self):
        return self.Y

    def getZ(self):
        return self.Z

    def distance(self, other):
        dx = self.X - other.X
        dy = self.Y - other.Y
        dz = self.Z - other.Z
        return math.sqrt(dx**2 + dy**2 + dz**2)
  
    def midlenght(self, other):
        return self.distance(other) / 2

    def midpoint(self, other):
        return VectorPoint((self.X + other.X) / 2, (self.Y + other.Y) / 2, (self.Z + other.Z) / 2)

print("Привет шкрэкус. Это программа поможет тебе по геометрии. by VEGAS")
print("Шо я умею:")
print("1. Найти середину отрезка\n2. Найти длину вектора")

vibor = input("Выбери то что тебе надо, указав цифру: ")
if vibor in ["1", "2"]:
    print("\nУкажите всю необходимую информацию:")
    oneX = float(input("x1: "))
    oneY = float(input("y1: "))
    oneZ = float(input("z1: "))
    twoX = float(input("x2: "))
    twoY = float(input("y2: "))
    twoZ = float(input("z2: "))

    point1 = VectorPoint(oneX, oneY, oneZ)
    point2 = VectorPoint(twoX, twoY, twoZ)

    if vibor == "1":
        print(point1.midpoint(point2))

    if vibor == "2":
        print(point1.distance(point2))
else:
    print("\nНеизвестная команда")
Понял. Так поудобнее будет)
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2020
Сообщения
193
Реакции[?]
40
Поинты[?]
0
Топчик, красава, топ язык, молодец! - это, что касается поддержки, переходя к реализму - лучше всего начинать обучение программированию с c++, ибо этот синтаксис самый популярный, и c++ много где пригодиться в отличии он python (счас критику словлю).
 
Забаненный
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
308
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Топчик, красава, топ язык, молодец! - это, что касается поддержки, переходя к реализму - лучше всего начинать обучение программированию с c++, ибо этот синтаксис самый популярный, и c++ много где пригодиться в отличии он python (счас критику словлю).
Понятно. Я думаю после пайтона выучу c++
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2021
Сообщения
20
Реакции[?]
3
Поинты[?]
0
Молодец, вот бы мне такую волю чтобы начать и сесть изучать что-то, но еще и постить по шагам - эт анриал)
 
life is cheap, death is free!
Эксперт
Статус
Оффлайн
Регистрация
9 Дек 2019
Сообщения
1,603
Реакции[?]
517
Поинты[?]
2K
Топчик, красава, топ язык, молодец! - это, что касается поддержки, переходя к реализму - лучше всего начинать обучение программированию с c++, ибо этот синтаксис самый популярный, и c++ много где пригодиться в отличии он python (счас критику словлю).
после ++ легко перейти на другие языки
 
Сверху Снизу