#python #arrays #for-loop #counter #linear-search
#python #массивы #for-цикл #счетчик #линейный поиск
Вопрос:
Итак, я кодирую базовую систему входа в систему для своего класса, и я использую цикл for и счетчик для линейного поиска по списку. Однако, когда я ввожу имя пользователя, которое должно быть правильным, оно возвращается как несанкционированное. Я пробовал печатать счетчик между каждым проходом цикла и обнаружил, что, хотя диапазон равен (0,6), он учитывает только до трех?
изображение кода, оболочки и сообщения об ошибке
import random
userver = 0
userList = ["Arabella12", "Constance01", "Hugo11", "James09", "Jane12", "Max06", "Ted04"]
pwrdList = ["bella12", "1234", "HGWel!", "j@me£S", "Password", "notpassword", "ted4"]
found = False
pfound = False
def login():
username = input("Type in your username ")
index1 = 0
wrong = 0
found = False
c3 = 0
print("index one before c3 loop=", index1) #delete after testing
for c3 in range(0, 6): #username check counter
if username == userList[c3]: #if username is found with the counter c3
found = True #making the key for the next part of the code true
index = s(c3)
print(index," is the index")
c3 = c3 1
break
elif found == False:
print("c3: ", c3) #checking counter- delete after debugging
print("unauthorised user...attempting again") #if username isnt present
c3 = c3 1 #upping the counter
exit
login()
Комментарии:
1. Почему вы «повышаете счетчик», а не просто позволяете
for
циклу развиваться самостоятельно? Возможно, вам нужно больше прочитать оfor
циклах в Python .2. Какой смысл использовать
exit
внутри цикла for?3. Вы вмешиваетесь в счетчик — не увеличивайте его «вручную».
Ответ №1:
Диапазон неверен, потому что вы используете “
вместо "
. Также вам не нужно использовать exit в elif и увеличивать счетчик — это делается автоматически