Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.08.2022
Сообщений: 9

Часть кода работает неправильно

27.09.2022, 15:01. Показов 843. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Прошу помочь более опытных коллег!
Выполняя ДЗ необходимо было написать программу по расчету массы тела, вроде всё работает кроме четвертого и пятого блока, вроде считают но почему-то по формуле 2го блока.
Python
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
 while True:
 
    gender = input('Укажите Ваш пол муж/жен: ')
    height = int(input('Напишите Ваш рост: '))
    age = int(input('Введите Ваш возраст: '))
 
    if gender == 'муж' and age <= 30:
        weight = (height - 110) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == ('муж' and age > 30) or ('муж' and age < 50) :
        weight = (height - 110)
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'муж' and age >= 50:
        weight = (height - 110) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age <= 30:
        weight = (height - 100) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == ('жен' and age > 30) or ('жен' and age < 50) :
        weight = (height - 100)
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age >= 50:
        weight = (height - 100) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    print('Спасибо за Ваше обращение к нам!\n Следующий!!!')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2022, 15:01
Ответы с готовыми решениями:

Строка: Если убрать запятые из кода в Names, код работает неправильно. Подскажите, пожалуйста, как исправить?
Куратор говорит убрать запятые из кода в Names, когда убираю получается не правильно, подскажите пожалуйста как исправить: ...

Неправильно расчитывается дробная часть
Нужно чтобы при вводе, скажем, 14.23 должно выводить 23. Или при вводе 54.3232 должно выводить 3232. НО! Запуская этот код и вводя 14.23...

Как работает следующая часть кода
Полный код: from itertools import product arr = *4 for i in product(*arr): print(i) Интересующая часть: for i in...

6
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2022, 15:18
Цитата Сообщение от Yaroslav_Shel Посмотреть сообщение
('муж' and age > 30)
Вот ты взял это выражение в скобки. Чем ты руководствовался, когда это делал? Вот чему будет равно это выражение?
Кликните здесь для просмотра всего текста
открывающую скобку в другое место передвинь )))
1
0 / 0 / 0
Регистрация: 30.08.2022
Сообщений: 9
27.09.2022, 15:28  [ТС]
Я только недавно начал изучать написание кодов и поэтому многого еще не понимаю. В скобки взял потому что на сколько я помню из обучения, что сложные условия нужно отделять скобками.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2022, 15:30
Все правильно, надо. Только ты совсем не то отделил. Посмотри на условие еще раз, внимательно
0
0 / 0 / 0
Регистрация: 30.08.2022
Сообщений: 9
27.09.2022, 15:46  [ТС]
Переставил скобки вот так, теперь вот 4 и 5 блок заработали верно, а третий и шестой, стали использовать формулу второго и четвертого

Python
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
while True:
 
    gender = input('Укажите Ваш пол муж/жен: ')
    height = int(input('Напишите Ваш рост: '))
    age = int(input('Введите Ваш возраст: '))
 
    if gender == 'муж' and age <= 30:
        weight = (height - 110) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif (gender == 'муж' and age > 30) or (gender =='муж' and age < 50) :
        weight = (height - 110)
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'муж' and age >= 50:
        weight = (height - 110) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age <= 30:
        weight = (height - 100) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif (gender == 'жен' and age > 30) or (gender =='жен' and age < 50) :
        weight = (height - 100)
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age >= 50:
        weight = (height - 100) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    print('Спасибо за Ваше обращение к нам!\n Следующий!!!')
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2022, 15:52
Yaroslav_Shel, минимизируй сложные условия. Например так
Code
1
2
3
4
5
6
7
8
9
10
11
12
если мужик:
   если меньше 30:
      ...
   если больше 50:
      ...
   и т.д.
иначе:   # т.е. если женщина
   если меньше 30:
      ...
   если больше 50:
      ...
   и т.д.
Добавлено через 1 минуту
И в итоге строка с выводом веса должна быть в единственном числе, в самом конце программы. Нет нужды пихать ее в каждое условие
0
0 / 0 / 0
Регистрация: 30.08.2022
Сообщений: 9
27.09.2022, 15:53  [ТС]
переставил блоки местами и все теперь заработало.
Спасибо за подсказку очень помогло!!!

Python
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
while True:
 
    gender = input('Укажите Ваш пол муж/жен: ')
    height = int(input('Напишите Ваш рост: '))
    age = int(input('Введите Ваш возраст: '))
 
    if gender == 'муж' and age <= 30:
        weight = (height - 110) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'муж' and age >= 50:
        weight = (height - 110) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    elif (gender == 'муж' and age > 30) or (gender =='муж' and age < 50) :
        weight = (height - 110)
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age <= 30:
        weight = (height - 100) * 0.89
        print('Ваш идеальный вес', weight, 'кг')
 
    elif gender == 'жен' and age >= 50:
        weight = (height - 100) * 1.06
        print('Ваш идеальный вес', weight, 'кг')
 
    elif (gender == 'жен' and age > 30) or (gender =='жен' and age < 50) :
        weight = (height - 100)
        print('Ваш идеальный вес', weight, 'кг')
 
    print('Спасибо за Ваше обращение к нам!\n Следующий!!!')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2022, 15:53
Помогаю со студенческими работами здесь

Как сделать, чтобы при выполнении кода содержимое сразу подставлялось в нужную часть кода и выполнялось?
Нужно чтобы при выполнении кода, содержимое буфера обмена сразу добавлялось в значении X и выполняло команду из строчки s=&quot;start...

Часть программы неправильно отображает результат
Есть задача: В диапазоне элементов массива с k1-го по k2-ой, где k1 и k2 вводятся с клавиатуры. Вычислить произведение и сумму....

Часть кода работает неправильно
Даны два массива C &amp; P, если max C&lt;min P, тогда массиву X присвоить сначала элементы массива С, а потом Р. Часть кода работает...

Неправильно разделила жесткий диск, часть томов не работает, что делать?
По ошибке разделила жесткий диск на 5 томов. Пятый оказался нерабочим. Соединила пятый с четвёртым, теперь оба не работают, форматировать...

Неправильно работает перевод кода с С на C#
Есть программа на C. Мне требуется ее переписать на C#. Программа распараллеливает вычисления на потоки с указанием уровня загрузки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru