Как сделать несколько циклов с пользовательским вводом в терминале Python? - PullRequest
1 голос
/ 22 сентября 2019

Привет, я новичок в phyton, и я посмотрел везде, но все, что я нашел, это опция .split () для нескольких входов, но я не хочу, чтобы они были вместе, я хочу один в каждом отдельном цикле while. Вот что ядо сих пор

в основном мне нужно сделать 3 вопроса с несколькими ответами, и «q» содержит ответ, который нужно проверить, и если правильно, он подсчитывает точку в «pt», тогда «q» сбрасывается для использования.в следующем вопросе, так что у меня не будет 3 переменных для трех крошечных заданий ..

q =""
pt = int(0)
print('''\n\n - Answer only with A, B, C Ou D(casing doesn't matter), anything else will be disregarded. \n\n
1-) who would win, Jason Vorhees or Freddy Krugger!? \n A-) Freddy \n B-) Jason \n C-) the Public \n D-) Debatable \n\n
2-) Who is the fastest!? \n A-) Sonic \n B-) speedy \n C-) Flash \n D-) Monica \n\n
3-)Wich boardgame is based on H.P.Lovecraft's stories!? \n A-) Call of Cthulhu \n B-) Sushi Go \n C-) The Resistance \n D-) Arkham Horror \n\n''')
# question 1
while(True):
    q = input("answer 1: ")
    if(q == "B" or q == "b"):
        print("Correct!")
        pt= pt+1
        break
    if(q == "a" or q == "c" or q == "d" or q == "A" or q == "C" or q == "D"):
        print('wrong, the correct one is B \n')
        break
    else:
        print("enter a valid letter!!!")
q=""
# question 2
while(True):
    q = input("answer 2: ")
    if(q == "A" or q == "a"):
        print("Correct!")
        pt= pt+1
        break
    if(q == "b" or q == "c" or q == "d" or q == "B" or q == "C" or q == "D"):
        print('wrong, the correct one is A \n')
        break
    else:
        print("enter a valid letter!!!")
q=""
# question 3
while(True):
    q = input("answer 3: ")
    if(q == "D" or q == "d"):
        print("Correct!")
        pt= pt+1
        break
    if(q == "a" or q == "b" or q == "c" or q == "A" or q == "B" or q == "C"):
        print('wrong, the correct one is D \n')
        break
    else:
        print("enter a valid letter!!!")
q=""
#Final
if(pt>0):
    print('You got', pt, 'out of 3 questions right \n')
else:
    print('unfortunately you got it all wrong.. not even to look online broh!? :v \n')

1 Ответ

0 голосов
/ 22 сентября 2019

Если вам нужна помощь, оставьте комментарий с ясным, ожидаемым поведением.Я изменяю немного, чтобы повторно использовать while предложение и if условия, чтобы минимизировать ваш код, здесь.

print('''\n\n - Answer only with A, B, C and D (casing doesn't matter), anything else will be disregarded. \n\n''')


questions = ['''1-) who would win, Jason Vorhees or Freddy Krugger!? \n A-) Freddy \n B-) Jason \n C-) the Public \n D-) Debatable \n\n''', 
             '''2-) Who is the fastest!? \n A-) Sonic \n B-) speedy \n C-) Flash \n D-) Monica \n\n''', 
             '''3-) Wich boardgame is based on H.P.Lovecraft's stories!? \n A-) Call of Cthulhu \n B-) Sushi Go \n C-) The Resistance \n D-) Arkham Horror \n\n''']
answers = ['B', 'A', 'D']
letters = ['A', 'B', 'C', 'D']


num = 0
pt = 0

while(num < 3):
    print(title)
    print(questions[num])

    q = input("answer {}: ".format(num+1)).upper()
    if q in answers[num]:
        print("Correct! \n")
        pt += 1
    elif q in letters:
        print('wrong, the correct one is {} \n'.format(answers[num]))
    else:
        print("enter a valid letter!!!")

    num += 1


#Final
if pt > 0:
    print('You got {} out of 3 questions right \n'.format(pt))
else:
    print('unfortunately you got it all wrong.. not even to look online broh!? :v \n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...