Задача 1
Программа делает всё, что требовалось Афанасию: рассчитывает количество материала, необходимое для строительства восьми кубов. А если понадобится сделать три куба или десять?
Сделайте программу более универсальной, измените её так, чтобы в неё можно было передать не только сторону куба, но и количество кубов. Для этого понадобится второй аргумент в функции calc_cube()
Измените строку, в которой объявляется функция calc_cube(): добавьте второй аргумент (назовите его, например, amount).
В тех строках функции calc_cube(), где используется число кубов, используйте значение переменной amount.
В строке, которую печатает функция, выводится количество кубов; там тоже потребуется вывести значение переменной amount.
Моё решение
# Функция для вычисления периметра кубов.
def calc_cube_perimeter(side):
return side * 12
# Функция для вычисления площади кубов.
def calc_cube_area(side):
one_face = side * side
cube_area = one_face * 6
return cube_area
# Дополните объявление функции:
# теперь должна принимать два параметра -
# длину ребра куба и количество кубов.
# Функция для вычисления периметра куба.
def calc_cube_perimeter(side):
return side * 12
# Присвойте переменной one_cube_perimeter значение,
# которое вернёт функция calc_cube_perimeter() с аргументом 3:
# 3 метра - это длина ребра куба.
one_cube_perimeter = calc_cube_perimeter(3)
def calc_cube (side, amount):
# Вызываем функцию, рассчитывающую периметр
# и передаём в неё размер куба
one_cube_perimeter = calc_cube_perimeter(side)
# Здесь вместо многоточия должна стоять переменная,
# хранящая количество кубов, переданное во втором аргументе.
full_length = one_cube_perimeter * 8
full_length = one_cube_perimeter * amount
# Вызываем функцию, рассчитывающую площадь стекла
# и передаём в неё размер куба
one_cube_area = calc_cube_area(side)
# Здесь вместо многоточия должна стоять переменная,
# хранящая количество кубов, переданное во втором аргументе.
full_area = one_cube_area * 8
# В этой строке замените многоточие на переменную, хранящую количество кубов
print('Для', full_area, 'кубов понадобится палок (м):', full_length, 'и стекла (кв.м):', full_area)
# Для проверки работы кода вызываем функцию с двумя аргументами:
# 3 - это размер ребра куба,
# 2 - это необходимое количество кубов
calc_cube(3, 2)
Пишет ошибку за ошибкой.
Последняя
Traceback (most recent call last):
File "main.py", line 42, in <module>
NameError: name 'one_cube_area' is not defined
Помогите сделать!
Python
Задача 1 Яндекс практика (Python)
# Function to calculate the perimeter of the cubes.
def calc_cube_perimeter(side):
return side * 12
# Function to calculate the area of the cubes.
def calc_cube_area(side):
one_face = side * side
cube_area = one_face * 6
return cube_area
def calc_cube (side, amount):
# Call the function that calculates the perimeter
# and send in it the size of the cube
one_cube_perimeter = calc_cube_perimeter(side)
# Here instead of dots there should be a variable
# variable that stores the number of cubes passed in the second argument.
full_length = one_cube_perimeter * amount
# call the function that calculates the area of the glass
# and pass to it the size of the cube
one_cube_area = calc_cube_area(side)
# Here instead of dots there should be a variable
# variable that stores the number of cubes passed in the second argument.
full_area = one_cube_area * amount
# In this line replace the ellipsis with a variable storing the number of cubes
print('For', amount, 'cubes you will need sticks (m):', full_length, 'and glass (sqm):', full_area)
# To check how the code works, we call a function with two arguments:
# 3 is the size of the cube edge,
# 2 is the required number of cubes
calc_cube(3, 2)
Оформите в блок кода < >, читать невозможно
Также не автоформатируется при копировании из-за обилия комментариев...
Ошибка простейшая, вы где-то обращаетесь к переменной вне функции, объявленной в функции, наверняка
Также не автоформатируется при копировании из-за обилия комментариев...
Ошибка простейшая, вы где-то обращаетесь к переменной вне функции, объявленной в функции, наверняка
Примерно так это выглядит:
def cube_perimeter(side):
return side*12 #TAB HERE
def cube_area(side):
return side*side*6 #TAB HERE
def full_area(side, amount):
return cube_area(side) * amount #TAB HERE
def calc_cube(side, amount):
print('Для', amount, 'кубов понадобится палок (м):', cube_perimeter(side), 'и стекла (кв.м):',full_area(side, amount)) #TAB HERE
calc_cube(3, 2)
def cube_perimeter(side):
return side*12 #TAB HERE
def cube_area(side):
return side*side*6 #TAB HERE
def full_area(side, amount):
return cube_area(side) * amount #TAB HERE
def calc_cube(side, amount):
print('Для', amount, 'кубов понадобится палок (м):', cube_perimeter(side), 'и стекла (кв.м):',full_area(side, amount)) #TAB HERE
calc_cube(3, 2)
Обухов Вадим
Traceback (most recent call last):
File "main.py", line 13, in <module>
File "main.py", line 12, in calc_cube
NameError: name 'cube_perimeter' is not defined
Выдаёт ошибку
File "main.py", line 13, in <module>
File "main.py", line 12, in calc_cube
NameError: name 'cube_perimeter' is not defined
Выдаёт ошибку
Расскажите, пожалуйста, как называется ваше направление?
Обухов Вадим
Python разработчик
Dimitrii
Рекомендую очень познакомиться с рекурсивными функциями. Алгоритм вычисления факториала, задача "Хайноские башни". Рекурсивные функции они очень сложные для восприятия, но как изучите, то считайте научились думать как программист.
Ну гр
Похожие вопросы
- Помогите решить задачу в яндекс-практикуме Python
- Помогите решить задачу в яндекс-практикуме Python
- Помогите пожалуйста решить задачу "Ход конём" в Python.
- Как пройти в яндекс практикуме python урок 6 (счетчики)?
- Помогите пожалуйста сделать задание в Яндекс.практикум Python. Завис на задании.
- Задача «Ход слона» для Python
- ОЧЕНЬ СРОЧНО!! Задача из тестирования по python, я не успеваю
- Помогите, пожалуйста, с задачей Python , Яндекс практикум.
- Решение задач по python
- Помогите, пожалуйста, решить задачу Python
Ответ: Для 432 кубов понадобится палок (м): 72 и стекла (кв.м): 432
а должен быть: Для 2 кубов понадобится палок (м): 72 и стекла (кв.м): 108
def calc_cube_perimeter(side):
return side * 12
# Функция для вычисления площади кубов.
def calc_cube_area(side):
one_face = side * side
cube_area = one_face * 6
return cube_area
def calc_cube_perimeter(side):
return side * 12
one_cube_perimeter = calc_cube_perimeter(3)
def calc_cube (side, amount):
one_cube_perimeter = calc_cube_perimeter(side)
full_length = one_cube_perimeter * 8
full_length = one_cube_perimeter * amount
one_cube_area = calc_cube_area(side)
full_area = one_cube_area * 8
print('Для', full_area, 'кубов понадобится палок (м):', full_length, 'и стекла (кв.м):', full_area)
# Для проверки работы кода вызываем функцию с двумя аргументами:
# 3 - это размер ребра куба,
# 2 - это необходимое количество кубов
calc_cube(3, 2)