Как в питоне соединить одно число с рандомным?
А что вы вообще имеете ввиду под странным словом «соединить»?
Варианты ответа:
-просто сложить.
-написать оба числа одной строкой.
-написать два числа через символ «+»
-написать два числа одно за другим.
Дайте пример ожидаемого ответа.
Про то, какую роль тут играет рандомность второго числа — я даже вопроса не задаю.
Но программирования не терпит небрежности. А небрежность в программировании начинается с небрежно заданных вопросов. Уточните, что-бы получить корректный ответ.
Решения вопроса 0
Ответы на вопрос 1
У тебя :
a — это переменная , при выводе переменные содержащие числа используются без кавычек
Иначе говоря у тебя все правильно кроме 4 строчки
Вот как надо было :
import random a=2 randomnumber = random.randint(1000000000, 9999999999) print (a + str(randomnumber))
Объединение элементов списка: из цифр сделать целое число
Есть список gen = [1,2,3,4] Необходимо объединить элементы в число, чтобы получилось 1234 . У меня получилось так:
chislo = int(''.join((str(i) for i in gen)))
Нет ли способа проще, без преобразования типов?
Отслеживать
7,797 13 13 золотых знаков 25 25 серебряных знаков 55 55 бронзовых знаков
задан 14 дек 2016 в 11:15
user215403 user215403
21 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
Связанный вопрос: Convert list of ints to one number?
24 янв 2017 в 8:50
ассоциация: stackoverflow.com/questions/489999/…
2 мар 2017 в 14:28
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Чтобы последовательность цифр в число превратить:
digits = [1, 2, 3, 4] number = int(''.join(map(str, digits))) # -> 1234
Это близко к коду в вопросе и преобразует все цифры в строки, объединяет их в одну строку, которая преобразуется в целое число. Это уродливый (из-за преобразований туда-сюда: intstr ), но более быстрый способ для тысяч цифр по сравнению с reduce() решением ниже.
Можно обойтись без преобразований типа:
from functools import reduce number = reduce(lambda n, d: 10*n + d, digits)
где вместо reduce() можно явно цикл написать:
number = digits[0] for d in digits[1:]: number = 10 * number + d
number = 1 number = 10 * 1 + 2 = 12 number = 10 * 12 + 3 = 123 number = 10 * 123 + 4 = 1234
Python: Переменные и конкатенация
Попробуем использовать переменные с конкатенацией, при этом синтаксически ничего не поменяется. Мы умеем конкатенировать две строки:
what = "Kings" + "road" print(what) # => Kingsroad
Значит, мы сумеем склеить строку и одну переменную, в которой записана строка:
first = "Kings" what = first + "road" print(what) # => Kingsroad
А еще можно конкатенировать две переменные, в которых записаны строки:
first = "Kings" last = 'road' what = first + last print(what) # => Kingsroad
Переменные — важный инструмент в программировании. Они упрощают сложные вычисления и таким образом облегчают разработку. Но чтобы успешно работать с переменными, надо не только правильно использовать их, но и правильно называть. Об этом поговорим уже в следующем уроке.
Задание
Сайты постоянно посылают письма своим пользователям. Типичная задача — сделать автоматическую отправку персонального письма, где в заголовке будет имя пользователя. Если где-то в базе сайта хранится имя человека в виде строки, то задача генерации заголовка сводится к конкатенации: например, нужно склеить строку Здравствуйте со строкой, где записано имя.
Напишите программу, которая будет генерировать заголовок и тело письма, используя уже готовые переменные, и выводить получившиеся строки на экран.
Для заголовка используйте переменные first_name и greeting , запятую и восклицательный знак. Выведите это на экран в правильном порядке.
Для тела письма используйте переменные info и intro , при этом второе предложение должно быть на новой строке.
Результат на экране будет выглядеть так:
Hello, Joffrey! Here is important information about your account security. We couldn't verify your mother's maiden name.
Выполните задание, используя только два print() .
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
- Подумайте, с какой строкой и в каком порядке нужно склеивать переменные, чтобы получить такой двухстрочный вывод тела письма.
- Помните, что можно создать строку, которая содержит только управляющую последовательность \n . Вы можете конкатенировать эту строку с переменными для правильного форматирования текста.
Определения
- Конкатенация — операция соединения двух строк. Например, console.log(«King’s » + ‘ Landing’);
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе
- Привет, Мир!
- Комментарии
- Инструкции (Statements)
- Как мы проверяем ваши решения
- Синтаксические ошибки
- Арифметические операции
- Операторы
- Коммутативная операция
- Композиция операций
- Приоритет
- Числа с плавающей точкой
- Линтер
- Кавычки
- Экранированные последовательности
- Конкатенация
- Кодировка
- Что такое переменная
- Изменение переменной
- Выбор имени переменной
- Ошибки при работе с переменными
- Выражения в определениях
- Переменные и конкатенация
- Именование переменных
- Магические числа
- Константы
- Интерполяция
- Извлечение символов из строки
- Срезы строк
- Multi-line строки
- Типы данных
- Сильная (или Строгая) типизация
- Неизменяемость примитивных типов
- Явное преобразование типов
- Функции и их вызов
- Сигнатура функции
- Аргументы по умолчанию
- Вызов функции — выражение
- Функции с переменным числом параметров
- Детерминированность
- Стандартная библиотека
- Объекты
- Неизменяемость
- Методы как выражения
- Цепочка вызовов
- Создание (определение) функций
- Возврат значений
- Параметры функций
- Необязательные параметры функций
- Именованные аргументы
- Аннотации типов
- Логический тип
- Предикаты
- Комбинирование операций и функций
- Логические операторы
- Отрицание
- Результат логических выражений
- Условная конструкция (if)
- Условная конструкция else
- Конструкция else + if = elif
- Тернарный оператор
- Оператор Match
- Цикл While
- Агрегация данных (Числа)
- Агрегация данных (Строки)
- Обход строк
- Условия внутри тела цикла
- Формирование строк в циклах
- Пограничные случаи
- Синтаксический сахар
- Возврат из циклов
- Цикл For
- Цикл for и функция range
Массивы
Большинство программ работает не с отдельными переменными, а с набором переменных. Например, программа может обрабатывать информацию об учащихся класса, считывая список учащихся с клавиатуры или из файла, при этом изменение количества учащихся в классе не должно требовать модификации исходного кода программы.
Раньше мы сталкивались с задачей обработки элементов последовательности, например, вычисляя наибольший элемент последовательности. Но при этом мы не сохраняли всю последовательность в памяти компьютера, однако, во многих задачах нужно именно сохранять всю последовательность, например, если бы нам требовалось вывести все элементы последовательности в возрастающем порядке (“отсортировать последовательность”).
Для хранения таких данных можно использовать структуру данных, называемую в Питоне список (в большинстве же языков программирования используется другой термин “массив”). Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке. Список можно задать перечислением элементов списка в квадратных скобках, например, список можно задать так:
Primes = [2, 3, 5, 7, 11, 13]
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
В списке Primes — 6 элементов, а именно, Primes[0] == 2, Primes[1] == 3, Primes[2] == 5, Primes[3] == 7, Primes[4] == 11, Primes[5] == 13. Список Rainbow состоит из 7 элементов, каждый из которых является строкой.
Также как и символы строки, элементы списка можно индексировать отрицательными числами с конца, например, Primes[-1] == 13, Primes[-6] == 2.
Длину списка, то есть количество элементов в нем, можно узнать при помощи функции len, например, len(A) == 6.
Рассмотрим несколько способов создания и считывания списков. Прежде всего можно создать пустой список (не содержащий элементов, длины 0), в конец списка можно добавлять элементы при помощи метода append. Например, если программа получает на вход количество элементов в списке n, а потом n элементов списка по одному в отдельной строке, то организовать считывание списка можно так:
A = []
for i in range(int(input()):
A.append(int(input())
В этом примере создается пустой список, далее считывается количество элементов в списке, затем по одному считываются элементы списка и добавляются в его конец.
Для списков целиком определены следующие операции: конкатенация списков (добавление одного списка в конец другого) и повторение списков (умножение списка на число). Например:
A = [1, 2, 3]
B = [4, 5]
C = A + B
D = B * 3
В результате список C будет равен [1, 2, 3, 4, 5], а список D будет равен [4, 5, 4, 5, 4, 5]. Это позволяет по-другому организовать процесс считывания списков: сначала считать размер списка и создать список из нужного числа элементов, затем организовать цикл по переменной i начиная с числа 0 и внутри цикла считывается i-й элемент списка:
A = [0] * int(input())
for i in range(len(A)):
A[i] = int(input())
Вывести элементы списка A можно одной инструкцией print(A), при этом будут выведены квадратные скобки вокруг элементов списка и запятые между элементами списка. Такой вывод неудобен, чаще требуется просто вывести все элементы списка в одну строку или по одному элементу в строке. Приведем два примера, также отличающиеся организацией цикла:
for i in range(len(A)):
print(A[i])
Здесь в цикле меняется индекс элемента i, затем выводится элемент списка с индексом i.
for elem in A:
print(elem, end = ' ')
В этом примере элементы списка выводятся в одну строку, разделенные пробелом, при этом в цикле меняется не индекс элемента списка, а само значение переменной (например, в цикле for elem in [‘red’, ‘green’, ‘blue’] переменная elem будет последовательно принимать значения ‘red’, ‘green’, ‘blue’.