У меня проблемы с записью в текстовый файл, потому что он говорит, что моя строка должна быть str, а не int - PullRequest
0 голосов
/ 13 января 2020
print("Welcome to English, please enter your name,age,and password.")
print("If you have previously signed in, enter using the same name,age,and password")
name = input("Please enter your name: ")
age = input("Now please enter you age: ")
username = name[0:3] + age
password = input("Now please create a password: ")
userpass = (username+","+password)
check = open("logins.txt")
string = check.read().strip().split()
if userpass in string:
    print("You have logged in as",username,"The questions will now start. \n")
else:
    newlog = input("Looks like you dont have an account with those details, Would you like to create a new one? Y/N: ")
    if newlog == "Y" or newlog == "y" or newlog == "yes" or newlog == "Yes":
        f = open("logins.txt","a+")
        chosen = f.write(username+","+password+"\n")
        print("The username",username,"and password",password,"have now been saved, the questions will now start \n")
        f.close()
    else:
        print("Please either sign in or log in and try again.")
        welcome()

import random

f = open("English.txt","r")
points = 0
for line in f:
    currentLine = line.split(",")
    q = currentLine[0]
    answer = currentLine[1]
    questions = currentLine[1:-1]
    random.shuffle(questions)

    print(q)
    for i in range(len(questions)):
        print (i+1,":",questions[i])

    userAnswer = int(input("Make a selection :"))
    if answer == questions[userAnswer-1]:
        points = (points+1)
        print ("CORRECT, You have",points,"points")
        str(points)
    else:
        print ("INCORRECT")
f.close()

f = open("scores.txt","a+")
score = f.write(username+","+password+","+points+"\n") #It is giving a type error about this line and I cant seem to understand why
f.close()

Показанная ошибка: строка 193, на английском языке счёт = (имя пользователя + "," + пароль + "," + points + "\ n") Ошибка типа: должна быть str, а не int

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

1 Ответ

0 голосов
/ 13 января 2020

Заменить строку ошибки на: score = f.write(username+","+password+","+str(points)+"\n")

...