Выберите все имена подходящие для переменной хранящей количество яблок

Обновлено: 15.09.2024

Переменная — это хранилище, в котором можно держать данные. Переменные похожи на именновые контейнеры — имена можно использовать для доступа к хранимым данным.

В коде ниже переменная num — это контейнер, в котором хранится значение 5 . Чтобы использовать или изменить значение переменной num , понадобится ее имя.

Как объявить переменную

Прежде чем использовать переменную, ее необходимо создать или иначе — объявить. В JavaScript для этого используют два ключевых слова: var и let . Оба они создают переменную.

В чем разница между var и let

Разница между объявлением переменной через var и let существует. Если сейчас она не очень понятна, не переживайте: мы обсудим эту тему позже на более глубоком уровне.

var let
используется в более старых версиях JavaScript новый способ объявляения переменных начиная с ES6 (ES2015)
создает переменную функциональной области видимости создает переменную блочной области видимости

Примечание. Мы рекомендуем использовать let для объявления переменных, но некоторые браузеры не поддерживают это ключевое слово. Проверить, где работает let, можно на странице JavaScript let browser support.

Как инициализировать переменную

После создания переменной в нее можно поместить данные — этот процесс называется инициализацией переменной. Для инициализации используют оператор присваивания = .

В этом коде мы присвоили значение 5 переменной x .

Переменную можно инициализировать и прямо при объявлении:

В JavaScript можно объявлять и инициализировать сразу несколько переменныз на одной строке:

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

В этом примере мы объявляем переменную x , но не инициализируем ее. Если вывести значение переменной x на экран, мы увидим undefined .

Как изменить значение переменной

Значение, которое хранится в переменной, можно изменить.

Переменная называется так именно потому, что ее значение может меняться.

Правила именования переменных

1. Имена переменных должны начинаться или с буквы, или с подчеркивания _ , или со знака доллара $ .

2. Имена переменных не могут начинаться с цифры.

3. JavaScript чувствителен к регистру, поэтому y и Y — разные переменные.

4. Нельзя использовать ключевые слова в качестве имени переменной.

Совет 1. Вы можете называть переменные как угодно, но лучше стараться давать переменным имя, которое описывает данные, которые в ней хранятся. Если вы используете переменную для хранения количества яблок, лучше использовать apples или numberOfApples , а не просто x или n .

Совет 2. В JavaScript имена переменных обычно пишут в camelCase, если они состоят из нескольких слов. Например, firstName , annualSalary и т.д.

Константы в JS

Для создания констант в JavaScript используют ключевое слово const .

Константы инициализируется сразу после объявления. Менять значение константы позже уже нельзя.

Примечание. const , как и let , появилось в JS только в ES6(ES2015), поэтому в старых версиях может быть недоступно. Узнать, поддерживает ли конкретный браузер const можно на странице JavaScript const browser support.

Совет. Константы стоит использовать, если вы уверены, что значение переменной не будет меняться на протяжении всей программы.

Теперь, когда вы знаете о переменных и константах, приступим к изучению типов данных, которые они могут хранить.

Как выбирать имена для переменных

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

Это было отличное чтиво, однако, когда статья подошла к концу, я внезапно понял, что эта задача, кажущаяся обычной, на самом деле очень сложная. Нам, программистам, часто бывает трудно выбирать имена для наших переменных, и не потому, что это сложно само по себе. Дело в том, что нам нужно, чтобы выбранные имена были понятными, описательными и достаточно поддерживаемыми для человека, который будет читать наш код.

Чтобы сэкономить силы и время, я во всех своих проектах выбираю имена для переменных в соответствии с несколькими простыми правилами. Сегодня я хочу поделиться ими с сообществом, чтобы и другие люди могли тратить меньше времени на обдумывание имен переменных.

Примечание: примеры кода, приведенные в этой статье, написаны на JavaScript, но подходят для любого языка, ведь речь идет только об именах.

Основные правила

Все переменные, функции, параметры и идентификаторы пишутся в camelCase. Константы пишутся в SCREAMING_CASE. Это важное разграничение, позволяющее с первого взгляда определять, какие переменные неизменяемы и по своей природе используются только для чтения.

В языках программирования, где неизменяемые переменные настоятельно поощряются (или даже являются обязательными), мы должны разграничивать неизменяемые переменные и истинные константы.

Любое статичное значение, не зависящее от пользовательского input или других динамичных значений, можно классифицировать как истинную константу. Например, значение PI это определенно истинная константа, поэтому ее имя должно писаться в SCREAMING_CASE. А camelCase используется для обозначения изменяемых и неизменяемых переменных, хранящих временных значения, псевдонимы, результаты вычислений и выходные данные, зависящие от выполнения программы.

[javascript]// Immutable Variables
const userInput = document.getElementsByTagName(‘input’)[0].value;
const hasDevto = /dev\.to/g.test(userInput);

// True Constants
const WEBSITE_NAME = ‘dev.to’;
const TAU = 2 * Math.PI;
[/javascript]

Но следует учитывать влияние контекста. Критерий разграничения неизменяемых переменных и истинных констант может меняться в зависимости от ситуации. Например, можно использовать SCREAMING_CASE для userInput, если он будет использоваться как статичное значение на протяжении всей работы программы (даже если он может отличаться при запуске программы на разных устройствах). В конечном итоге, лишь от программиста зависит, как проводить линию размежевания между неизменяемыми переменными и истинными константами.

Семантические типы данных

Числа, строки и объекты

В большинстве случаев при выборе имен для чисел, строк и отдельных объектов используются наиболее подходящие имена существительные в единственном числе.

[javascript]const usernameInputField = document.getElementById(‘username-field’);
const username = nameInputField.value;
const hypotenuse = Math.sqrt(a**2 + b**2);
const profileData = name: ‘Presto’,
type: ‘Dog’
>;[/javascript]

Булевы значения

[javascript]// Yes-or-no questions
const isDog = true;
const hasJavaScriptEnabled = false;
const canSupportSafari = false;
const isAdmin = false;
const hasPremium = true;

// Functions or methods that return booleans
// are also named in a similar fashion
function isOdd(num) < return Boolean(num % 2); >[/javascript]

Массивы и коллекции

Для имен массивов и прочих структур данных, напоминающих коллекции (например, Map и Set) используются наиболее подходящие имена существительные во множественном числе, записанные в camelCase.

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

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

[javascript]// We use plural or collective nouns for arrays.
const dogs = [ ‘Presto’, ‘Lucky’, ‘Sparkles’ ];

// We can use the singular form of the
// variable name of the array
// in callback functions.
dogs.forEach(dog => console.log(dog));

// We can also use it in `for…of` loops.
for (const dog of dogs)
console.log(dog);

// Here, we can use collective nouns
// for better readability.
const herdOfCows = [ ‘Bessie’, ‘Bertha’, ‘Boris’ ];
herdOfCows.forEach(cow => console.log(cow));
for (const cow of herdOfCows)
console.log(cow);[/javascript]

Функции

Имена функций выбираются в привязке к их действию. Поэтому они часто состоят из двух частей: переходного глагола и объекта, на который направлено действие этого глагола. Другими словами, имена функций обычно соответствуют формуле глагол + существительное. Это говорит нам о том, что имя является командой, т. е., функцией, которую мы можем вызывать при необходимости.

[javascript]function getSum(a, b) < return a + b; >
function findBanana(str) < return str.indexOf(‘banana’); >
function getAverage(numbers) const total = numbers.reduce((prev, curr) => prev + curr);
return total / numbers.length;
>[/javascript]

PowerShell, эквивалент Bash для Windows, это прекрасный пример языка, принудительно применяющего соглашение об именах для функций (или командлеты – как они называются в этом языке).

Приведенный ниже скрипт вычисляет общий объем памяти, выделенной для всех запущенных в настоящее время процессов Chrome. Синтаксис этого скрипта не самый дружественный, но в нем отлично видно обязательное использование формулы глагол + существительное для командлетов в PowerShell. Здесь задействованы только командлеты Get-Process, Where-Object и Measure-Object, но будьте уверены, что другие командлеты в PowerShell тоже соответствуют указанной формуле. Вот на этом сайте можно посмотреть их все.

Классы

Для имен классов используются подходящие характерные существительные, которые пишутся в PascalCase. При взгляде на такое имя мы понимаем, что это не такая же переменная, как все другие, записанные в camelCase. Это особая переменная, где хранятся определенные пользователем типы со специальными свойствами и методами.

[javascript]class User < >
class Admin extends User < >
class Moderator extends Admin < >
class Player extends User < >[/javascript]

Поля и методы классов

Поля классов именуются в соответствии с правилами относительно изменяемости и типов данных, о которых мы говорили ранее.

А вот имена для методов классов выбираются на манер имен для функций. Они тоже соответствуют формуле глагол + существительное, но в некоторых случаях в них может опускаться часть, описывающая объект действия (существительное). При этом подразумевается, что действие глагола направлено на экземпляр объекта класса, к которому принадлежит указанный метод.

// Number
this.level = 100;

// Boolean
this.isAdmin = false;

// Class Method (with noun)
initiateBattle()

// Class Method (without noun)
attack() < >
>[/javascript]

Заключение

Приведенный выше отрывок кода прекрасно суммирует все мои правила относительно выбора имен. Совершенно очевидно, что на них сильно повлияли грамматические правила и семантика английского языка. Благодаря их применению процесс именования переменных и использования их типов данных стал гораздо более интуитивным.

При желании мы могли бы просто добавить ко всем переменным приставки с сокращенной пометкой о типе данных. Но таким образом имена стали бы излишне многословными. Пример вы можете видеть ниже.

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

Язык программирования называется языком не без причины…

😂

Денис, но там видно, что они как бы цельные. Хотя можно и так предоложить, главное я до этого не додумался

Андрей Чмуриков


Андрей Чмуриков

Вадим Скасырский

Николай Вейтерский


Николай Вейтерский ответил Вадиму

Вадим Скасырский

Николай Вейтерский


Николай Вейтерский ответил Вадиму

🤔

Всё

Вадим Скасырский

Николай Вейтерский


Николай Вейтерский ответил Вадиму

Вадим Скасырский

🤔

Николай, почему? Если у меня есть четыре цифры значит их четыре, а не три

Andrew Smith


Andrew Smith ответил Николаю

Дмитрий Лихолетов

Если даже счет идет от 0 их все равно 4. Просто нумерация такая. Яблоко No 0, No 1, и т.д. При условии что это массив. Но камон их все равно 4))

Денис Стародынов


Денис Стародынов

Алексей Галаев

Евгений Данов


Евгений Данов

Артём Редкий


Артём Редкий

Александр Быкоа

Максим Бурнайкин

Евгений Данов


Евгений Данов ответил Александру

Максим Бурнайкин

Женя, запись числа не отражается на количестве предметов. 100b никто не произносит как "сто", потому что у нас в языке числительный из десятичной системы. Опять же, если ты хотел просто записать в двоичной системе, то для избежания путаницы указывай b. Однако количество всё равно четыре, хоть в чём считай.
А системы счисления — это только то, как человек записывает числа. Даже не компьютер записывает, ему-то запись не нужна, он их у себя хранит в своём представлении, запись чисел в том или ином виде нужна только человеку.

Евгений Данов


Евгений Данов ответил Максиму

система счисления это не то как люди записывают числа, а именно то как они что то считают, для тебя их 4 потому что ты привык считать 1 2 3 4, а для того кто считает по другому их количество будет другим, кол-во самих предметов конечно не изменится, но выше представлении о кол-ве будет разным

Максим Бурнайкин

Женя, изменятся порядковые номера, но количество не изменится. Можешь считать их как A, B, C, D, но от этого их количество не станет D.
И таки система счисления только для людей. Хоть ты считай как 15, хоть как 0xF, хоть как 1111b, хоть как 017, для компьютера это всегда 4 полевых транзистора с зярядом или что-то примерно такое, именно поэтому ты можешь написать 072 + 101b и получить правильный результат.

Количество — это абсолютное математическое понятие, оно не зависит от того, кто считает. Тебя могут попросить показать столько пальцев, сколько яблок на картинке, ты покажешь 4. Да, тебя с детства могли научить, что один палец называется "ноль", а отсутствие пальцев — "минус один", но это всего лишь сломанная терминология, потому что у тебя вся математика окажется сдвинутой. По сути, в этом случае меняется не математика, а язык, устный и письменный, но если не прибегать к терминам, то ты покажешь вот столько пальцев: | | | |, потому что пальцы не связаны с языком и обозначениямиИ что, автор утверждает, что у программистов сломан язык только потому, что в некоторых, даже не во всех, языках программирования массивы и смещения нумеруются с нуля?

На столе стоит две корзины с яблоками. Корзина a и корзина b. Введи количество яблок с клавиатуры. Затем поменяй содержимое корзин местами и выведи результат.
Например, если пользователь ввёл 5 и 7, то до обмена a=5, b=7, а после a=7 и b=5.
Задачу можно решить двумя способами:
с помощью дополнительной переменной
* используя математические преобразования.
Решение вида print('a = ' + str(b)) считается неверным.
Пример:
Введите число яблок в корзине "a": 10
Введите число яблок в корзине "b": 20
Меняем содержимое корзин местами и выводим результат. Теперь у нас:
a = 20
b = 10

a = input('Введите число яблок в корзине "a": ')
b = input('Введите число яблок в корзине "b": ')
a, b = b, a
print('a =', a)
print('b =', b)

Андрей Искусственный Интеллект (189614) Alexei Kulakov, ИМХО, не нужны. Значения вводятся, меняются местами, выводятся. Никаких арифметических операций с ними нет. Впрочем, для снятия претензий со стороны преподов можно заменить input(. ) на int(input(. ))

Выше все написали. Это банальное изменение названия для переменной. Так же можно с a = 15, b = a. В таком случае b будет равно a(15). Глянь этот цикл статей по изучению Python. Там есть статья, где работают с переменными. Ну и книгу The byte of Python неплохо бы почитать (в поиска на том сайте где эти статьи введи название книги).

Вот тебе "классический" способ решения с тремя переменными.

"Фирменный" способ Пайтона
a,b=b,a
- показан выше.

a = input('Введите число яблок в корзине "a": ')
b = input('Введите число яблок в корзине "b": ')
c=a;a=b;b=c
print('a =', a)
print('b =', b)

Читайте также: