for和while循环组合

2024-10-05 10:41:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的构造问题列表添加一段时间。我希望python只允许回答“helemaal mee-oneens、mee-oneens等”。

我理解如何用简单的代码来实现这一点。但我不知道如何让所有这些问题只接受我想要的答案的输入。

存在原始输入,因此人们必须能够键入他们的答案。我尝试了以下方法:
for Vragenlijst_vriendelijkheid in (list(range(0,8))):
 while Vragenlijst_vriendelijkheid (list(range(0,8))) != "Helemaal niet mee eens" and != "Niet mee eens" and != "Neutraal" and != "Mee eens" and != "Helemaal mee eens":
   print ("Let op: deze vragen zijn hoofdletter gevoelig, elk antwoord dient precies overgenomen te worden.")

结果不太好。它只是印了很多“他是胡佛字母gevoelig”。老侄女遇到了胡夫德·格施雷特·沃登,“有人能帮我吗?”? 我不擅长编程,我必须为学校的作业做这个,我真的不懂

while Welk_construct != "vriendelijkheid" and Welk_construct != "emotionele stabiliteit" and Welk_construct != "extraversie" and Welk_construct != "consciëntieusheid" and Welk_construct != "autonomie":
  print ("Let op: het programma is hoofdletter gevoelig. Er dient niet met hoofdletters geschreven te worden.")
  Welk_construct = input ("Welk construct wilt je meten? Typ hier een van de vijf constructen.")
  if Welk_construct == ("vriendelijkheid"): 
     Antwoord_V1 = input (Vragenlijst_vriendelijkheid [0])
     Antwoord_V2 = input (Vragenlijst_vriendelijkheid [1])
     Antwoord_V3 = input (Vragenlijst_vriendelijkheid [2])
     Antwoord_V4 = input (Vragenlijst_vriendelijkheid [3])
     Antwoord_V5 = input (Vragenlijst_vriendelijkheid [4])
     Antwoord_V6 = input (Vragenlijst_vriendelijkheid [5])
     Antwoord_V7 = input (Vragenlijst_vriendelijkheid [6])
     Antwoord_V8 = input (Vragenlijst_vriendelijkheid [7])
  elif Welk_construct == ("consciëntieusheid"): 
     Antwoord_C1 = input (Vragenlijst_consciëntieusheid [0])
     Antwoord_C2 = input (Vragenlijst_consciëntieusheid [1])
     Antwoord_C3 = input (Vragenlijst_consciëntieusheid [2])
     Antwoord_C4 = input (Vragenlijst_consciëntieusheid [3])
     Antwoord_C5 = input (Vragenlijst_consciëntieusheid [4])
     Antwoord_C6 = input (Vragenlijst_consciëntieusheid [5])
     Antwoord_C7 = input (Vragenlijst_consciëntieusheid [6])
     Antwoord_C8 = input (Vragenlijst_consciëntieusheid [7])
  elif Welk_construct == ("autonomie"):
     Antwoord_A1 = input (Vragenlijst_autonomie [0])
     Antwoord_A2 = input (Vragenlijst_autonomie [1])
     Antwoord_A3 = input (Vragenlijst_autonomie [2])
     Antwoord_A4 = input (Vragenlijst_autonomie [3])
     Antwoord_A5 = input (Vragenlijst_autonomie [4])
     Antwoord_A6 = input (Vragenlijst_autonomie [5])
     Antwoord_A7 = input (Vragenlijst_autonomie [6])
     Antwoord_A8 = input (Vragenlijst_autonomie [7])
  elif Welk_construct == ("extraversie"):
     Antwoord_E1 = input (Vragenlijst_extraversie [0])
     Antwoord_E2 = input (Vragenlijst_extraversie [1])
     Antwoord_E3 = input (Vragenlijst_extraversie [2])
     Antwoord_E4 = input (Vragenlijst_extraversie [3])
     Antwoord_E5 = input (Vragenlijst_extraversie [4])
     Antwoord_E6 = input (Vragenlijst_extraversie [5])
     Antwoord_E7 = input (Vragenlijst_extraversie [6])
     Antwoord_E8 = input (Vragenlijst_extraversie [7])
  elif Welk_construct == ("emotionele stabiliteit"):
     Antwoord_ES1 = input (Vragenlijst_emotionele_stabiliteit [0])
     Antwoord_ES2 = input (Vragenlijst_emotionele_stabiliteit [1])
     Antwoord_ES3 = input (Vragenlijst_emotionele_stabiliteit [2])
     Antwoord_ES4 = input (Vragenlijst_emotionele_stabiliteit [3])
     Antwoord_ES5 = input (Vragenlijst_emotionele_stabiliteit [4])
     Antwoord_ES6 = input (Vragenlijst_emotionele_stabiliteit [5])
     Antwoord_ES7 = input (Vragenlijst_emotionele_stabiliteit [6])
     Antwoord_ES8 = input (Vragenlijst_emotionele_stabiliteit [7])

这是整个文件:

# antwoorden demografische vragen
Naam = ("onbekend")
Geslacht = ("onbekend")
Leeftijd = ("onbekend")

# overige vragen
Welk_construct = ("onbekend")
Nog_een = ("onbekend")

# antwoorden Vragenlijst_vriendelijkheid
Antwoord_V1 = ("onbekend")
Antwoord_V2 = ("onbekend")
Antwoord_V3 = ("onbekend")
Antwoord_V4 = ("onbekend")
Antwoord_V5 = ("onbekend")
Antwoord_V6 = ("onbekend")
Antwoord_V7 = ("onbekend")
Antwoord_V8 = ("onbekend")

# antwoorden Vragenlijst_consiëntieusheid
Antwoord_C1 = ("onbekend")
Antwoord_C2 = ("onbekend")
Antwoord_C3 = ("onbekend")
Antwoord_C4 = ("onbekend")
Antwoord_C5 = ("onbekend")
Antwoord_C6 = ("onbekend")
Antwoord_C7 = ("onbekend")
Antwoord_C8 = ("onbekend")

# antwoorden Vragenlijst_autonomie
Antwoord_A1 = ("onbekend")
Antwoord_A2 = ("onbekend")
Antwoord_A3 = ("onbekend")
Antwoord_A4 = ("onbekend")
Antwoord_A5 = ("onbekend")
Antwoord_A6 = ("onbekend")
Antwoord_A7 = ("onbekend")
Antwoord_A8 = ("onbekend")

# antwoorden Vragenlijst_extraversie
Antwoord_E1 = ("onbekend")
Antwoord_E2 = ("onbekend")
Antwoord_E3 = ("onbekend")
Antwoord_E4 = ("onbekend")
Antwoord_E5 = ("onbekend")
Antwoord_E6 = ("onbekend")
Antwoord_E7 = ("onbekend")
Antwoord_E8 = ("onbekend")

# antwoorden Vragenijst_emotionele_stabiliteit
Antwoord_ES1 = ("onbekend")
Antwoord_ES2 = ("onbekend")
Antwoord_ES3 = ("onbekend")
Antwoord_ES4 = ("onbekend")
Antwoord_ES5 = ("onbekend")
Antwoord_ES6 = ("onbekend")
Antwoord_ES7 = ("onbekend")
Antwoord_ES8 = ("onbekend")


# vragenlijsten

Demografische_vragen = (["Wat is uw naam? Typ hier uw naam.", "Wat is uw geslacht? Typ hier Man, Vrouw of Anders.", "Wat is uw leeftijd? Typ hier uw leeftijd in jaren."])

Vragenlijst_vriendelijkheid = (["Vraag V1: Ik heb vertrouwen in anderen. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", " Vraag V2: Ik gebruik en manipuleer anderen om mijn zin te krijgen. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag V3: Ik help anderen graag. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraaga V4: Ik hou van strijd en een stevige discussie. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag V5: Ik vind mezelf beter dan anderen. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag V6: Ik heb medelijden met daklozen. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag V7: Ik denk dat mensen in principe goede bedoelingen hebben. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag V8: Ik vind het niet erg om te bedriegen om hogerop te komen. Typ hier: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens."])

Vragenlijst_consciëntieusheid = (["Vraag C1: Ik breng taken tot een goed einde. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C2: Ik hou niet van wandorde en ruim graag op. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C3: Ik hou mijn beloftes. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C4: Ik ben een harde werker. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C5: Ik ben altijd voorbereid. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C6: Ik ben erg spontaan en reageer zonder na te denken. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C7: Ik doe de dingen die k doe altijd goed. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag C8: Ik vergeet vaak dingen op de juiste plaats terug te leggen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens."])

Vragenlijst_autonomie = (["Vraag A1: Ik heb een levendige fantasie. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A2: Ik vind kunst belangrijk. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A3: Ik ervaar sterke en gevarieerde emoties. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A4: Ik verkies afwisseling oven routine. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A5: Ik lees graag uitdagende boeken en artikelen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A6: Ik verkies politiek die voor verandering is en progressief. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A7: Ik laat mijn verbeelding graag de vrije loop. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag A8: Ik zie de schoonheid van dingen die anderen niet opvallen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens."])

Vragenlijst_extraversie = (["Vraag E1: Ik maak gemakkelijk vrienden. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E2: Ik hou van grote feesten en bijeenkomsten. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E3: Ik neem graag de leiding in situaties en bij gebeurtenissen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E4: Ik heb moeite om anderen te benaderen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E5: Ik hou van opwinding en spanning. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E6: Ik ben een heel vrolijk persoon. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E7: Ik voel me op mijn gemak bij andere mensen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag E8: Ik praat met veel verschillende mensen op feestjes. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens."])

Vragenlijst_emotionele_stabiliteit = (["Vraag ES1: Ik maak me veel zorgen. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES2: Ik word snel boos. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES3: Ik voel me vaak verdrietig. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES4: Ik laat me regelmatig gaan wat betreft genieten. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES5: Ik ben snel in paniek. Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES6: Ik vrees vaak het ergste.  Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES7: Ik ben altijd bezig en druk met dingen.  Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens.", "Vraag ES8: Ik raak snel geïrriteerd.  Typ hieronder: Helemaal niet mee eens, Niet mee eens, Neutraal, Mee eens, Helemaal mee eens." ])



# demografische vragen
print ("Hallo! Voordat we met de vragenlijst gaan beginnen, komen er een paar vragen over u. Zo kunnen we uw gegevens het best verwerken.")
Naam = input (Demografische_vragen [0])

while Geslacht != "Man" and Geslacht != "man" and Geslacht != "Vrouw"  and Geslacht != "vrouw"and Geslacht != "Anders" and Geslacht != "anders":
  Geslacht = input (Demografische_vragen [1])

invalide = True
while invalide:
  Leeftijd = int (input (Demografische_vragen [2]))
  if Leeftijd >=16 and Leeftijd <=99:
    invalide= False
  else:
    print ("Sorry" ,(Naam),", je moet tussen de 16 en 99 zijn")



# intro vragenlijst
print ("Welkom" ,(Naam),", je gaat nu een vragenlijst invullen voor één van de Big Five persoonijkheidstrekken.")
print ("Elk onderdeel heeft 8 vragen. Deze zullen ongeveer 2 minuten duren.")
print ("Je kunt kiezen uit: vriendelijkheid, emotionele stabiliteit, extraversie, consciëntieusheid en autonomie")


# Welk construct wil je meten
while Welk_construct != "vriendelijkheid" and Welk_construct != "emotionele stabiliteit" and Welk_construct != "extraversie" and Welk_construct != "consciëntieusheid" and Welk_construct != "autonomie":
  print ("Let op: het programma is hoofdletter gevoelig. Er dient niet met hoofdletters geschreven te worden.")
  Welk_construct = input ("Welk construct wilt je meten? Typ hier een van de vijf constructen.")
  if Welk_construct == ("vriendelijkheid"):
     Antwoord_V1 = input (Vragenlijst_vriendelijkheid [0])
     Antwoord_V2 = input (Vragenlijst_vriendelijkheid [1])
     Antwoord_V3 = input (Vragenlijst_vriendelijkheid [2])
     Antwoord_V4 = input (Vragenlijst_vriendelijkheid [3])
     Antwoord_V5 = input (Vragenlijst_vriendelijkheid [4])
     Antwoord_V6 = input (Vragenlijst_vriendelijkheid [5])
     Antwoord_V7 = input (Vragenlijst_vriendelijkheid [6])
     Antwoord_V8 = input (Vragenlijst_vriendelijkheid [7])
  elif Welk_construct == ("consciëntieusheid"): 
     Antwoord_C1 = input (Vragenlijst_consciëntieusheid [0])
     Antwoord_C2 = input (Vragenlijst_consciëntieusheid [1])
     Antwoord_C3 = input (Vragenlijst_consciëntieusheid [2])
     Antwoord_C4 = input (Vragenlijst_consciëntieusheid [3])
     Antwoord_C5 = input (Vragenlijst_consciëntieusheid [4])
     Antwoord_C6 = input (Vragenlijst_consciëntieusheid [5])
     Antwoord_C7 = input (Vragenlijst_consciëntieusheid [6])
     Antwoord_C8 = input (Vragenlijst_consciëntieusheid [7])
  elif Welk_construct == ("autonomie"):
     Antwoord_A1 = input (Vragenlijst_autonomie [0])
     Antwoord_A2 = input (Vragenlijst_autonomie [1])
     Antwoord_A3 = input (Vragenlijst_autonomie [2])
     Antwoord_A4 = input (Vragenlijst_autonomie [3])
     Antwoord_A5 = input (Vragenlijst_autonomie [4])
     Antwoord_A6 = input (Vragenlijst_autonomie [5])
     Antwoord_A7 = input (Vragenlijst_autonomie [6])
     Antwoord_A8 = input (Vragenlijst_autonomie [7])
  elif Welk_construct == ("extraversie"):
     Antwoord_E1 = input (Vragenlijst_extraversie [0])
     Antwoord_E2 = input (Vragenlijst_extraversie [1])
     Antwoord_E3 = input (Vragenlijst_extraversie [2])
     Antwoord_E4 = input (Vragenlijst_extraversie [3])
     Antwoord_E5 = input (Vragenlijst_extraversie [4])
     Antwoord_E6 = input (Vragenlijst_extraversie [5])
     Antwoord_E7 = input (Vragenlijst_extraversie [6])
     Antwoord_E8 = input (Vragenlijst_extraversie [7])
  elif Welk_construct == ("emotionele stabiliteit"):
     Antwoord_ES1 = input (Vragenlijst_emotionele_stabiliteit [0])
     Antwoord_ES2 = input (Vragenlijst_emotionele_stabiliteit [1])
     Antwoord_ES3 = input (Vragenlijst_emotionele_stabiliteit [2])
     Antwoord_ES4 = input (Vragenlijst_emotionele_stabiliteit [3])
     Antwoord_ES5 = input (Vragenlijst_emotionele_stabiliteit [4])
     Antwoord_ES6 = input (Vragenlijst_emotionele_stabiliteit [5])
     Antwoord_ES7 = input (Vragenlijst_emotionele_stabiliteit [6])
     Antwoord_ES8 = input (Vragenlijst_emotionele_stabiliteit [7])

# wil je nog een construct meten?
while Nog_een != "ja" and Nog_een != "nee":
 print ("Let op: het antwoord moet expliciet ja of nee zijn en het programma is hoofdlettergevoelig.")
 Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")

# Nee
 if Nog_een == "nee":
  print ("Bedankt voor je deelname!")

 # ja
 if Nog_een == "ja":
     Welk_construct = input ("Welk construct wilt je meten? Typ hier een van de vijf constructen.")
     while Welk_construct != "vriendelijkheid" and Welk_construct != "emotionele stabiliteit" and Welk_construct != "extraversie" and Welk_construct != "consciëntieusheid" and Welk_construct != "autonomie":
      print ("Let op: het programma is hoofdletter gevoelig. Er dient niet met hoofdletters geschreven te worden.")
      Welk_construct = input ("Welk construct wilt je meten? Typ hier een van de vijf constructen.")
     if Welk_construct == ("vriendelijkheid"):
        Antwoord_V1 = input (Vragenlijst_vriendelijkheid [0])
        Antwoord_V2 = input (Vragenlijst_vriendelijkheid [1])
        Antwoord_V3 = input (Vragenlijst_vriendelijkheid [2])
        Antwoord_V4 = input (Vragenlijst_vriendelijkheid [3])
        Antwoord_V5 = input (Vragenlijst_vriendelijkheid [4])
        Antwoord_V6 = input (Vragenlijst_vriendelijkheid [5])
        Antwoord_V7 = input (Vragenlijst_vriendelijkheid [6])
        Antwoord_V8 = input (Vragenlijst_vriendelijkheid [7])
        Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")
        if Nog_een == "nee":
         print ("Bedankt voor je deelname!")
     elif Welk_construct == ("consciëntieusheid"): 
        Antwoord_C1 = input (Vragenlijst_consciëntieusheid [0])
        Antwoord_C2 = input (Vragenlijst_consciëntieusheid [1])
        Antwoord_C3 = input (Vragenlijst_consciëntieusheid [2])
        Antwoord_C4 = input (Vragenlijst_consciëntieusheid [3])
        Antwoord_C5 = input (Vragenlijst_consciëntieusheid [4])
        Antwoord_C6 = input (Vragenlijst_consciëntieusheid [5])
        Antwoord_C7 = input (Vragenlijst_consciëntieusheid [6])
        Antwoord_C8 = input (Vragenlijst_consciëntieusheid [7])
        Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")
        if Nog_een == "nee":
         print ("Bedankt voor je deelname!")
     elif Welk_construct == ("autonomie"):
        Antwoord_A1 = input (Vragenlijst_autonomie [0])
        Antwoord_A2 = input (Vragenlijst_autonomie [1])
        Antwoord_A3 = input (Vragenlijst_autonomie [2])
        Antwoord_A4 = input (Vragenlijst_autonomie [3])
        Antwoord_A5 = input (Vragenlijst_autonomie [4])
        Antwoord_A6 = input (Vragenlijst_autonomie [5])
        Antwoord_A7 = input (Vragenlijst_autonomie [6])
        Antwoord_A8 = input (Vragenlijst_autonomie [7])
        Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")
        if Nog_een == "nee":
         print ("Bedankt voor je deelname!")
     elif Welk_construct == ("extraversie"):
        Antwoord_E1 = input (Vragenlijst_extraversie [0])
        Antwoord_E2 = input (Vragenlijst_extraversie [1])
        Antwoord_E3 = input (Vragenlijst_extraversie [2])
        Antwoord_E4 = input (Vragenlijst_extraversie [3])
        Antwoord_E5 = input (Vragenlijst_extraversie [4])
        Antwoord_E6 = input (Vragenlijst_extraversie [5])
        Antwoord_E7 = input (Vragenlijst_extraversie [6])
        Antwoord_E8 = input (Vragenlijst_extraversie [7])
        Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")
        if Nog_een == "nee":
         print ("Bedankt voor je deelname!")
     elif Welk_construct == ("emotionele stabiliteit"):
        Antwoord_ES1 = input (Vragenlijst_emotionele_stabiliteit [0])
        Antwoord_ES2 = input (Vragenlijst_emotionele_stabiliteit [1])
        Antwoord_ES3 = input (Vragenlijst_emotionele_stabiliteit [2])
        Antwoord_ES4 = input (Vragenlijst_emotionele_stabiliteit [3])
        Antwoord_ES5 = input (Vragenlijst_emotionele_stabiliteit [4])
        Antwoord_ES6 = input (Vragenlijst_emotionele_stabiliteit [5])
        Antwoord_ES7 = input (Vragenlijst_emotionele_stabiliteit [6])
        Antwoord_ES8 = input (Vragenlijst_emotionele_stabiliteit [7])
        Nog_een = input ("Wil je nog een construct meten? Typ ja of nee.")
        if Nog_een == "nee":
         print ("Bedankt voor je deelname!")


# opslaan antwoorden
antwoorden_demografische_vragen = [Naam, Leeftijd, Geslacht]
antwoorden_vriendelijkheid = [Antwoord_V1, Antwoord_V2, Antwoord_V3, Antwoord_V4, Antwoord_V5, Antwoord_V6, Antwoord_V7, Antwoord_V8]
antwoorden_consciëntieusheid = [Antwoord_C1, Antwoord_C2, Antwoord_C3, Antwoord_C4, Antwoord_C5, Antwoord_C6, Antwoord_C7, Antwoord_C8]
antwoorden_autonomie = [Antwoord_A1, Antwoord_A2, Antwoord_A3, Antwoord_A4, Antwoord_A5, Antwoord_A6, Antwoord_A7, Antwoord_A8]
antwoorden_extraversie = [Antwoord_E1, Antwoord_E2, Antwoord_E3, Antwoord_E4, Antwoord_E5, Antwoord_E6, Antwoord_E7, Antwoord_E8]
antwoorden_emotionele_stabiliteit = [Antwoord_ES1, Antwoord_ES2, Antwoord_ES3, Antwoord_ES4, Antwoord_ES5, Antwoord_ES6, Antwoord_ES7, Antwoord_ES8, ]

data = open("antwoorden vragenijst", "a")
data.writelines(str(antwoorden_demografische_vragen) + "\n")
data.writelines(str(antwoorden_vriendelijkheid) + "\n")
data.writelines(str(antwoorden_consciëntieusheid) + "\n")
data.writelines(str(antwoorden_autonomie) + "\n")
data.writelines(str(antwoorden_extraversie) + "\n")
data.writelines(str(antwoorden_extraversie) + "\n")
data.writelines(str(antwoorden_emotionele_stabiliteit) + "\n")
data.close()

Tags: inputconstructikniettypmeeantwoordonbekend
3条回答

你完全可以把这段代码整理一下,使它a)更短,b)更干净

例如,您有:

# antwoorden Vragenijst_emotionele_stabiliteit
Antwoord_ES1 = ("onbekend")
Antwoord_ES2 = ("onbekend")
Antwoord_ES3 = ("onbekend")
Antwoord_ES4 = ("onbekend")
Antwoord_ES5 = ("onbekend")
Antwoord_ES6 = ("onbekend")
Antwoord_ES7 = ("onbekend")
Antwoord_ES8 = ("onbekend")

这可以通过使用这样的构造来清除。请注意,python使用基于“0”的数组/列表:

Antwoord_ES=[]
for i in range(0,7):
    Antwoord_ES.append("onbekend")

print(len(Antwoord_ES))

您可以将此想法扩展到更多维度。请参见此处以获取参考:https://www.geeksforgeeks.org/python-using-2d-arrays-lists-the-right-way/

它之所以保持打印,是因为在第一个while循环中,vrag满足了保持循环的指定条件,并且vrag没有地方将值更改为字符串之一:

for Vragenlijst_vriendelijkheid in (list(range(0,8))):

# Because of the wile-loop, the for-loop only got to iterate once

 while Vragenlijst_vriendelijkheid != "Helemaal niet mee eens" and Vragenlijst_vriendelijkheidg != "Niet mee eens" and Vragenlijst_vriendelijkheid != "Neutraal" and Vragenlijst_vriendelijkheid != "Mee eens" and Vragenlijst_vriendelijkheid != "Helemaal mee eens":
   print ("Let op: deze vragen zijn hoofdletter gevoelig, elk antd dient precies overgenomen te worden.")

要解决此问题,请将while更改为if:

 if Vragenlijst_vriendelijkheid != "Helemaal niet mee eens" and Vragenlijst_vriendelijkheidg != "Niet mee eens" and Vragenlijst_vriendelijkheid != "Neutraal" and Vragenlijst_vriendelijkheid != "Mee eens" and Vragenlijst_vriendelijkheid != "Helemaal mee eens":
   print ("Let op: deze vragen zijn hoofdletter gevoelig, elk antd dient precies overgenomen te worden.")

我希望我能说荷兰语,这样我就能很好地理解这段代码,从而能够准确地向您展示如何更简单地编写它(我在这里看到了足够多的复制+粘贴,我认为您可以将其缩小到当前大小的1/20左右),但我怀疑由于口语障碍,它会变得难以辨认,因此,我将不得不给出一般性提示

一般来说,当你发现自己在做这样的事情时:

  if Welk_construct == ("vriendelijkheid"):
     Antwoord_V1 = input (Vragenlijst_vriendelijkheid [0])
     Antwoord_V2 = input (Vragenlijst_vriendelijkheid [1])
     Antwoord_V3 = input (Vragenlijst_vriendelijkheid [2])
     Antwoord_V4 = input (Vragenlijst_vriendelijkheid [3])
     Antwoord_V5 = input (Vragenlijst_vriendelijkheid [4])
     Antwoord_V6 = input (Vragenlijst_vriendelijkheid [5])
     Antwoord_V7 = input (Vragenlijst_vriendelijkheid [6])
     Antwoord_V8 = input (Vragenlijst_vriendelijkheid [7])

您不希望有8个不同的命名字符串,只希望有8个字符串的列表:

  if Welk_construct == ("vriendelijkheid"):
     antwoord = [input(question) for question in Vragenlijst_vriendelijkheid]

如果要验证输入是否与某组单词匹配,可以使用实际的set。您还可以使用lower()之类的函数来消除大小写差异。因此:

while Geslacht != "Man" and Geslacht != "man" and Geslacht != "Vrouw"  and Geslacht != "vrouw"and Geslacht != "Anders" and Geslacht != "anders":
  Geslacht = input (Demografische_vragen [1])

可以简明扼要地写为:

while Geslacht.lower() not in {"man", "vrouw", "anders"}:
  Geslacht = input(Demografische_vragen[1])

验证输入是否适合特定模式的另一种方法是使用枚举:

from enum import Enum
class Geslacht(Enum):
    MAN = "man"
    VROUW = "vrouw"
    ANDERS = "anders"

while True:
    try:
        geslacht = Geschlact(input(Demografische_vragen[1]))
    except ValueError as error:
        # the loop will continue and try again
        print(error)
    else:
        # geslacht is now guaranteed to be a valid Geslacht enum value
        break

使用枚举的好处是,如果在某个地方键入字符串,将立即出现错误。如果您使用IDE,枚举也会很好地自动完成(因为IDE可以看到枚举定义,只要您开始键入Geslacht.,它就会显示所有有效值的列表),并且如果您使用mypy,您可以完全相信您总是获得特定类型的有效值,即使不需要运行代码并进行测试

在此特定循环中:

for Vragenlijst_vriendelijkheid in (list(range(0,8))):
 while Vragenlijst_vriendelijkheid (list(range(0,8))) != "Helemaal niet mee eens" and != "Niet mee eens" and != "Neutraal" and != "Mee eens" and != "Helemaal mee eens":
   print ("Let op: deze vragen zijn hoofdletter gevoelig, elk antwoord dient precies overgenomen te worden.")

您正在重新分配Vragenlijst_vriendelijkheid,我认为您不想这样做(这是您的问题列表,对吗)?我想你可能想做一些更像:

for question in Vragenlijst_vriendelijkheid:
    if question not in {
        "Helemaal niet mee eens",
        "Niet mee eens",
        "Neutraal",
        "Mee eens",
        "Helemaal mee eens"
    }:
        print("Let op: deze vragen zijn hoofdletter gevoelig, "
              "elk antwoord dient precies overgenomen te worden.")

但我不知道这个循环应该做什么,所以我不确定这会让你离得更近。(应该迭代答案吗?如果是的话,将答案放入列表而不是八个不同名称的变量中是非常重要的!)

相关问题 更多 >

    热门问题