Как использовать цикл While в операторе if на python? - PullRequest
0 голосов
/ 03 марта 2019
def change():
    if choice == 1:    #<--- issue here
        while True:
            amt = float(input("Enter amount of cash: $"))
            if amt >= a:
                print("Your change will be: ${:.2f}".format(amt - a))
                break
            else:
                print("Not enough, missing: ${:.2f}".format(a - amt))
                input("press enter to continue")


a = 15.60
b = 56.12
c = 89.53
d = 32.93
print("1. a: $15.60\t\t\t2. b: $56.12\n3. c: $89.53\t\t\t4. d: $32.93")
choice = input("Choose product (1-4): ")
change()

Если я удалю строку 2, она будет работать правильно, но выбор 1 не будет выбран.Мне бы хотелось, чтобы это работало, пока выбран вариант 1.По некоторым причинам это не позволяет мне помещать оператор if перед циклом while.Есть ли решение?

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Пожалуйста, попробуйте ниже код

def change():
print(choice, choice == 1, type(choice), int(choice) == 1)
if int(choice) == 1:    #<--- issue here
    while True:
        amt = float(input("Enter amount of cash: $"))
        if amt >= a:
            print("Your change will be: ${:.2f}".format(amt - a))
            break
        else:
            print("Not enough, missing: ${:.2f}".format(a - amt))
            input("press enter to continue")


a = 15.60
b = 56.12
c = 89.53
d = 32.93
print("1. a: $15.60\t\t\t2. b: $56.12\n3. c: $89.53\t\t\t4. d: $32.93")
choice = input("Choose product (1-4): ")
change()
0 голосов
/ 14 марта 2019

Приведение строки к целому числу в Python 3.x используйте int ()

choice = int(input("Choose product (1-4): "))
0 голосов
/ 03 марта 2019

Это проблема в вашем входном утверждении.В Python 3 ввод получить по умолчанию в виде строки. Так что вам нужно преобразовать его в целое число, как показано ниже.

choice = int(input("Choose product (1-4): "))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...