Уведомления

Группа в Telegram: @pythonsu

#1 Май 6, 2021 21:05:27

Anyuta3
Зарегистрирован: 2021-05-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Терміново потрібно виконати ці завдання які прикріплені у файлі

Прикреплённый файлы:
attachment 33.PNG (28,0 KБ)

Офлайн

#2 Май 7, 2021 04:15:40

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

В первом задании непонятно че вам надо сделать с точки зрения программирования. Словами опишите. Это по программированию задания?
Если просто решить, то че т не тот форум как мне кажется.
Вам надо подставить последовательно данные вам значения x, k и l в формулы, чтобы найти a и b
Потом найденные a и b подставить в формулы и найти y1 и y2

Вторая задача, если ответ нужен в виде программы на python, вот:

  
# Calculate cube volume and lateral surface area
def lateral_surface_area(cube_edge):
    return 4 * cube_edge ** 2
def cube_volume(cube_edge):
    return cube_edge ** 3
cube_edge = int(input("Enter the size of the edge of the cube. Use only numbers, please: "))
print(cube_volume(cube_edge))
print(lateral_surface_area(cube_edge))




Отредактировано Ocean (Май 7, 2021 21:35:22)

Офлайн

#3 Май 7, 2021 07:46:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Ocean
В первом задании непонятно че вам надо сделать с точки зрения программирования. Словами опишите. Это по программированию задания?
Это простейшие задачи. Ты пишешь функцию, которая принимает аргументы. Внутри у функции вот эта вычисляемая хрень.

Но эти “будь ласки” никогда ничего не делают и даже не отвечают, когда им пишешь решение.



Отредактировано py.user.next (Май 7, 2021 07:47:15)

Офлайн

#4 Май 7, 2021 15:10:59

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

py.user.next
Это простейшие задачи. Ты пишешь функцию, которая принимает аргументы. Внутри у функции вот эта вычисляемая хрень.
Ух ты божечки
Я б не догадалась никогда.
Спасибо за подсказку!
сделаю для практики, а то ленилась все эти степени, логарифмы и корни выписывать) Для меня это очень очень скучный тип задач, и считала, что когда “припрет” разберусь как корень квадратный задать или логарифм.
Кстати, надо будет почитать для этой задачки про использование знаков после запятой во float. Давно было интересно, как это повлияет на получаемые ответы, но откладывала, потому что были более приоритетные вопросы и темы.

py.user.next
Но эти “будь ласки” никогда ничего не делают и даже не отвечают, когда им пишешь решение.
Ну а ты поставь себя на место “будь ласки”.
Пришла она, тратила время, регистрировалась, тему писала, файлик крепила, про срочность пояснила… Минута прошла, вторая… Никто не написал решение!
Третья минута прошла… Вот уже 21:10 настало - время смотреть сериальчик и спать. А бездушные существа с форума вместо решения свои тупые вопросы задают. А Будь Ласке еще от руки в тетрадочку каракули все эти переписывать, что в ответе пришлют!
Прикинь, как Будь Ласка во мне разочаровалась, когда я вместо правильных ответов, свои тупые вопросы писать начала.
Так что я понимаю ее презрительное молчание. Если я типа считаю, что я умная, то сама догадаться должна была, что нужно.

Зато прошлой ночью, благодаря ей, я узнала, что:
- боковая поверхность куба правильно на англ называется lateral surface area (а не тот бред, что у меня в голове был),
- грань куба правильно не side, а face!
- vertex - это вершина!

Так что в карму этой Будь Ласки прилетело аж 3 очка.
А как прорешаю ее первую задачку, то наверняка еще парочка прибавится ))

Офлайн

#5 Май 7, 2021 15:54:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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

Вот тут ошибка
Ocean
  
# Calculate cube volume and lateral surface area
def lateral_surface_area(cube_edge):
    return 4 * cube_edge **2
 
def cube_volume(cube_edge):
    return cube_edge * 3
 
cube_edge = int(input("Enter the size of the edge of the cube. Use only numbers, please: "))
print(cube_volume(cube_edge))
print(lateral_surface_area(cube_edge))

Вот эти первые задачи (простенькие) как раз и вырабатывают все эти “внимательные” навыки. И отсутствие тестов тут тоже ни при чём. Нужно уметь без тестов писать правильно. Тесты только для экономии времени нужны. Питон когда компилируешь (сам интерпретатор), у него есть тесты, ты их запускаешь и он всё-всё-всё проверяет (все модули, все функции в них и так далее). Минут десять это длится. Около пятисот тестов в нём, даже больше. Руками после каждой перекомпиляции ты никогда это не проверишь, потому что даже один тест проверяет код быстрее человека в тысячу раз. И если всё это проверяется минут десять тестами, то человек это будет проверять руками 10 минут * 1000 = 10000 минут. Ну, это примерно, чтобы просто размеры понять. То есть ему бы пришлось после просто одной компиляции три часа всё проверять, так ещё и помнить, где в каком модуле каждая функция и как она должна работать для всех своих случаев. Ну, это нереально. Даже если все эти функции и все эти модули один он писал, хотя это часто далеко не так. Поэтому тесты и спасают. Если где-то что-то сломается, то не надо будет ждать писем пользователей, которые это заметили где-то там на предприятии каком-нибудь. Тесты сразу, ещё перед выпуском, всё это покажут. Поэтому они создают пуленепробиваемость. И такой код - код, покрытый тестами, - называется пуленепробиваемым кодом. Bulletproof code.

Вообще, любой код, застрахованный от ошибок, является пуленепробиваемым, но мало инструментов есть, которые страхуют от ошибок, и тесты на данный момент являются основным инструментом. Поэтому мы так и проводим равенство, что пуленепробиваемый код - это тот код, который тестами покрыт на 100%. Других средств для этого тебе точно не хватит. В C++ многие вещи есть, например, так там ошибок всё равно миллион в каждом проекте. И там всё равно нужно юнит-тесты писать, потому что без них код не будет пуленепробиваемым.

По именам там. В первой функции непонятно, чья боковая поверхность. Если эту функцию из кода вынуть и поставить её отдельно во Вселенной, то только по аргументу можно примерно предположить, что это про куб речь идёт. И при переименовании аргумента эта информация потеряется вообще. Поэтому мы слово cube используем только в имени функции, а из аргумента слово cube убираем.

Получится
  
def cube_lateral_area(edge):
    pass
 
def cube_volume(edge):
    pass
Всякие допольнительные слова мы стираем, потому что правильность английского, прямо вся, нужна в документации только. То есть мы пишем комментарии правильно, доки, спеки, мануалы. Остальное мы пишем так, чтобы было точно понятно, что это, и чтобы оно просто ни с чем не перепутывалось (с тем, что уже есть, и с тем, что, может быть, появится потом - через месяц, через год).



Отредактировано py.user.next (Май 7, 2021 16:16:05)

Офлайн

#6 Май 7, 2021 21:32:57

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

py.user.next
Ну да, вот ты с ошибкой и написала решение. Практики нет - хоп, ошибка.
Да, точно! ) Умножение вместо степени в cube_volume! )
Сейчас поправлю) Капец я растаяпа. Точно надо затренировывать такие задачки. Мне в глаза не бросилось.

Я хочу для практики тесты и к простым писать сейчас, чтобы навык до автоматизма довести и библиотеку освоить хорошо, и кейсы уметь годные. Я так с гитом работать училась и с виртуальными окружениями. Коммитила всякую фигню, чтобы последовательность действий до автоматизма запомнилась и я в ступор не впадала при необходимости
Потому что для меня сейчас пуленепробиваемый покрытый тестами код выглядит магией. Я осознаю, что о многих кейсах, где сломается, я даже не подумаю сейчас. Знаний и опыта мало. Как с тем четным числом вместо 237. Тут или мне подскажут и носом ткнут, или додумаюсь, или нос расшибу.


py.user.next
По именам там. В первой функции непонятно, чья боковая поверхность.

Да!) И благодаря тебе я в полной мере осознала, как важно их.
Я сначала писала ну как давно на паскале учили, не вникая особо в нейминги:
  
def area(a):
    return 4 * a **2

или
  
for i in range(100):
    print(i ** 2)
Ну типа раз задачка разовая и мелочная, то мне же не мешает это решить ее. А потом, когда побольше задачки стала осиливать, то нейминг переменной или функции, или класса у меня вызывает боль и напряжение. Прям чуть ли не самая сложная часть решения стала. До сих пор вон фигню творю)
А у тебя прям реально максимально логично и просто. Я сначала cube прилепила к lateral_surface_area , но совсем поэма получилась: cube_lateral_surface_area
Записала себе в примеры и в конспект! )

Тут сразу спрошу, раз речь про доки зашла: я уже тренируюсь докстринги писать. Чтобы нарабатывать навык, а не потом страдать, как с именами. Это рано еще?
Примерно в таком духе:

  
def cube_lateral_area(edge):
    """Calculate area of a cube lateral surface using cube's edge size
 
    :argument: edge(int): size of cube edge
    :return: (int): a cube lateral surface area
    """
    return 4 * edge **2
Вот когда нет определенного имени переменной у того, что функция возвращает, но я хочу тип возвращаемого указать как правильно это сделать?
Я смотрела PEP 257 и там этот случай не включен.

py.user.next
Всякие допольнительные слова мы стираем, потому что правильность английского, прямо вся, нужна в документации только. То есть мы пишем комментарии правильно, доки, спеки, мануалы. Остальное мы пишем так, чтобы было точно понятно, что это, и чтобы оно просто ни с чем не перепутывалось (с тем, что уже есть, и с тем, что, может быть, появится потом - через месяц, через год).
Поняла, спасибо
Буду стараться правильно именовать.

А тут есть какая-то функция на форуме, чтобы сохранить тему в избранное. Я некоторые перечитываю и возвращаюсь к ним, но становится все сложнее их все не терять. Я нашла функцию подписки на тему, но это немного не то.

Отредактировано Ocean (Май 7, 2021 22:12:30)

Офлайн

#7 Май 7, 2021 23:00:30

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Вот решение первой задачи:

  
from math import sin
from math import cos
from math import log
from math import log10
x = 1
k = 3
el = 0.027
def calculate_a(x, k):
    a = k * sin(x) + cos(x)
    return a
def calculate_b(x, k, el):
    b = (el ** - 1/3 - x/6 ** 2) * log(k)
    return b
def calculate_y1(a, b):
    y1 = log10(abs(a - 2 * b))
    return y1
def calculate_y2(a, b):
    y2 = log10(abs(a - b * a))
    return y2
coefficient_a = calculate_a(x, k)
coefficient_b = calculate_b(x, k, el)
root_y1 = calculate_y1(coefficient_a, coefficient_b)
root_y2 = calculate_y2(coefficient_a, coefficient_b)
print(f'a = {coefficient_a}')
print(f'b = {coefficient_b}')
print(f'y1 = {root_y1}')
print(f'y2 = {root_y2}')

py.user.next
я не знаю, как ты это делаешь… Но ты снова прав)

эта “простая задачка”, но из учебного курса и это правда делает ее полезной:
1) в задании коварно дан коэф с именем l, который я не восприняла проблемой, глядя на само задание, но в процессе решения IDE мне напомнила, что это же ambiguous variable и нарушает договоренности о стиле кода! Теперь я это запомню осознанно, а не как “очередная помеха, через которую я продралась и побежала к следующей задаче”
2) мне пришлось вспомнить и проверить встроенные функции python и осознанно импортировать нужные логарифмы из math. Я с math оч оч мало практиковалась.

У меня восприятие задачек поменялось сильно с “дурацкая” и “простая” на “кто-то специально подобрал условие так, чтобы меня чему-то научить”.
Спасибо тебе, стало интереснее их решать)
Наверняка, что я не вижу еще десятки вещей, которым могла бы научиться из этой простой задачи. Но я больше не тороплюсь) Вернусь к этой задачке, когда я буду “завтрашняя” или “послезавтрашняя”)

У меня была еще одна группа “нелюбимых” задач: про побитовые операторы и переводы из одной системы счисления в другую. Я все осознала! Больше нет “нелюбимых” задач) Такое себе могут позволить только те, кто умеет все их правильно решать хахаха

py.user.next
Ты реально какую-то магию сотворил.
Я год не могла понять в чем проблема с Pycharm и почему он настройки проектов не сохраняет нормально. И сегодня я это пофиксила)

Отредактировано Ocean (Май 8, 2021 03:06:49)

Офлайн

#8 Май 8, 2021 09:14:46

Anyuta3
Зарегистрирован: 2021-05-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Велике Вам ДЯКУЮ!

Офлайн

#9 Май 8, 2021 10:10:42

Anyuta3
Зарегистрирован: 2021-05-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Скласти програму для розв'язування наведеного нижче завдання
двома способами, використовуючи: Придумати і задати вхідні дані так, щоб вибір був з 4-7 альтернатив.

Елементи рівностороннього трикутника пронумеровані таким чином: 1 — сторона а, 2 —радіус R1 вписаного кола (R1 = a√3/6), 3 — радіус R2 описаного кола (R2 = 2R1), 4 —площа S = a 2√3/4. Даний номер одного з цих елементів і його значення. Вивести значення інших елементів цього трикутника (у тому ж порядку).

Офлайн

#10 Май 8, 2021 13:30:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Ocean
Вот решение первой задачи:
   
from math import sin
from math import cos
from math import log
from math import log10
 
x = 1
k = 3
el = 0.027
 
def calculate_a(x, k):
    a = k * sin(x) + cos(x)
    return a
 
def calculate_b(x, k, el):
    b = (el ** - 1/3 - x/6 ** 2) * log(k)
    return b
 
def calculate_y1(a, b):
    y1 = log10(abs(a - 2 * b))
    return y1
 
def calculate_y2(a, b):
    y2 = log10(abs(a - b * a))
    return y2
 
coefficient_a = calculate_a(x, k)
coefficient_b = calculate_b(x, k, el)
root_y1 = calculate_y1(coefficient_a, coefficient_b)
root_y2 = calculate_y2(coefficient_a, coefficient_b)
print(f'a = {coefficient_a}')
print(f'b = {coefficient_b}')
print(f'y1 = {root_y1}')
print(f'y2 = {root_y2}')
Ну, неправильно решено.

Ocean
эта “простая задачка”, но из учебного курса и это правда делает ее полезной
Да, вот она как раз показывает тебе же самой, что ты не умеешь делать. Так ты узнаёшь, что ты не умеешь делать. Пока ты не делаешь, тебе кажется, что ты умеешь делать. Это вот разница между ожиданиями и реальностью. Поэтому и нужно их все прорешивать, чтобы банально свои пробелы знать, которые скрыты от тебя. Потому что из-за когнитивных искажений мозгу кажется, что он всё знает и всё умеет. А когда ты узнаёшь, что не умеешь, тебе, конечно, неприятно от этого, но при этом ты попадаешь в состояние “мне придётся научиться”. И тогда начинается старт обучения. Потом это неприятное состояние проходит - злость эта всякая, материть перестаёшь этот язык, эти примеры дурацкие. И потом в спокойном и чистом, просветлённом состоянии ты начинаешь учиться делать. И у тебя появляется шанс действительно научиться это делать,а не в фантазиях своих уметь это делать.

Радость от решённой задачки и написанной программки пройдёт, а останется вот эта программа с ошибками. И их надо будет исправлять потом, так как никто их не будет исправлять и сами они тоже не исправятся. Вот такие программки у тебя накопятся и нужно будет исправлять уже не одну, а сто таких программок. Это называется технический долг. И он будет только расти и давить на тебя. Тебе будет хотеться всё бросить. Поэтому с него надо заранее снимать слои, чтобы он как можно меньше был по весу. Чем меньше он весит, тем меньше он на тебя давит. Чем меньше он на тебя давит, тем больше у тебя сил на разработку остаётся. Тебе легче. А когда тебе легко, ты легко всё делаешь. Всё делается и тебе легко.



Отредактировано py.user.next (Май 8, 2021 13:37:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version