проверка состояния дает неверный результат - PullRequest
0 голосов
/ 21 апреля 2020

Я новичок в python. Я сделал простую программу, используя несколько условий if, но в этом коде есть некоторые проблемы. Если моя грузоподъемность ниже веса предмета, и я сказал «нет», я не могу поднять этот предмет, он должен сказать «да, ты не можешь…», но он скорее скажет: «не будь таким ленивым». .. "Я не знаю, почему, хотя мои логики c верны, я не смог найти ошибку.

Weights = {
    "table":5, #kg
    "sofa":9, #kg
    "Cupboard":85, #kg
    "Ladder":7, #kg
}
print("How much weight can you lift? ")
lifting_capability = input("Enter your lifting capability"+" ")
lifting_capability_int = int(lifting_capability)
for Objects in Weights.keys():
    Answer = input("Can you lift" + " " + Objects + "? " + "Y/N ")
    Answer_Adjusted = Answer.lower()    
    for Wt in Weights.values():
        if Answer_Adjusted == "y" and Wt > lifting_capability_int:
            print("mmmmm...., i don't think you can lift this much")
            break
        elif Answer_Adjusted == "n" and Wt > lifting_capability_int:
            print("Yes you can't, you know how to keep your backbone in place")
            break
        elif Answer_Adjusted == "y" and Wt <= lifting_capability_int:
            print("Yes, obviously you can, its so light for you")
            break
        elif Answer_Adjusted == "n" and Wt <= lifting_capability_int:
            print("Don't be so lazy, its lighter than you think")
            break
        else:
            print("you think you can, but watch yor feet")

1 Ответ

0 голосов
/ 21 апреля 2020

вы дважды просматриваете свой словарь. Перепишите свой код, набрав один для-l oop, например:

for object, weight in Weights.items():
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...