Уведомления

Группа в Telegram: @pythonsu

#1 Май 22, 2019 19:04:33

woogieman
Зарегистрирован: 2019-05-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с print и return

Всем доброго времени суток!

Очень срочно нужно было разобраться с кодом на пайтоне, смотрю пример человека, что выкладывает код, у него все хорошо, принт выводит все, что нужно, в консоль, и код работает. Ctrl+C Ctrl+V - бам - проблема.

# Порог функции активации
bias = 7

# Является ли данное число 5
def proceed(number):
# Рассчитываем взвешенную сумму
net = 0
for i in range(15):
net += int(number)*weights

# Превышен ли порог? (Да - сеть думает, что это 5. Нет - сеть думает, что это другая цифра)
return net >= bias

Выдает ошибку синтаксиса - ‘return’ outside function
Хотелось бы узнать, как разобраться здесь с табуляцией.


+ Программа завершается с выходом в 1, но ничего из print не выводит в консоль. Код прилагаю

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 =

# Виды цифры 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)*weights

# Превышен ли порог? (Да - сеть думает, что это 5. Нет - сеть думает, что это другая цифра)
return net >= bias

# Уменьшение значений весов, если сеть ошиблась и выдала 1
def decrease(number):
for i in range(15):
# Возбужденный ли вход
if int(number) == 1:
# Уменьшаем связанный с ним вес на единицу
weights -= 1

# Увеличение значений весов, если сеть ошиблась и выдала 0
def increase(number):
for i in range(15):
# Возбужденный ли вход
if int(number) == 1:
# Увеличиваем связанный с ним вес на единицу
weights += 1

# Тренировка сети
for i in range(10000):
# Генерируем случайное число от 0 до 9
option = random.randint(0, 9)

# Если получилось НЕ число 5
if option != 5:
# Если сеть выдала True/Да/1, то наказываем ее
if proceed(nums):
decrease(nums)
# Если получилось число 5
else:
# Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам нужно
if not proceed(num5):
increase(num5)

# Вывод значений весов
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))

Офлайн

#2 Май 23, 2019 03:12:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Проблемы с print и return

woogieman
Выдает ошибку синтаксиса - ‘return’ outside function
Хотелось бы узнать, как разобраться здесь с табуляцией.
У тебя вообще код неправильно на форум отправлен. Вот научись для начала собеседникам точно код передавать. Догадки никто строить не будет, просто проигнорируют, пока не отправишь всё правильно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version