Как вы исправите это для цикла для проверки имени пользователя? - PullRequest
0 голосов
/ 12 октября 2019

Это для моей курсовой работы GCSE, и я не могу понять, что я сделал неправильно в коде. Я попытался изменить тип открытия файла CSV (изменив его с w на r на r +), но цикл for не выполняется.

Предполагается проверить, есть ли имя пользователя в файле CSV и еслиэто, это должно быть принято, иначе они должны быть в состоянии повторно ввести.

Имена пользователей в файлах CSV - Test01 и Test02

Вот мой код:

import csv
import random
Player1 = 0
Player2 = 0
Again = True
File = open("Dice Game.csv","r+")
File.write("Test01" + "\n")
File.write("Test02" + "\n")

while Again == True:
    Input1 = str(input("Player 1, please input your username."))
    Open = open("Dice Game.csv", "r")
    File = csv.reader(File)
    for row in File:
        User = row[0]
        if User == Input1:
            print("That username is not authourised, please re-enter.")
            Again = True
            break
        else:
            Again = False

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Попробуй это. ,,Я предлагаю вам ознакомиться с утверждением, я заметил, что вы не закрываете свои файлы

import csv
import random

with open('DiceGame.csv', 'w', newline='') as file:
    writer = csv.writer(file, delimiter=",")
    writer.writerow(['Test01', 'Test02'])

again = True
while(again):
    _input = str(input("Player 1, please enter  your username: "))
    with open("DiceGame.csv", 'r') as file:
        reader = csv.reader(file)
        for row in reader:
            if _input in row:
                # Username is valid
                again = False
                break
            else:
                print("Invalid username, please try again.")
0 голосов
/ 12 октября 2019

Ваша непосредственная проблема - обратная логика:

    if User == Input1:
        print("That username is not authourised, please re-enter.")

Если имя пользователя совпадает, пользователь авторизован ! Переключитесь на != здесь и переместите break.

...