Если «i» определено как целое число, как оно узнает, отвечает вопрос == или нет? - PullRequest
0 голосов
/ 24 октября 2018

Эта программа функционирует, мой вопрос больше для любопытства и образования.Если я определил «i» как целые числа в диапазоне длины «ответов», как получается, что он знает, равен ли ввод пользователя исходным строкам или нет?

Пример: (# первая итерация) A, B, C или D?(#I отвечаю) B (#answers [i] == 1, но программа знает, что оно также равно B, и проверяет правильность первого ввода. Как узнать, что первые ответы [i] - B, если "i" 's определены как целые числа?

# List of question answers
answers = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D']

# List of user responses
response = []

# List of questions answered correctly
correct = []

# Number correctly answered
numCor = 0

# Number incorrectly answered
numIn = 0

# For every question answer, add user-reponse to response list
for i in range(len(answers)):
    question = input('A, B, C, or D: ')
    response.append(question)

    # If the user-response is equal to the question answer /
    # add 1 to correctly answered and add question-number to correct list
    if question == answers[i]:
        numCor += 1
        correct.append(i + 1)

    # If user-response does not match question answer /
    # add 1 to incorrectly answered
    else:
        numIn += 1

# Print correctly/incorrectly answered /
# and question-numbers answered correctly
print('You got', numCor, 'questions correct.')
print('You got', numIn, 'questions incorrect.')
print('Correct Questions:', correct)

1 Ответ

0 голосов
/ 24 октября 2018

answers[i] означает, что вы ищете i-й элемент в массиве answers и получаете значение (строку в вашем случае), которое там хранится.

Если вы находитесь впервая итерация, i будет 0.

answers[0] затем даст вам значение, сохраненное с индексом 0 в answers, который является строкой 'B'

Если пользовательвходы B, ваше сравнение:

if question == answers[i]:

совпадает с

if 'B' == 'B':
...