- Python-сообщество
- Уведомления
- #1 Июнь 18, 2019 10:29:21
- Кавычки в input()
- #2 Июнь 18, 2019 10:52:49
- Кавычки в input()
- #3 Июнь 18, 2019 11:30:23
- Кавычки в input()
- #4 Июнь 18, 2019 12:33:31
- Кавычки в input()
- #5 Июнь 18, 2019 14:19:21
- Кавычки в input()
- Вывести в Label строку, содержащую кавычки
- Пользовательский ввод (input) в Python
- Чтение ввода с клавиатуры
- Преобразование вводимые данные
- Input() → int
- Input() → float
- Input() → list (список)
- Ввод в несколько переменных
- JavaScript: Кавычки
- Задание
- Работа со строками в современном JavaScript
- Авторизуйтесь
- Работа со строками в современном JavaScript
- Создание строк
- Примитивы
- Объекты
- Шаблонные строки
- Базовые шаблонные строки
- Теговые шаблоны
- Raw-строки в JavaScript
- Объединение строк
- Конкатенация строк
- Повторение строки
- Объединение строк
- Разделение строки
- Сравнение строк
- Равенство
- Чувствительность к регистру
- Работа с диакритическими знаками в строках JavaScript
- Больше / меньше
- True или false строки
- Сортировка строк
- Простой Array.sort()
- localeCompare
- Многострочные строки
- Отступы в строках
- Извлечение части строки
- Подстроки
- Одиночные символы
- Изменение регистра строки в JavaScript
- Удаление пробелов
- Поиск текста в строке
- Найти позицию подстроки
- Начинается с / заканчивается на
- Includes
- Регулярные выражения
- Замена символов в строке
Python-сообщество
Уведомления
#1 Июнь 18, 2019 10:29:21
Кавычки в input()
Доброго времени суток!
У меня есть вот такой код:
#2 Июнь 18, 2019 10:52:49
Кавычки в input()
Придумала, как обойти
#3 Июнь 18, 2019 11:30:23
Кавычки в input()
AliceCherry
Очень мило конечно, но это не так работает. От слова совсем. Видно что вы только познакомились с программированием и питоном в частности, поэтому сразу же сделали одну из самых распространенных ошибок.
Что бы ее не делать, нужно изучить основы программирования, без литературы не обойтись, методом проб и ошибок получится в лучшем случае очень долго.
Если проводить аналогию с вещами в обычном мире то мне кажется что вы пытаетесь засунуть в круглое отверстие квадрат такого же размера. Если его сточить до шара, то он пролезет в отверстие, но это не правильный путь
_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com
#4 Июнь 18, 2019 12:33:31
Кавычки в input()
JOHN_16
Видно что вы только познакомились с программированием и питоном в частности, поэтому сразу же сделали одну из самых распространенных ошибок.
Отредактировано AliceCherry (Июнь 18, 2019 12:34:43)
#5 Июнь 18, 2019 14:19:21
Кавычки в input()
Да. Дайте постановку задачи. Техническим языком
_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com
Отредактировано JOHN_16 (Июнь 18, 2019 14:23:27)
Источник
Вывести в Label строку, содержащую кавычки
Тут у меня неувязочка одна появилась.
Вот код:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как записать в string строку, содержащую кавычки
Dim teststr1 As String = «» мне надо в tsetstr1 записать строчку ввида .
Как в качесве константы указать строку, содержащую кавычки?
Вопрос следующий как в качесве константы указать строку содержащую кавычки. Например на case ‘ООО.
Вывести строку содержащую указанное слово
Помогите перевести вот этот код: var Str: string; i: byte; begin writeln(‘Введите.
Если я все правильно поняла, то вот:
Дана строка. Вывести строку, содержащую те же символы
Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.
Вывести строку, содержащую те же символы, но расположенные в обратном порядке.
помогите, пожалуйста, решить задачи на строки 1) Дана строка. Вывести строку, содержащую те же.
Вывести строку, содержащую те же символы, но расположенные в обратном порядке
Задано строку. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.
Источник
Пользовательский ввод (input) в Python
О бычно программа работает по такой схеме: получает входные данные → обрабатывает их → выдает результат. Ввод может поступать как непосредственно от пользователя через клавиатуру, так и через внешний источник (файл, база данных).
В стандартной библиотеке Python 3 есть встроенная функция input() (в Python 2 это raw_input() ), которая отвечает за прием пользовательского ввода. Разберемся, как она работает.
Чтение ввода с клавиатуры
Функция input([prompt]) отвечает за ввод данных из потока ввода:
s = input() print(f»Привет, !») > мир # тут мы с клавиатуры ввели слово «мир» > Привет, мир!
- При вызове функции input() выполнение программы приостанавливается до тех пор, пока пользователь не введет текст на клавиатуре (приложение может ждать бесконечно долго).
- После нажатия на Enter , функция input() считывает данные и передает их приложению (символ завершения новой строки не учитывается).
- Полученные данные присваиваются переменной и используются дальше в программе.
input() всегда возвращает строку :
s = input() print(type(s)) > 2 >
Также у input есть необязательный параметр prompt – это подсказка пользователю перед вводом:
name = input(«Введите имя: «) print(f»Привет,
📃 Более подробное описание функции из документации:
def input([prompt]): «»» Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a trailing newline before reading input. If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. On *nix systems, readline is used if available. «»» pass
Преобразование вводимые данные
Данные, введенные пользователем, попадают в программу в виде строки, поэтому и работать с ними можно так же, как и со строкой. Если требуется организовать ввод цифр, то строку можно преобразовать в нужный формат с помощью функций явного преобразования типов.
☝️ Важно : если вы решили преобразовать строку в число, но при этом ввели строку (например: test), возникнет ошибка:
ValueError: invalid literal for int() with base 10: ‘test’
На практике такие ошибки нужно обрабатывать через try except . В примере ниже пользователь будет вводить данные до тех пор, пока они успешно не преобразуются в число.
def get_room_number(): while True: try: num = int(input(«Введите номер комнаты: «)) return num except ValueError: print(«Вы ввели не число. Повторите ввод») room_number = get_room_number() print(f»Комната
Input() → int
Для преобразования в целое число используйте функцию int() . В качестве аргумента передаются данные которые нужно преобразовать, а на выходе получаем целое число:
age_str = input(«Введите ваш возраст: «) age = int(age_str) print(age) print(type(age)) > Введите ваш возраст: 21 > 21 >
То же самое можно сделать в одну строку: age = int(input(«Введите ваш возраст: «)) .
Input() → float
Если нужно получить число с плавающей точкой (не целое), то его можно получить с помощью функции float() .
weight = float(input(«Укажите вес (кг): «)) print(weight) print(type(weight)) > Укажите вес (кг): 10.33 > 10.33 >
Input() → list (список)
Если в программу вводится информация, которая разделяется пробелами, например, «1 word meow», то ее легко преобразовать в список с помощью метода split() . Он разбивает введенные строки по пробелам и создает список:
list = input().split() print(list) print(type(list)) > 1 word meow > [‘1’, ‘word’, ‘meow’] >
💭 Обратите внимание, что каждый элемент списка является строкой. Для преобразования в число, можно использовать int() и цикл for. Например, так:
int_list = [] for element in input().split(): int_list.append(int(element)) print([type(num) for num in int_list]) > 1 2 3 > [ , , ]
Ввод в несколько переменных
Если необходимо заполнить одним вводом с клавиатуры сразу несколько переменных, воспользуйтесь распаковкой:
В этом примере строка из input() разбивается по пробелу функцией split() . Далее применяется синтаксис распаковки – каждый элемент списка попадает в соответствующую переменную.
Все переменные после распаковки будут строкового типа. Преобразовать их (например в int) можно так:
a, b = [int(s) for s in input().split()] print(f»type a:
☝️ Важно : не забывайте обрабатывать ошибки:
- если введенных значений больше чем переменных, получите ошибку – ValueError: too many values to unpack (expected 3) ;
- если введенных значений меньше чем переменных, получите ошибку – ValueError: not enough values to unpack (expected 3, got 2) ;
- если преобразовываете в int, а вводите строку – ValueError: invalid literal for int() with base 10: ‘test’ .
В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из input и обрабатывать исключения.
Источник
JavaScript: Кавычки
Какие из этих пяти вариантов — строки?
С первыми двумя все понятно, это точно строки, мы уже работали с подобными конструкциями и говорили, что строки — это наборы символов.
Любой одиночный символ в кавычках — это строка. Пустая строка » — это тоже строка. То есть строкой мы считаем всё, что находится внутри кавычек, даже если это пробел, один символ или вообще отсутствие символов.
Ранее в уроках мы записывали строки в одинарных кавычках, но это не единственный способ. Можно использовать и двойные:
Представьте, что вы хотите напечатать строчку Dragon’s mother. Апостроф перед буквой s — это такой же символ, как одинарная кавычка. Попробуем:
Такая программа не будет работать. С точки зрения JavaScript, строчка началась с одинарной кавычки, а потом закончилась после буквы n. Дальше были символы s mother без кавычек — значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ‘); . Этот код синтаксически некорректен (это видно даже по тому, как подсвечен код).
Здесь нам помогут двойные кавычки. Такой вариант программы отработает корректно:
Теперь интерпретатор знает, что строка началась с двойной кавычки — значит, и закончиться должна на двойной кавычке. А одинарная кавычка внутри стала частью строки.
Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо делать в одинарных. Причем количество кавычек внутри самой строки не важно.
А что, если мы хотим создать такую строку:
В ней есть и одинарные и двойные кавычки. Как быть в этой ситуации? Нужно каким-то образом сказать интерпретатору считать каждую кавычку частью строки, а не началом или концом строки.
Для этого экранируют специальные символы. В нашем случае тот символ, который является признаком конца и начала строки, это либо одинарная кавычка, либо двойная, в зависимости от ситуации. Для экранирования используется обратный слеш \ .
Посмотрите внимательно: нам нужно было добавить \ для двойных кавычек, но не для одинарной (апостроф), потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.
А что, если нужно вывести сам обратный слеш? Точно так же, как и любой другой специальный символ, его надо экранировать самим собой.
Вопрос на самопроверку, что выведет этот код?
Задание
Напишите программу, которая выведет на экран:
Программа должна в точности вывести на экран именно эту фразу. Обратите внимание на кавычки в начале и в конце фразы:
Источник
Работа со строками в современном JavaScript
Авторизуйтесь
Работа со строками в современном JavaScript
Это руководство предназначено для того, чтобы охватить всё, что вам нужно знать о работе со строками в JavaScript.
Создание строк
По сути, в JavaScript есть две категории строк: строковые примитивы и объекты String.
Примитивы
Строковые примитивы создаются следующими способами:
Почти во всех случаях вы должны использовать один из этих методов для создания новой строки.
При определении строкового литерала можно использовать одинарные кавычки ( ‘ ‘ ) или двойные кавычки ( » « ).
Объекты
Вы можете создать объект String, используя ключевое слово new .
Единственное реальное преимущество объекта перед строковым примитивом состоит в том, что вы можете назначить ему дополнительные свойства:
Однако очень мало случаев, когда это полезно. Практически во всех случаях следует создавать строковый примитив.
Все знакомые вам методы строк являются частью объекта String, а не примитива.
Когда вы вызываете метод для строкового примитива, JavaScript оборачивает примитив в String-объект и вызывает метод этого объекта.
Шаблонные строки
Базовые шаблонные строки
Шаблонные строки позволяют объединять переменные и текст в новую строку с использованием более удобочитаемого синтаксиса.
ABBYY , Москва, можно удалённо , От 180 000 до 260 000 ₽
Вместо двойных или одинарных кавычек заключите строку в обратные кавычки и вставьте переменные, используя синтаксис $
Вы также можете включать выражения в шаблонные строки:
Сейчас браузеры очень хорошо поддерживают работу с шаблонными строками в JavaScript.
Вы также можете вкладывать шаблоны друг в друга, как показано в этом примере из MDN:
Теговые шаблоны
Теговые шаблоны позволяют создать функцию, которая парсит шаблонную строку.
Это может быть действительно мощным инструментом и наиболее наглядно демонстрируется на примере:
Представьте, что у нас есть функция censor() , которая удаляет любые оскорбительные слова в строке, введенной пользователем.
Когда мы хотим подвергнуть строку цензуре, мы можем вручную вызвать censor() для каждого введенного пользователем значения:
Или мы могли бы использовать теговые шаблоны.
Это позволяет нам написать функцию, которая принимает строковые значения из шаблонной строки и все выражения, используемые в шаблоне:
Обратите внимание, что в последней строке мы «тегаем» строку нашей функцией, добавляя ее перед шаблонной строкой, а не явно вызывая функцию censorStrings() .
Это означает, что теперь мы можем управлять шаблонной строкой и значениями внутри неё.
Первым аргументом теговой функции всегда является массив строк. Остальные аргументы представляют каждую переменную / выражение, используемые в шаблонной строке.
Это означает, что вы не обязательно будете знать, сколько аргументов ожидать в вашей функции «тегирования».
В этих случаях полезно поместить каждый из оставшихся аргументов в массив (используя синтаксис «rest»), чтобы вы могли их перебирать:
Теперь у нас есть доступ к шаблонной строке и отдельным аргументам. Мы можем отслеживать каждую переменную, используемую в строке:
Наконец, наша теговая функция должна вернуть обработанную строку.
Для этого мы просто объединяем исходный массив строк и массив (измененных) входных данных в новый массив.
Здесь мы делаем это с помощью .reduce() :
Наша теговая функция теперь готова, и ее можно использовать везде, где нам нужно цензурировать вводимые пользователем данные:
Теговая функция не обязательно должна возвращать строку.
Например, есть библиотеки для React, которые принимают шаблонную строку и возвращают компонент React.
Raw-строки в JavaScript
String.raw — это предопределенная теговая функция.
Она позволяет вам получить доступ к строке без обработки каких-либо значений после обратного слэша.
Например, при использовании строки, содержащей \ n с String.raw , вместо получения новой строки вы получите фактические символы \ и n :
Это может быть полезно (помимо прочего) для написания строк, в которых вам обычно приходится избегать большого количества символов обратного слэша, таких как пути к файлам:
При использовании string.raw символ \ экранирует последнюю обратную кавычку.
Это означает, что вы не можете заканчивать raw-строку символом \ следующим образом:
Объединение строк
Конкатенация строк
Вы можете объединить (или «конкатенировать») несколько строк, чтобы создать новую, используя символ + :
Этот подход также можно использовать для разделения создания строки на несколько строк для удобства чтения:
Вы также можете объединять строки с переменными (нестроковые переменные будут преобразованы в строки):
Чтобы создать новую строку, добавив ее в конец существующей, используйте += :
Вы также можете объединить строки и переменные с помощью метода string.concat(), но это не рекомендуется по соображениям производительности.
Вместо этого используйте операторы + или += как показано выше
Повторение строки
Метод repeat() в JavaScript возвращает новую строку, содержащую исходную строку, повторяющуюся несколько раз.
Вы можете использовать string.repeat() в следующих браузерах:
Объединение строк
Вы можете объединить массив строк в одну, используя метод .join() для массива.
По умолчанию элементы разделяются запятой:
Вы также можете указать строку, используемую для разделения элементов:
Передача пустой строки в string.join объединит элементы, между которыми ничего нет:
Когда toString() используется в массиве, он также возвращает список строк, разделенных запятыми.
Разделение строки
Вы можете разделить строку на массив с помощью метода split() .
Типичные варианты использования:
Превращаем предложение в массив слов, разбивая его по пробелам:
… или разделение многострочной строки на отдельные строки:
Вы также можете ограничить количество элементов, которые вы хотите вернуть из split() , передав необязательный второй параметр:
Если вам нужно преобразовать строку в JavaScript в массив символов учитывайте, что метод split() не работает для символов Unicode, которые представлены «суррогатными парами»:
В современных браузерах вместо этого можно использовать spread-оператор:
Сравнение строк
Равенство
Как вы знаете, что сравнивая два строковых примитива, вы можете использовать операторы == или === :
Если вы сравниваете строковый примитив с чем-то, что не является строкой, == и === ведут себя по-разному.
При использовании оператора == не-строка будет преобразована в строку. Это означает, что JavaScript попытается преобразовать его в строку перед сравнением значений.
Для строгого сравнения, когда не-строки не приводятся к строкам, используйте === :
То же самое верно и для операторов неравенства != и !== :
Если вы не знаете, что использовать, отдавайте предпочтение строгому равенству === .
При использовании объектов String два объекта с одинаковым значением не считаются равными строками в JavaScript:
Чувствительность к регистру
Когда требуется сравнение без учета регистра, обычно преобразуют обе строки в верхний или нижний регистры и сравнивают результат.
Однако иногда вам нужно больше контроля над сравнением. Об этом в следующем разделе …
Работа с диакритическими знаками в строках JavaScript
Диакритические знаки — это модификации буквы, например é или ž.
Возможно вы захотите указать, как они обрабатываются при сравнении двух строк.
Например, в некоторых языках принято исключать акценты при написании прописных букв.
Если вам нужно сравнение без учета регистра, простое преобразование двух строк в один и тот же регистр с помощью toUpperCase() или toLowerCase() не будет учитывать добавление / удаление акцентов и может не дать ожидаемого результата.
Если вам нужен более точный контроль над сравнением, используйте вместо него localeCompare:
Метод localeCompare позволяет указать «sensitivity» сравнения.
Здесь мы использовали base «sensitivity» для сравнения строк с использованием их «базовых» символов (что означает, что регистр и акценты игнорируются).
Поддержка localeCompare() браузерами:
Больше / меньше
При сравнении строк с использованием операторов и > JavaScript будет сравнивать каждый символ в «лексикографическом порядке».
Это означает, что они сравниваются по буквам в том порядке, в котором они появляются в словаре:
При сравнении строк с использованием строчные буквы считаются большими, чем прописные.
Это происходит потому, что JavaScript использует значение каждого символа в Unicode, где строчные буквы идут после прописных.
True или false строки
Пустые строки в JavaScript считаются равными false при сравнении с использованием оператора == (но не при использовании === )
Строки со значением являются «истинными», поэтому вы можете делать нечто подобное:
Сортировка строк
Простой Array.sort()
Самый простой способ отсортировать массив строк — использовать метод Array.sort() :
При сортировке массива строк они сравниваются с использованием «кода UTF-16» каждого символа.
В Unicode заглавные буквы находятся перед строчными.
Это означает, что строки, начинающиеся с заглавной буквы, всегда находятся перед строками, начинающимися со строчных букв:
Вы можете избежать такого поведения, сначала преобразовав все строки в один и тот же регистр, или используя localeCompare (см. ниже), что обычно более эффективно.
localeCompare
Использование localeCompare в качестве функции сортировки позволяет сравнивать строки без учета регистра:
Вы также можете использовать localeCompare , чтобы игнорировать диакритические знаки (например, акцент) при сортировке строк. См. дополнительную информацию в разделе «Работа с диакритическими знаками».
Многострочные строки
Вы можете добавлять новые строки, используя \n :
В шаблонной строке новые строки учитываются внутри обратных кавычек:
В шаблонных строках вы можете избежать разрывов строки, добавив \ в конце строки.
Отступы в строках
Вы можете добавить пробел в начало или конец строки, пока она не достигнет указанной длины, используя padStart() или padEnd() :
Вместо пробела вы можете дополнить целевую строку другой строкой, передав ее в качестве второго параметра.
Эта строка будет повторяться до тех пор, пока не будет достигнута целевая длина (строка будет обрезана, если она не помещается):
Поддержка padStart() и padEnd() браузерами::
Извлечение части строки
Подстроки
Эти методы принимают индекс первого символа, который вы хотите извлечь из строки.
Они возвращают все от этого символа до конца строки:
Второй (необязательный) аргумент — это символ, на котором вы хотите остановиться.
Этот последний символ не включается в вывод:
Итак, какой из них вы должны использовать?
Они очень похожи, но с небольшими отличиями:
- Если конечное значение выше начального, substring() «исправит» их, заменив их местами, но slice() просто вернет пустую строку.
- substring() обрабатывает отрицательный индекс как 0 . С slice () вы можете использовать отрицательное число для обратного отсчета от конца строки. Например, .slice(-3) вернет последние 3 символа строки.
Также существует метод substr(), похожий на slice() и substring().
Это устаревший API. Хотя вряд ли он будет использоваться в ближайшее время, для работы со строками в JavaScript вам следует использовать один из двух вышеупомянутых методов, где это возможно.
Одиночные символы
Метод charAt() возвращает определенный символ из строки (помните, что индексы начинаются с 0):
Вы также можете рассматривать строку как массив и обращаться к ней напрямую следующим образом:
Доступ к строке как к массиву может привести к путанице, когда строка хранится в переменной.
Использование charAt () более явное:
Изменение регистра строки в JavaScript
Вы можете сделать строку с заглавными буквами следующим образом:
Или все в нижнем регистре, например:
Эти методы обычно используются для преобразования двух строк в верхний / нижний регистр, чтобы выполнить их сравнение без учета регистра.
В зависимости от сравниваемых строк вам может потребоваться больший контроль над сравнением. Вместо этого рассмотрите возможность использования localeCompare.
Удаление пробелов
Следующие методы удаляют все пробелы, табуляции, неразрывные пробелы и символы окончания строки (например, \n ) из соответствующей части строки:
trimStart() и trimEnd() были введены в ES10 и теперь являются «предпочтительными» методами для использования в соответствии с этой спецификацией.
Однако на момент написания они не поддерживаются в браузере Edge.
Для совместимости во всех современных браузерах используйте trimLeft() и trimRight():
Поиск текста в строке
Найти позицию подстроки
Вы можете искать строку внутри другой строки в JavaScript с помощью indexOf() .
Этот метод вернет позицию первого упоминания искомой подстроки в строке или -1 , если подстрока не найдена:
Вы также можете использовать метод регулярных выражений search() , чтобы сделать то же самое:
Чтобы найти последнее вхождение поискового запроса, используйте lastIndexOf() :
Все эти методы вернут -1 , если подстрока не найдена в целевой строке.
Начинается с / заканчивается на
Вы можете использовать методы indexOf() , указанные выше, чтобы проверить, начинается ли строка с поискового запроса или заканчивается им.
Однако ES6 добавил для этого специальные методы:
Поддержка startsWith() и endsWith() браузерами:
Includes
Если вам не важна конкретная позиция подстроки и важно только, находится ли она вообще в целевой строке, вы можете использовать includes() :
Поддержка includes() браузерами:
Регулярные выражения
Чтобы найти первое совпадение регулярного выражения, используйте .search() .
Чтобы вернуть массив, содержащий все совпадения регулярного выражения, используйте match() с модификатором /g (global):
(использование match() без модификатора /g вернет только первое совпадение и некоторые дополнительные свойства, такие как индекс результата в исходной строке и любые именованные группы захвата)
Если вам нужна дополнительная информация о каждом совпадении, включая их индекс в исходной строке, вы можете использовать matchAll .
Этот метод возвращает итератор, поэтому вы можете использовать цикл for … of для результатов. Вы должны использовать регулярное выражение с модификатором /g/ в matchAll() :
Замена символов в строке
Вы можете использовать replace() для замены определенного текста в строке.
Первый аргумент replace() — это текст, который нужно найти и заменить, второй — текст, которым его нужно заменить.
Передача строки в качестве первого аргумента заменяет только первое совпадение:
Если вы хотите заменить все совпадения, вы можете передать регулярное выражение с модификатором ‘greedy’ ( /g ) в качестве первого аргумента:
ES2021 добавил replaceAll() , чтобы упростить замену всех совпадений:
Источник