Skip to content

Instantly share code, notes, and snippets.

View kianurivzzz's full-sized avatar
👨‍💻

Nikita Karasyov kianurivzzz

👨‍💻
View GitHub Profile

JavaScript: Магические числа

Вспомним один из прошлых уроков:

let dollarsCount = 50 * 1.25; // 62.5
let rublesCount = dollarsCount * 60; // 3750

console.log(rublesCount);

С точки зрения профессиональной разработки, такой код «пахнет». Так описывают код, который сложен для понимания. И причина здесь вот в чем: уже сейчас, глядя на число 60 и 1.25, вы скорее всего задаетесь вопросом: «что это за числа?». А представьте, что будет через месяц! А как его поймет новый программист, не видевший код ранее? В нашем примере контекст восстанавливается благодаря грамотному именованию, но в реальной жизни код значительно сложнее, и догадаться до смысла чисел зачастую невозможно.

Домашнее задание

Задача 1

Задача: Скрабл

В настольной игре Скрабл (Scrabble) каждая буква имеет определенную ценность. В случае с русским алфавитом очки распределяются так:

  • A, E, I, O, U, L, N, S, T, R – 1 очко;
  • D, G – 2 очка;
<!-- Шаблон сайта с рассказом о себе -->
<!-- Напишите всё в файла index.html -->
<!-- Чтобы добавить базовую структуру напишитие восклицательный знак ! и нажмите Enter -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
import time
import random
import sys
import pygame
pygame.init()
WHITE = (255, 255, 255)
# part 1
import pygame
import sys
pygame.init()
window = pygame.display.set_mode((500,400)) #Задаём размер игрового поля.
pygame.display.update()
sys.exit()
# part 2
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tags atributes</title>
</head>
<body>
/*
1. Создайте папку в удобном месте компьютере
2. В этой папке создайте новый HTML-документ - index.html
3. Добавьте в index.html код снизу
4. Создайте новый CSS файл - style.css
5. В CSS файле в самом верху создайте селектор для тега body и напишите следующие стили - шрифт Arial, sans-serif, размер шрифта 16px, цвет текста #333, межстрочный отступ 1.5
6. В CSS файле создайте селектор для класса title, и напишите следующие стили - размер шрифта 40px, цвет текста #f03333, межстрочный отступ 1.2, все буквы заглавные
7. В CSS файле создайте селектор для класса subtitle, и напишите следующие стили - размер шрифта 30px, цвет текста #12ac11, межстрочный отступ 1.2, подчеркивание текста снизу
8. В CSS файле создайте селектор для класса list, и напишите следующие стили - размер шрифта 20px, цвет текста #444, все буквы наклонные, стиль маркеров списка - square
import hashlib
# Сохраняем пароль пользователя
my_pwd = input('Введите пароль: ').encode()
print(pwd)
my_pwd_hash = hashlib.md5(my_pwd).hexdigest()
print(hash_pwd)
# Сравниваем хеши введёного пароля с паролем пользователя
pwd = input('Введите пароль: ').encode()
simple_passwords = 200
hard_passwords = 700
broken_passwords = 530
all_passwrods = 0
for week in range(52):
all_passwrods += simple_passwords + hard_passwords - broken_passwords
print(f'Неделя {week + 1}: Невзломанных паролей: {all_passwrods}')
# Запрашиваем у пользователя число и сразу переводим строку в число, далее записываем в переменную
number = int(input('Введи положительное целое число: '))
# Создаём переменную для сохранения суммы чисел
sum_numbers = 0
# Цикл работает до тех пор, пока не закончится последовательность чисел.Размер последовательности зависит от введёного
# пользователем числа в переменную number
for i in range(number): # 0, 1, 2, 3...number
# Для красивого вывода используем f-строки. Просто подставляем значения переменных в фигурных скобках
print(f'{sum_numbers} + {i} = {sum_numbers + i}')