hut = [9.2, 3.5, 8.1, 2.3, 9.2, 4.2, 6.9] # - список всех комнат
c_rums = 0 # - делаю переменную для занесения комнат
def c_hut(): # - делаю функцию которая будет подсчитывать кол-во комнат
for huts in hut: # - даю функции список
if huts == 9.2: # - проверка каждой комнаты из списка
c_rums + 1 # - если комната равна 9.2 то к перменной c_rums прибавляется значение 1
print("Комнат с площадью 9.2 кв/м", c_rums) # - проверка работоспособности
c_hut() # - вызов функции
так вот прикол в том , что по итогу к c_rums ничего не прибавляется и выводит значение 0
Python
Питон простенький код не могу понять в чем проблема нужно подсчитать кол во комнат площадью 9.2 кв м
Начнём с того, что конструкция c_rums + 1 НЕ увеличивает значение переменной c_rums.
Вторая пролема в том, что любое присваивание c_rums внутри функции приведёт к созданию локальной переменной c_rums и никак не повлияет на значение глобальной c_rums.
Минимальные правки твоего кода:
Вторая пролема в том, что любое присваивание c_rums внутри функции приведёт к созданию локальной переменной c_rums и никак не повлияет на значение глобальной c_rums.
Минимальные правки твоего кода:
hut = [9.2, 3.5, 8.1, 2.3, 9.2, 4.2, 6.9] # - список всех комнат
c_rums = 0 # - делаю переменную для занесения комнат
def c_hut(): # - делаю функцию которая будет подсчитывать кол-во комнат
global hut, c_rums # будут использоваться глолбальные переменные
for huts in hut: # - даю функции список
if huts == 9.2: # - проверка каждой комнаты из списка
c_rums += 1 # - если комната равна 9.2 то к перменной c_rums прибавляется значение 1
print("Комнат с площадью 9.2 кв/м", c_rums) # - проверка работоспособности
c_hut() # - вызов функции
Как твой код можно переписать правильно: def c_hut(h, s): return h.count(s)
hut = [9.2, 3.5, 8.1, 2.3, 9.2, 4.2, 6.9]
print("Комнат с площадью 9.2 кв/м", c_hut(hut, 9.2))
Проблема в вашем коде заключается в том, что вы не обновляете значение c_rums в цикле. Вместо c_rums + 1 нужно использовать c_rums += 1, чтобы увеличивать значение c_rums на 1 в каждой итерации цикла.
Вот исправленный код:
Вот исправленный код:
hut = [9.2, 3.5, 8.1, 2.3, 9.2, 4.2, 6.9] # - list of rooms
c_rums = 0 # - make room variable
def c_hut(): # - создает функцию, которая будет подсчитывать количество комнат
for huts in hut: # - дать список для этой функции
if huts == 9.2: # - проверка каждой комнаты в списке
c_rums += 1 # - если номер равен 9.2, то к переменной c_rums будет добавлено значение 1
print("Rooms with area 9.2 sq/m", c_rums) # - проверка
c_hut() # - вызвать функцию
Алишер Якубов
по итогу выдает, что комната только 1. почему? в списке их 2
Потому сто оператор сложения + возвращает значение1 + значение2, а не изменяет значение1. Ты не присваиваешь переменной новое значение. Поменяй на c_rums += 1, это изменит саму переменную
P.S.
Ну а вообще, для подсчёта частоты значения в списке можно использовать встроенный метод count
list.count(val)
В твоём случае hut.count(9.2)
P.S.
Ну а вообще, для подсчёта частоты значения в списке можно использовать встроенный метод count
list.count(val)
В твоём случае hut.count(9.2)
Алишер Якубов
про метод count не знал, спасибо. Поменял c_rums =+ 1 , по итогу выдает , что только 1 комната со значением 9.2 , почему так
Сергей Завьялов
Потому что c-rums в функции - это локальная переменная, а значение глобальной вообще не изменяется. Не знаю, как вам выводит 1, если должно выводить сообщение об ошибке (если вы, конечно, не правили свой код)
Похожие вопросы
- Питон не могу понять код
- Помогите с задачей, никак не могу понять, как именно писать код
- Что такое "параметры функций" в Пайтоне? Я никак не могу понять
- Никак не могу понять как поступить =)
- Как научиться решать задачи на деление и остаток в Python? Не могу понять принцип решения. Примеры задач:
- Не могу понять
- Помогите чайнику в Питоне. Как правильно перейти на другую строку в коде, чтоб он не запустился раньше времени?
- Помогите с кодом дискорд бота на питоне
- помогите понять код языка программирования Питон
- Что-то не получается дописать правильно код на Питоне