需要这个代码循环,直到我告诉它停止! (瑞典)

时间:2013-10-05 16:26:26

标签: python

#coding: utf-8
from random import shuffle

# Lista med frågor och svar
FS = [
        ("Vad heter det översta lagret av OSI-modellen? ", "Applikation"),
        ("Hur många lager består TCP/IP-modellen av? ", "Fyra"),
        ("Förkorta Hypertext Transfer Protocol. ", "HTTP"),
        ("I vilket lager av OSI-modellen arbetar en router? ", "Nätverk"),
        ("Vad står LAN för i nätverkssammanhang? ", "Local Area Network"),
        ("Vilken typ av nätverk används oftast när man pratar om företagsnätverk: LAN eller WAN? ", "LAN"),
        ("Vad förknippas med en ethernet-kabel: RJ45 eller FK4? ", "RJ45"),
        ("Hur mångar lager består OSI-modellen av? ", "Sju"),
        ("Ingår lagret applikation i både OSI-modellen och TCP/IP-modellen? ", "Ja"),
        ("Vad heter det nedersta lagret i TCP/IP-modellen? ", "Network Interface")
]
shuffle (FS)
Frågor = 0
Rsvar = 0

# Här börjar min kod
print ("Hej! Detta är ett repitionstest för dig som skall göra Cisco-prov")
börja = input("Vill du påbörja testet? [Ja/Nej]: ")
if börja == ("Ja") or börja == ("ja"):


                for Fråga, Svar in FS:
                        answ = input(Fråga)
                        Frågor +=1
                        if answ == Svar:
                                print ("Rätt svar! Bra jobbat")
                                Rsvar +=1
                        elif answ != Svar:
                                print ("Fel svar!")

                        choice = input("Vill du fortsätta? [Ja/Nej]: ")
                        if choice == "Ja" or choice == "ja":
                                continue

                        else:
                                resultat = Rsvar / Frågor * 100
                                if resultat >= 75:
                                        print ("Du hade " + str(resultat) + str("%") + " rätt.")
                                        print ("Du är godkänd.")
                                        break

                                else:
                                        print ("Du hade " + str(resultat) + str("%") + " rätt.")
                                        print ("Du behöver minst 75 " + str("%") + " rätt för godkänt.")
                                        break          

else:
        print ("På återseende!")

2 个答案:

答案 0 :(得分:1)

要构建无限循环,您可以使用while True

while True:
    response = input('finished? ')
    if response.lower() == 'yes':
        break

如果您希望无限期地循环显示值列表,可以使用itertools.cycle

from itertools import cycle

tests = (
    ('2+2','4'),
    ('4+7', '11'),
    ('1+9', '10')
)

for question, answer in cycle(tests)
    response = input('what is ' + question + '? ')
    if response.trim() == answer:
        break

注意,您可以使用

测试大写和小写
response.lower() == 'answer in lowercase'

请注意上述代码,而不是elif answ != Svar:,您只需撰写else:

答案 1 :(得分:0)

只需替换

if choice == "Ja" or choice == "ja":
    continue
else:
   [...omissis...]

if choice.lower() == "nej":
    resultat = Rsvar / Frågor * 100
    print ("Du hade " + str(resultat) + str("%") + " rätt.")
    if resultat >= 75:
        print ("Du är godkänd.")
    else:
        print ("Du behöver minst 75 " + str("%") + " rätt för godkänt.")
    break