1. Создайте функцию , которая принимает целое число и возвращает сумму цифр целого числа 108 -> 9
2. Напишите функцию, которая будет принимать количество секунд и возвращать их в днях-часах-минутах-секундах.
91000 секунд = 1 день, 1 час, 16 минут, 40 секунд.
3 *. Создайте пакет 'figures', состоящий из трех подпакетов: 'triangle', 'circle', 'square'. В каждом подпакете будем иметь файл code.py, где создадим ряд функций:
для пакета 'circle': функции circle_perimeter() – вычисляет длину окружности, circle_area() – вычисляет площадь окружности. Еще заведем переменную default_radius = 5. Ее назначение – дефолтный радиус для окружности, если пользователь не введет свой. Обе функции принимают на вход только радиус.
для пакета 'triangle': функции triangle_perimeter() – вычисляет периметр треугольника, triangle_area() – вычисляет площадь фигуры. Дополнительно создадим три переменные (длины сторон треугольника): a = 7, b = 2, c = 8, которые также не будут видны при импорте. На вход функциям передается длина трех сторон (если пользователь ничего не введет, то используются значения по умолчанию).
для пакета 'square': функции square_perimeter() - вычисляет периметр квадрата, square_area() – вычисляет площадь фигуры. Дополнительная переменная a = 15 не доступна при импорте и принимается функциями, если пользователь не предоставил свои размеры стороны квадрата.
Answers & Comments
1. Вот функция Python, которая принимает целое число и возвращает сумму цифр:
```python
def sum_digits(n):
"""
Эта функция принимает целое число и возвращает сумму его цифр.
Args:
n: Целое число.
Returns:
Сумма цифр числа.
"""
sum = 0
while n > 0:
sum += n % 10
n //= 10
return sum
```
Вот несколько примеров использования функции:
```python
>>> sum_digits(123)
6
>>> sum_digits(456)
15
>>> sum_digits(789)
24
```
2. Вот функция Python, которая будет принимать количество секунд и возвращать их в днях-часах-минутах-секундах:
```python
def seconds_to_dhms(seconds):
"""
Convert seconds to days, hours, minutes, and seconds.
Args:
seconds: The number of seconds to convert.
Returns:
A tuple of (days, hours, minutes, seconds).
"""
days = seconds // 86400
hours = (seconds % 86400) // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
return (days, hours, minutes, seconds)
```
Например, если мы вызовем функцию с аргументом 91000, она вернет следующее:
```python
>>> seconds_to_dhms(91000)
(1, 1, 16, 40)
```
Это означает, что 91000 секунд эквивалентны 1 дню, 1 часу, 16 минутам и 40 секундам.
3. Вот код для пакета "figures":
```python
import math
# Package 'circle'
def circle_perimeter(radius):
"""Calculates the perimeter of a circle.
Args:
radius: The radius of the circle.
Returns:
The perimeter of the circle.
"""
return 2 * math.pi * radius
def circle_area(radius):
"""Calculates the area of a circle.
Args:
radius: The radius of the circle.
Returns:
The area of the circle.
"""
return math.pi * radius ** 2
# Package 'triangle'
def triangle_perimeter(a, b, c):
"""Calculates the perimeter of a triangle.
Args:
a: The length of one side of the triangle.
b: The length of another side of the triangle.
c: The length of the third side of the triangle.
Returns:
The perimeter of the triangle.
"""
return a + b + c
def triangle_area(a, b, c):
"""Calculates the area of a triangle.
Args:
a: The length of one side of the triangle.
b: The length of another side of the triangle.
c: The length of the third side of the triangle.
Returns:
The area of the triangle.
"""
s = (a + b + c) / 2
return math.sqrt(s * (s - a) * (s - b) * (s - c))
# Package 'square'
def square_perimeter(a):
"""Calculates the perimeter of a square.
Args:
a: The side length of the square.
Returns:
The perimeter of the square.
"""
return 4 * a
def square_area(a):
"""Calculates the area of a square.
Args:
a: The side length of the square.
Returns:
The area of the square.
"""
return a ** 2
```
Чтобы использовать этот пакет, импортируйте его как `import figures`, а затем вызовите функции, как показано ниже:
```python
>>> import figures
>>> figures.circle_perimeter(5)
31.41592653589793
>>> figures.circle_area(5)
78.53981633974483
>>> figures.triangle_perimeter(7, 2, 8)
17
>>> figures.triangle_area(7, 2, 8)
18.095048801688724
>>> figures.square_perimeter(15)
60
>>> figures.square_area(15)
225
```