Основы: Работа с числами, форматирование строк, переменные и константы

Alexey 02.12.2020 0 Обработка текста в консоли и консольные текстовые редакторы printf, обработка текста, форматирование

Ошибка «bash: printf: …: недопустимое число»

Если при использовании printf вы столкнулись с ошибкой «недопустимое число», например:

bash: printf: : недопустимое число

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

Суть в том, что в разных странах в качестве десятичной точки используется либо точка, либо запятая. В компьютере принимаемый в качестве десятичной точки символ зависит от локали ОС. Если вы получили указанную ошибку, то просто попробуйте заменить точку в числе на запятую (или наоборот, запятую на точку), например, вместо числа используйте чисто 3,14156295.

Связанные статьи:

  • Как добавить нули до определённого размера строки (74.4%)
  • Как отфильтровать текст, находящийся между двумя определёнными строками (57.3%)
  • Как добавить строку в начало или в конец каждой строчки (57.3%)
  • Как сделать замену от совпадения до конца строки (57.3%)
  • Примеры команды Sed (50%)
  • Как отформатировать XML в командной строке чтобы он стал удобным для чтения (RANDOM — 50%)

Дополнение к уроку

Неизменяемость

В JavaScript строки являются неизменяемыми, так же говорят "immutable". Это означает, что какие бы вы к ним не применяли функции, они не производят in-place замены (то есть не производят изменения самой строки). Любые строковые функции, примененные к строкам, возвращают новую строку. Это верно и в том случае, когда мы обращаемся к конкретному символу в строке.

Читайте также:  Что делать, если сильно шумит микрофон

Пример:

const str = hello; str.toUpperCase(); // HELLO console.log(str); // => hello str[].toUpperCase(); // H console.log(str); // => hello str[] = W; console.log(str); // => hello

Лексикографический порядок

Лексикографический порядок — это, другими словами, алфавитный порядок. Такой порядок используется в словарях, телефонных справочниках, записных книжках и так далее.

В JavaScript вы можете сравнивать строки с помощью > и <, и сравнение будет происходить именно лексикографически.

Помните, '8' это не число, а строка.

Интерполяция

Кроме одиночных '' и двойных кавычек "", современный JavaScript содержит обратные тики (backticks):

С обратными тиками вы можете использовать интерполяцию, вместо конкатенации. Вот, смотрите:

const name = «Alex«; const a = 10; const b = 12; console.log(`His name was ${name} and his age was ${a + b}`);

Такой код выведет на экран His name was Alex and his age was 22. Внутрь ${} вы можете поместить любое выражение.

Интерполяция предпочтительнее конкатенации. Мы советуем не использовать конкатенацию вообще. Вот некоторые из причин:

  • Такой код заставляет больше думать, потому что синтаксически + больше смахивает на сложение.
  • Из-за слабой типизации можно легко получить не тот результат. Конкатенация может породить ошибки.
  • Сложные строки при использовании конкатенации невозможно нормально разобрать в голове и понять, как они устроены.

Константы и переменные в Go

Вычисления в предыдущей программе осуществлены над числовыми литералами. Не совсем понятно, что именно означают числа, к примеру значения вроде Иногда программисты говорят о числовых литералах как о магических числах. Константы и переменные могут значительно помочь, предоставив говорящие за себя названия.

Убедившись в преимуществах жизни на Марсе, можно приступить к расчету времени, что потребуется на путешествие. Скорость света была бы идеальной. Такие поездки осуществляются в вакууме на постоянной скорости, что упрощает вычисления. С другой стороны, расстояние от Земли до Марса может значительно отличаться в зависимости от того, в данный конкретный момент времени планеты находятся на солнечной орбите.

Читайте также:  Linux Mint 19.3 Wine – запускаем приложения Windows

В следующей программе представлено два новых ключевых слова, const и var, что нужны для объявления констант и переменных соответственно:

Go // Сколько времени нужно для путешествия на Марс? package main import «fmt» func main() { const lightSpeed = 299792 // км/с var distance = 56000000 // км (distance/lightSpeed, «секунд») // В результате 186 секунд distance = 401000000 (distance/lightSpeed, «секунд») // В результате 1337 секунд }

1234567891011121314 // Сколько времени нужно для путешествия на Марс?package main import «fmt» func main() { const lightSpeed = 299792 // км/с var distance = 56000000 // км fmt.Println(distance/lightSpeed, «секунд») // В результате 186 секунд distance = 401000000 fmt.Println(distance/lightSpeed, «секунд») // В результате 1337 секунд }

Проверьте работоспособность кода на Go Playground, нажав для запуска кнопку Run. Скорость света и правда удобна. Никто не успеет спросить: «Когда мы будем на месте?»

Первое вычисление основывается на том, что Марс и Земля находятся рядом. Объявляется переменная distance, которой присваивается значение в 56,000,000 км. Затем переменной distance присваивается новое значение в 401,000,000 км, что является расстоянием между планетами в тот момент, когда они находятся на противоположных концах солнечной орбиты. Хотя, в реальной жизни пролететь сквозь Солнце вряд ли получится.

Константы и переменные в Go

На заметку: Константу lightSpeed изменить нельзя. При попытке присвоить ей новое значение компилятор Go выдаст ошибку «cannot assign to lightSpeed».

Переменные должны быть объявлены перед их использованием. Golang выведет ошибку при попытке присвоить значение переменной, которая не была объявлена через var. К примеру, speed = 16. Это ограничение помогает избежать ошибок случайного присваивания значений не тем переменным. В таком случае сразу можно заметить опечатки вроде случайно введенного distence вместо distance.

Вопросы для проверки:

  1. Межпланетной Транспортной Системе SpaceX явно не хватает варп-двигателя, но он может добраться до Марса на скорости 100 800 км/ч. Поездка запланирована на Январь 2025 года. Расстояние между Марсом и Землей в это время будет равно 96 300 000 км. За сколько дней астронавты долетят до Марса?
  2. Продолжительность земных суток равна 24 часам. При написании программы дайте данным 24 часам понятное название, какое ключевое слово вы используете?
Читайте также:  iOS 12: пять основных улучшений для iPhone и iPad

Ответы на вопросы

  1. Конечно, космические корабли не передвигаются по строгой прямой, но в теории полет подобного рода занял бы 39 дней. Go const hoursPerDay = 24 var speed = 100800 // км/ч var distance = 96300000 // км (distance/speed/hoursPerDay, «дней»)
    123456 const hoursPerDay = 24var speed = 100800// км/чvar distance = 96300000 // км fmt.Println(distance/speed/hoursPerDay, «дней»)
  2. В данном случае нужно использовать ключевое слово const, так как по ходу программы это значение не меняется.
  1. Конечно, космические корабли не передвигаются по строгой прямой, но в теории полет подобного рода занял бы 39 дней. [crayon-603fc9132bd9f071414710/]
  2. В данном случае нужно использовать ключевое слово const, так как по ходу программы это значение не меняется.

Что будет выведено на экран в результате работы программы?

for (int ii = 0; ii < 3; ++ ii) { switch (ii) { case 0: cout << «»ZERO»»

Похожие ответы, выполненные работы

  • Программирование на языке C в Microsoft Visual Studio 2010
  • Язык программирования C++
  • C#_ основы
  • Программирование на языке высокого уровня C#
  • Язык программирования C++ для профессионалов
  • Структуры и алгоритмы компьютерной обработки данных
  • C#_ ООП и классы
  • Лабораторная работа по дисциплине…
  • Программирование на языке высокого уровня Паскаль
  • Программирование на языке С++ в среде Qt Creator