Как соединить цифры в питоне
Перейти к содержимому

Как соединить цифры в питоне

  • автор:

Как правильно объединить несколько распознанных цифр?

Помогите кому не сложно пожалуйста, мне надо чтобы программа в одном коде распознавала несколько цифр, как правильно объединить их??

у меня есть код на 5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
import random # Цифры (Обучающая выборка) num0 = list('111101101101111') num1 = list('001001001001001') num2 = list('111001111100111') num3 = list('111001111001111') num4 = list('101101111001001') num5 = list('111100111001111') num6 = list('111100111101111') num7 = list('111001001001001') num8 = list('111101111101111') num9 = list('111101111001111') # Список всех вышеуказанных цифр nums = [num0, num1, num2, num3, num4, num5, num6, num7, num8, num9] # Виды цифры 5 (Тестовая выборка) num51 = list('111100111000111') num52 = list('111100010001111') num53 = list('111100011001111') num54 = list('110100111001111') num55 = list('110100111001011') num56 = list('111100101001111') # Инициализация весов сети weights = [] for i in range(15): weights.append(0) # Порог функции активации bias = 7 # Является ли данное число 5 def proceed(number): # Рассчитываем взвешенную сумму net = 0 for i in range(15): net += int(number[i])*weights[i] # Превышен ли порог? (Да - сеть думает, что это 5. Нет - сеть думает, что это другая цифра) return net >= bias # Уменьшение значений весов, если сеть ошиблась и выдала 1 def decrease(number): for i in range(15): # Возбужденный ли вход if int(number[i]) == 1: # Уменьшаем связанный с ним вес на единицу weights[i] -= 1 # Увеличение значений весов, если сеть ошиблась и выдала 0 def increase(number): for i in range(15): # Возбужденный ли вход if int(number[i]) == 1: # Увеличиваем связанный с ним вес на единицу weights[i] += 1 # Итератор от 0 до 9 j = 0 # Тренировка сети for i in range(10000): # Если получилось НЕ число 5 if j != 5: # Если сеть выдала True/Да/1, то наказываем ее if proceed(nums[j]): decrease(nums[j]) # Если получилось число 5 else: # Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам нужно if not proceed(num5): increase(num5) if (j + 1) == 10: j = 0 else: j += 1 # Вывод значений весов print(weights) # Прогон по обучающей выборке print("0 это 5? ", proceed(num0)) print("1 это 5? ", proceed(num1)) print("2 это 5? ", proceed(num2)) print("3 это 5? ", proceed(num3)) print("4 это 5? ", proceed(num4)) print("6 это 5? ", proceed(num6)) print("7 это 5? ", proceed(num7)) print("8 это 5? ", proceed(num8)) print("9 это 5? ", proceed(num9), '\n') # Прогон по тестовой выборке print("Узнал 5? ", proceed(num5)) print("Узнал 5 - 1? ", proceed(num51)) print("Узнал 5 - 2? ", proceed(num52)) print("Узнал 5 - 3? ", proceed(num53)) print("Узнал 5 - 4? ", proceed(num54)) print("Узнал 5 - 5? ", proceed(num55)) print("Узнал 5 - 6? ", proceed(num56))

и код на 4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
import random # Цифры (Обучающая выборка) num0 = list('111101101101111') num1 = list('001001001001001') num2 = list('111001111100111') num3 = list('111001111001111') num4 = list('101101111001001') num5 = list('111100111001111') num6 = list('111100111101111') num7 = list('111001001001001') num8 = list('111101111101111') num9 = list('111101111001111') # Список всех вышеуказанных цифр nums = [num0, num1, num2, num3, num4, num5, num6, num7, num8, num9] # Виды цифры 4 (Тестовая выборка) num41 = list('100101011000001') num42 = list('101100111001000') num43 = list('001101110001001') num44 = list('101100110001001') num45 = list('000101111000001') num46 = list('100101110001001') # Инициализация весов сети weights = [] for i in range(15): weights.append(0) # Порог функции активации bias = 7 # Является ли данное число 4 def proceed(number): # Рассчитываем взвешенную сумму net = 0 for i in range(15): net += int(number[i])*weights[i] # Превышен ли порог? (Да - сеть думает, что это 4. Нет - сеть думает, что это другая цифра) return net >= bias # Уменьшение значений весов, если сеть ошиблась и выдала 4 def decrease(number): for i in range(15): # Возбужденный ли вход if int(number[i]) == 1: # Уменьшаем связанный с ним вес на единицу weights[i] -= 1 # Увеличение значений весов, если сеть ошиблась и выдала 0 def increase(number): for i in range(15): # Возбужденный ли вход if int(number[i]) == 1: # Увеличиваем связанный с ним вес на единицу weights[i] += 1 # Итератор от 0 до 9 j = 0 # Тренировка сети for i in range(10000): # Если получилось НЕ число 5 if j != 4: # Если сеть выдала True/Да/1, то наказываем ее if proceed(nums[j]): decrease(nums[j]) # Если получилось число 5 else: # Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам нужно if not proceed(num4): increase(num4) if (j + 1) == 10: j = 0 else: j += 1 # Вывод значений весов print(weights) # Прогон по обучающей выборке # Прогон по обучающей выборке print("0 это 4? ", proceed(num0)) print("1 это 4? ", proceed(num1)) print("3 это 4? ", proceed(num3)) print("5 это 4? ", proceed(num5)) print("6 это 4? ", proceed(num6)) print("7 это 4? ", proceed(num7)) print("8 это 4? ", proceed(num8)) print("9 это 4? ", proceed(num9), '\n') # Прогон по тестовой выборке # Прогон по тестовой выборке print("Узнал 4? ", proceed(num4)) print("Узнал 4 - 1? ", proceed(num41)) print("Узнал 4 - 2? ", proceed(num42)) print("Узнал 4 - 3? ", proceed(num43)) print("Узнал 4 - 4? ", proceed(num44)) print("Узнал 4 - 5? ", proceed(num45)) print("Узнал 4 - 6? ", proceed(num46))

Объединить целое число в строку Python

В этом посте мы обсудим, как соединить целое число со строкой в Python.

1. Использование str() функция

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

if __name__ == ‘__main__’ :
s = text + str ( val )
print ( s ) # Sum: 10

2. Использование форматированных строковых литералов

Начиная с Python 3.6, вы можете использовать форматированный строковый литерал (также известный как f-строка) для объединения одного или нескольких значений в строку в Python. Идея состоит в том, чтобы поставить перед строковым литералом префикс ‘f’ или ‘F’ и поместить поля замены в фигурные скобки. <> , которые оцениваются во время выполнения. Следующий пример демонстрирует его использование:

Объединение элементов списка: из цифр сделать целое число

Есть список gen = [1,2,3,4] Необходимо объединить элементы в число, чтобы получилось 1234 . У меня получилось так:

chislo = int(''.join((str(i) for i in gen))) 

Нет ли способа проще, без преобразования типов?
Отслеживать
7,722 13 13 золотых знаков 25 25 серебряных знаков 54 54 бронзовых знака
задан 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 

Как в питоне соединить одно число с рандомным?

А что вы вообще имеете ввиду под странным словом «соединить»?
Варианты ответа:
-просто сложить.
-написать оба числа одной строкой.
-написать два числа через символ «+»
-написать два числа одно за другим.
Дайте пример ожидаемого ответа.
Про то, какую роль тут играет рандомность второго числа — я даже вопроса не задаю.
Но программирования не терпит небрежности. А небрежность в программировании начинается с небрежно заданных вопросов. Уточните, что-бы получить корректный ответ.

Решения вопроса 0
Ответы на вопрос 1

У тебя :
a — это переменная , при выводе переменные содержащие числа используются без кавычек
Иначе говоря у тебя все правильно кроме 4 строчки
Вот как надо было :

import random a=2 randomnumber = random.randint(1000000000, 9999999999) print (a + str(randomnumber))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *