может кто-нибудь объяснить этот Python код ввода / вывода - PullRequest
0 голосов
/ 11 января 2020

Код в этом практическом курсе я принимаю работы, как задумано. Но я не понимаю, почему это работает так, как работает. Я новичок, поэтому некоторые из моих терминов могут быть отключены. Код для справки:

print("Hi!")
name = input("What's your name? ")

print("It's nice to meet you,", name)
answer = input("Are you enjoying the course? ")

if answer == "Yes":
    print("That's good to hear!")
else:
    print("Oh no! That makes me sad!")

У меня есть 2 вопроса:

  1. Когда я объявляю переменную name, она использует функцию input, но как получить код читать, чтобы он знал, что я набрал в качестве ввода? Я не вижу, где он вписывается в код здесь, до или после кавычек, может быть?
  2. переменная answer никогда специально не записывается для распечатки. Это означает, что я не вижу команду print для нее, за исключением предыдущей строки. Кажется, что она должна быть определена только с помощью функции input. Работает ли команда print также для всех строк под ней?

Ответы [ 2 ]

0 голосов
/ 11 января 2020
  1. input является функцией блокировки. Это означает, что он ожидает чего-то, прежде чем вернуть значение. В этом случае пользователь ожидает ввода своего имени на экране.

  2. Не уверен, что я понимаю ваш вопрос. Переменная answer фактически никогда не распечатывается. Снова вы ждете пользователя input (на этот раз ожидаете либо Да, либо Нет), а затем вы проверяете его в операторе if. Если это было «Да», вы печатаете «Это приятно слышать», else вы печатаете «О нет! Это меня огорчает!». Но переменная answer (например, «Да») фактически никогда не выводится на экран.

Это может иметь немного больше смысла, если вы читаете код справа налево (например, возьмите то, что возвращается от input, и поместите это в name)

0 голосов
/ 11 января 2020

Это может дать вам лучшее понимание: https://www.w3schools.com/python/ref_func_input.asp

Функция ввода в основном берет строку, переданную функции, печатает ее и читает строку, которую вводит пользователь. Пользователь может завершить sh строку, нажав ENTER или RETURN. По сути, функция ввода просто читает все, что пользователь набрал, до символа новой строки \n

Так что, если у меня есть answer = input('Please answer this question: '), то сначала программа напечатает "Please answer this question: ", а затем пользователь может напечатать что угодно и когда они нажимают ввод, эта набранная строка сохраняется в answer

...