@Lis4

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

Помогите найти ошибку.
Начала изучать Python, изучила только переменные и второй урок синтаксиса.
Дано задание написать код, для расчета идеального веса.
Вес у меня выходит верно, а вот текс не выходит, не могу понять где ошибка.

v=int(input('Ваш идеальный вес по формуле Брока. Какого вы роста в сантиметрах ?'))
if(v <= 165 ):
    x=int(input(v - 100))
    print('Ваш идеальный вес','x')
elif(v<= 175):
    x='Ваш'+ int(input(v - 105))
    print('Ваш идеальный вес') + 'x'
elif(v>= 176):
    x=int(input(v - 110))
    print('Ваш вес должен составлять') + x
  • Вопрос задан
  • 1353 просмотра
Решения вопроса 3
Лучше использовать, такой способ
print('Ваш вес должен составлять {} кг'.format(x))
на место {} встанет ваше X,
можно несколько, к этому придете чуть позже...
name = 'Игорь'
weight = 90
print('Ваш вес {} должен составлять {} кг'.format(name, weight))

На выходе получим "Ваш вес Игорь состовляет 90 кг"
Ответ написан
Комментировать
ZeekSee
@ZeekSee
print('Ваш вес должен составлять') + x
В вашем случае должно выглядеть как
print('Ваш вес должен составлять ' + str(x))
Сложение должно быть внутри скобок это раз, во вторых складывать текст можно только с текстом. тобишь ты должен преобразовать это число в текст методом str().
Так же изучи исключения, если пользователь введёт не число, а текст, то вы словите ошибку.
def main():
    try:
        v=int(input("Ваш идеальный вес по формуле Брока. Какого вы роста в сантиметрах ?"))
    except ValueError:
        print('Вы ввели не число')
        return
    if(v <= 165 ):
        x = v - 100
        print("Ваш идеальный вес " + str(x))
    elif(v<= 175):
        x = v - 105
        print("Ваш идеальный вес " + str(x))
    elif(v>= 176):
        x = v - 110
        print("Ваш вес должен составлять " + str(x))

if __name__ == '__main__':
    main()
Ответ написан
В Вашем коде немало ошибок:
  1. print('Ваш идеальный вес', 'x') выведет символ `x`, а не переменную x
  2. Строки print('Ваш идеальный вес') + 'x' и print('Ваш вес должен составлять') + x ошибочны. print является встроенный функцией для печати на экран, и аргументы должны передаваться внутри скобок. И конечно, переменная x должна писаться без кавычек
  3. Есть несколько не существенных ошибок по стилистике языка Python, которые не влияют на работу

Вот, как бы я написал то же:
print('Ваш идеальный вес по формуле Брока')
while True:
    height = input('Ваш рост в сантиметрах: ')
    if height.isdecimal():
        height = int(height)
        break
    elif not height:
        return
    else:
        print('Введите рост в виде числа или нажмите Enter для выхода')
if height <= 165:
    weight = height - 100
    print('Ваш идеальный вес {} кг'.format(weight))
elif height <= 175:
    weight = height - 105
    print('Ваш идеальный вес {} кг'.format(weight))
elif height >= 176:
    weight = height - 110
    print('Ваш вес должен составлять {} кг'.format(weight))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы