Skip to content

Instantly share code, notes, and snippets.

@Ruthenus
Last active December 19, 2024 19:37
Show Gist options
  • Save Ruthenus/36ab9109fd91325638ce7b3adce822c3 to your computer and use it in GitHub Desktop.
Save Ruthenus/36ab9109fd91325638ce7b3adce822c3 to your computer and use it in GitHub Desktop.
Week 2 Homework in IT STEP Academy (variables tasks)
# Складні задачі з обробкою даних
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ IV.1\n')
# Розрахувати загальну масу всіх планет Сонячної системи. Обчислити
# середнє арифметичне мас планет. Потім — масу кожної планети в
# процентному співвідношенні, якщо взяти за 100% загальну масу всіх
# планет. У скільки разів маса найбільшої планети більша, ніж сума мас
# усіх інших планет? Усі результати — показати на екрані.
# РОЗВ'ЯЗОК БЕЗ ЗАСТОСУВАННЯ СПИСКУ АБО СЛОВНИКА!
# Маси планет — з англомовної Вікіпедії:
mercurius = 3.3011E+23 #kg
venus = 4.8675E+24 #kg
tellus = 5.972168E+24 #kg
mars = 6.4171E+23 #kg
iuppiter = 1.8982E+27 #kg
saturnus = 5.6834E+26 #kg
uranus = 8.6810E+25 #kg
neptunus = 1.02409E+26 #kg
# У 2006 році Міжнародний астрономічний союз офіційно перевизначив
# термін планета, щоб виключити карликові планети, такі як як Плутон.
# Загальна маса всіх планет:
mass_sum = (mercurius + venus + tellus + mars + iuppiter + saturnus
+ uranus + neptunus)
# Маса найбільшої планети:
mass_max = max(mercurius, venus, tellus, mars, iuppiter, saturnus,
uranus, neptunus)
# Сума мас усіх інших планет, окрім найбільшої:
mass_others = mass_sum - mass_max
print(f"Обчислюємо середнє арифметичне мас планет: {int(mass_sum/8)} кг.")
print("Найближчий до Сонця Меркурій важить лише "
+ f"{mercurius/mass_sum*100:.3f}% загальної маси.")
print("Планета Венера, найбільш схожа на Землю, має "
+ f"{venus/mass_sum*100:.3f}% загальної маси.")
print(f"Отже, маса планети Земля становить {tellus/mass_sum*100:.3f}%"
+ " загальної маси.")
print("Маса решти планет Сонячної системи відносно загальної маси:")
print(f"\tМарс — {mars/mass_sum*100:.3f}%,")
print(f"\tЮпітер — {iuppiter/mass_sum*100:.1f}%,")
print(f"\tСатурн — {saturnus/mass_sum*100:.1f}%,")
print(f"\tУран — {uranus/mass_sum*100:.2f}%,")
print(f"\tНептун — {neptunus/mass_sum*100:.2f}%.")
print(f"Юпітер, найбільша планета, важить у {mass_max/mass_others:.1f}"
+ " рази більше усіх інших планет разом узятих.")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ IV.2\n')
# Ввести довжину, ширину та висоту кімнати. Підрахувати, скільки фарби
# піде на фарбування стін цієї кімнати, якщо на 1 м² стіни припадає N
# літрів фарби і M% поверхні стін займають вікна та двері.
# Розрахувати загальну вартість фарби, враховуючи, що один літр фарби
# коштує R гривень.
length = float(input("Будь ласка, введіть довжину кімнати у метрах: "))
width = float(input("Введіть ширину кімнати, м: "))
height = float(input("Введіть висоту кімнати, м: "))
m = input("Який приблизно відсоток поверхні стін займають вікна і двері?: ")
m = int(m)
# Фарба Інтер'єрна Латексна Skyline 0603-Y20R Вершковий 10 л
# https://rozetka.com.ua/ua/skyline_1840180615_rozetka/p386912958/
# Витрата 100-150 мл/м2
n = 0.250 # у разі фарбування у 2 шари
r = float(input("Вартість фарби з вашою знижкою, ₴: ")) # 1796₴ за 10 л
r = r/10 # позначення R гривень вартості 1 л фарби за умовою задачі
# Площа поверхні стін без вікон та дверей:
wall_surface = 2 * (length+width) * height * (1 - m/100)
# Потрібна кількість фарби:
amount = wall_surface * n
# Загальна вартість фарби:
cost = r * amount
print(f"Щоб пофарбувати стіни кімнати, вам потрібно {amount:.1f} л " +
f"фарби загальною вартістю {cost:.2f} гривень.")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
# Завдання на роботу з числами та рядками
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ III.1\n')
# Ввести з клавіатури два тризначних числа та
# поміняти у них середні цифри.
number_one = input("Введіть перше ціле число від 100 до 999: ").strip()
# видалили можливі зайві пробіли!
try:
# спробуємо виокремити тризначне число в разі помилки користувача:
number_one = int(number_one[0:3])
except ValueError:
print("ПОМИЛКА: введено текст або дробове число!")
number_one = str(number_one)
number_two = input("Введіть друге ціле число від 100 до 999: ").strip()
try:
number_two = int(number_two[0:3])
except ValueError:
print("ПОМИЛКА: введено текст або дробове число!")
number_two = str(number_two)
new_number_one = number_one[0] + number_two[1] + number_one[2]
new_number_two = number_two[0] + number_one[1] + number_two[2]
print(f"РЕЗУЛЬТАТ: {new_number_one} & {new_number_two}")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ III.2\n')
# Ввести чотиризначне число і підрахувати суму першої та третьої цифри
# та різницю між другою та четвертою цифрою.
number = input("Введіть ціле число від 1000 до 9999: ").strip()
try:
number = number[0:4]
sum_1_3 = int(number[0]) + int(number[2])
dif_2_4 = int(number[1]) - int(number[3])
print(f"Сума першої та третьої цифр дорівнює {sum_1_3}.")
print(f"Різниця другої та четвертої цифр дорівнює {dif_2_4}.")
except ValueError:
print("ПОМИЛКА: введено текст або дробове число!")
print('–' * 80 + '\n')
""" # ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ III.3\n')
# Ввести з клавіатури тризначне число та видалити з нього середню цифру.
number = input("Введіть ціле число від 100 до 999: ").strip()
try:
number = str(int(number[0:3]))
print('РЕЗУЛЬТАТ:', number[0:3:2]) # друк цифр через одну
except ValueError:
print("ПОМИЛКА: введено текст або дробове число!")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ III.4\n')
# Напишіть програму, яка пропонує користувачеві ввести суму грошового
# вкладу в гривнях, а також процент річних, які виплачує банк.
# Визначити суму грошей, яку виплачуватиме банк вкладникові
# кожного місяця.
# https://ap-bank.com/news/post/yak-rozrahuvaty-prybutok-vid-depozytu
try:
deposit = float(input('Розмір гривневого депозиту? '))
rate = float(input('Річна ставка? '))
payment = deposit * (rate/100) / 12
print(f"Ваш щомісячний прибуток складатиме {payment:.2f}₴.")
except ValueError:
print("ERROR: БУДЬМО УВАЖНІ!")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ III.6\n')
# Ввести з клавіатури тризначне число та «перевернути» його.
number = input("Введіть тризначне число: ")
# Виконуємо обернення послідовності будь-яких символів:
print(number[::-1])
# Python. Довідник програміста/Марк Лутц; пер. з англ. І.В. Красікова.
# – Київ.: "Науковий світ", 2024. – С. 30.
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
# Завдання на роботу з числами та обчисленнями
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.1\n')
# Напишіть програму, яка знаходить середнє арифметичне значення
# трьох введених дробових чисел.
number_one = float(input("Введіть перше число: "))
number_two = float(input("Введіть друге число: "))
number_three = float(input("Введіть третє число: "))
accuracy = int(input("Кількість знаків після коми в результаті? "))
average = (number_one+number_two+number_three) / 3
print('СЕРЕДНЄ АРИФМЕТИЧНЕ:', round(average, accuracy))
# Функція round() відсікає нулі наприкінці!
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.2\n')
# Користувач вводить число та ступінь.
# Програма обчислює вказану ступінь цього числа.
try:
number = float(input("Будь ласка, введіть число: "))
power = float(input("До якого ступеня піднести число? "))
accuracy = int(input("Кількість знаків після коми в результаті? "))
result = number ** power
print(f"{number}^{power} = {round(result, accuracy)}")
except ValueError:
print("ЩОСЬ ПІШЛО НЕ ТАК!")
# Будь ласка, введіть число: -1
# До якого ступеня піднести число? 0.5
# Кількість знаків після коми в результаті? 5
# Traceback (most recent call last):
# File "...Week 2 Homework.py", line 214, in <module>
# print(f"{number}^{power} = {round(result, accuracy)}")
# ~~~~~^^^^^^^^^^^^^^^^^^
# TypeError: type complex doesn't define __round__ method
except TypeError:
print(f"{number}^{power} = {result}")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.3\n')
# Напишіть програму, яка пропонує користувачеві ввести радіус
# окружності, а потім обчислює площу та довжину цієї окружності.
# Число Pi задається в програмі як дійсна константа.
# Константи зазвичай пишуться великими літерами.
PI = 3.1415926535_8979323846_2643383279_5028841971_6939937510_5820974944
radius = float(input("Введіть радіус кола: "))
area_circle = PI * radius ** 2
circumference = 2 * PI * radius
print('ПЛОЩА КРУГА:', area_circle)
print('ДОВЖИНА КОЛА:', circumference)
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.4\n')
# Напишіть програму, яка надає користувачеві можливість ввести з
# клавіатури кількість гривень і переводить цю кількість у долари,
# євро та біткоїни.
# https://minfin.com.ua/ua/currency/mb/
usd_uah = 41.69 # продаж 10 грудня
eur_uah = 43.8578 # продаж 10 грудня
# https://www.binance.com/uk-UA/price/bitcoin/UAH
btc_uah = 4_072_426.71
try:
money = float(input('UAH: '))
dollars = money / usd_uah
print(f"USD: {dollars:.2f}")
euros = money / eur_uah
print(f"EUR: {euros:.2f}")
bitcoins = money / btc_uah
print(f"BTC: {bitcoins}")
except ValueError:
print("СЧИТАЙТЕ ДЕНЬГИ НЕ ОТХОДЯ ОТ КАССЫ!")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.5\n')
# Напишіть програму, яка переводить кілометри в сухопутні та
# морські милі.
# https://uk.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D1%8F
# 1 миля (статутна) = 1760 ярдів = 5280 футів = 1609,344 м
STATUT_MILE = 1.609344 #km 1 mi
# 1 морська миля (чверть) = 1852 м
NAUTICAL_MILE = 1.852 #km 1 nmi
kilometres = float(input("Скільки кілометрів? "))
statut_miles = kilometres / STATUT_MILE
nautical_miles = kilometres / NAUTICAL_MILE
print(f"Пане штурмане, {kilometres:.3f} km = {nautical_miles:.3f} nmi = " +
f"{statut_miles:.3f} mi.")
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
"""# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ II.6\n')
# Поміняти місцями значення змінних a і b, спочатку за допомогою
# додаткової третьої змінної, а потім без.
a = input("Введіть значення змінної a: ")
b = input("Введіть значення змінної b: ")
print("\nМіняємо місцями значення змінних a і b двома способами:")
c = a
a = b
b = c
print('a =', a)
print('b =', b)
a, b = b, a # повернули початкові значення
a, b = b, a
print('a =', a)
print('b =', b)
print('–' * 80 + '\n')
"""# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
# Завдання на базові операції та введення/виведення
# НИЖЧЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
print('\tЗАВДАННЯ I.4\n')
# Користувач вводить з клавіатури температуру по шкалі Цельсія. Треба
# перевести температуру в градуси по Фаренгейту і вивести на екран.
# https://www.rapidtables.com/convert/temperature/celsius-to-fahrenheit.html
celsius = float(input("Температура в градусах Цельсія: "))
fahrenheit = 32 + celsius * 9 / 5
print(f"Температура в градусах Фаренгейта: {fahrenheit:.2f}")
print(f"\n{celsius:.2f} °C = {fahrenheit:.2f} °F")
print('–' * 80 + '\n')
# ВИЩЕНАВЕДЕНИЙ КОД ЗАПРАЦЮЄ, ЯКЩО ПРИБРАТИ ПОТРІЙНІ ЛАПКИ!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment