Оператор Input / If - правильный способ написания - PullRequest
0 голосов
/ 29 мая 2020

В настоящее время я участвую в испытании кода для новичков Python, и пока мой код работает так, как должен, решение написано иначе, чем моя программа.

Поскольку я только начинаю, мне было интересно какой способ лучше написать программу,

Решение:

# Prompt user if they want to proceed. Y/N?
should_proceed = input("Do you want to proceed? Y/N ")

# If they want to proceed
if should_proceed.lower() == "y":
    # print out to the screen "SOLD!" to confirm purchase
    # TODO: Gatjer credit card information and process it.
    print("SOLD!")
    # and then decrement the tickets remaining by the number of tickets purchased
    tickets_remaining -= num_tickets
# Otherwise...
else:
    # Thank them by name
    print("Thank you anyways, {}!".format(name))

Принимая во внимание, что я поставил:

# Prompt user if they want to proceed. Y/N?
proceed = input("Would you like to proceed? Y/N ").upper()

# If they want to proceed
if proceed == "Y":
    # print out to the screen "SOLD!" to confirm purchase
    # TODO: Gatjer credit card information and process it.
    print("SOLD!")
    # and then decrement the tickets remaining by the number of tickets purchased
    tickets_remaining = tickets_remaining - ticket_request
    print(tickets_remaining)
# Otherwise...
elif proceed == "N":
    # Thank them by name
    print("Thank you for your time, {}".format(customer_name))

Было ли неправильно называть верхний () на входе?

Есть ли другие ошибки, которые я сделал?

Большое спасибо,

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Было ли неправильно вызывать upper () для ввода?

Нет, это отличный способ разрешить ввод без учета регистра. Их решение показывает альтернативу, которая работает так же хорошо.

0 голосов
/ 29 мая 2020

Оба способа допустимы с одной оговоркой. Поскольку вы специально проверяете как Y, так и N, ваш способ в этом случае, вероятно, лучше, поскольку в противном случае вам пришлось бы дважды вызывать upper():

proceed = input("Would you like to proceed? Y/N ")
if proceed.upper() == "Y":
    doSomething()
elif proceed.upper() == "N":
    doSomethingElse()

При этой расширенной проверке ваш код немного отличается тем, что он не делает ничего , если на входе нет ни Y, ни N (другой код обрабатывает все, что не y, как n). В этом случае вам, вероятно, стоит убедиться, что равно одному из этих значений, например:

proceed = ""
while proceed != "Y" and proceed != "N":
    proceed = input("Would you like to proceed (Y/N)? ").upper()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...