Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中出现意外的缩进错误,即使存在';没有缩进_Python - Fatal编程技术网

Python中出现意外的缩进错误,即使存在';没有缩进

Python中出现意外的缩进错误,即使存在';没有缩进,python,Python,当我运行这段代码时,我得到了一个意外的缩进错误,但是在它说有缩进的地方没有缩进。我使用的是Python64位和Python3。我尝试取消所有代码的身份并重新身份验证,但我得到了相同的错误。我正在尝试创建一个用户可以注册和登录的GUI 代码如下: from tkinter import * import json import hashlib import uuid from tkinter import messagebox filename = ("username.json") filena

当我运行这段代码时,我得到了一个意外的缩进错误,但是在它说有缩进的地方没有缩进。我使用的是Python64位和Python3。我尝试取消所有代码的身份并重新身份验证,但我得到了相同的错误。我正在尝试创建一个用户可以注册和登录的GUI

代码如下:

from tkinter import *
import json
import hashlib
import uuid
from tkinter import messagebox
filename = ("username.json")
filename2 = ("password.json")

def hash_password(password):
    # uuid is used to generate a random number
    salt = uuid.uuid4().hex
    return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt

def check_password(hashed_password, user_password):
    password, salt = hashed_password.split(':')
    return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()

def sign_up():
    adduser = (e3.get())
    addpassword = (e4.get())

    try:
        hashed_password = hash_password(addpassword)
        with open (filename, "w") as f_obj:
            json.dump(adduser, f_obj)

        with open (filename2, "w") as f:
            json.dump(hashed_password, f)
        #print("Signed up")
        messagebox.showinfo("Info", "You have succesfully signed up!")

def log_in():
    try:
        with open (filename) as f_obj:
        data = json.load(f_obj)
    except FileNotFoundError :
        usernameguess = (e1.get())
        passwordguess = (e2.get())
        user_attempt = usernameguess
        pwd_attempt = passwordguess
        with open (filename) as f_obj:
            username = json.load(f_obj)
        if username == user_attempt:
            with open (filename2) as f:
            password = json.load(f)
            if check_password(password, pwd_attempt):
                print("You're into your account")
            else:
                print("Incorrect password")
        else:
            print("Incorrect username")


master = Tk()

master.geometry("390x220")
master.iconbitmap('favicon.ico')
master.title("Account Manager : Log In | Sign Up")
Label(master, text="Welcome to the Account Manager \n Sign up or Log in \n Note: Your password is protected by hash encryption").grid(row=0, column=1)
Label(master, text="Log In").grid(row=1, column=1)
Label(master, text="Username").grid(row=2)
Label(master, text="Password").grid(row=3)

Label(master, text="Sign Up").grid(row=5, column=1)
Label(master, text="Username").grid(row=6)
Label(master, text="Password").grid(row=7)


e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)
e4 = Entry(master)

e1.grid(row=2, column=1)
e2.grid(row=3, column=1)
e3.grid(row=6, column=1)
e4.grid(row=7, column=1)


Button(master, text='Quit', command=master.quit).grid(row=9, column=0, sticky=W, pady=4)
Button(master, text='Sign Up', command=sign_up).grid(row=8, column=1, sticky=W, pady=4)
Button(master, text='Log In', command=log_in).grid(row=4, column=1, sticky=W, pady=4)


mainloop( )

错误不在同一行,但在前一行

在函数
sign\u up()
(登录()之前的函数函数)中,有
try
,但没有
,除了:

def sign_up():
    adduser = (e3.get())
    addpassword = (e4.get())

    try:
        hashed_password = hash_password(addpassword)
        with open (filename, "w") as f_obj:
            json.dump(adduser, f_obj)

        with open (filename2, "w") as f:
            json.dump(hashed_password, f)
        #print("Signed up")
        messagebox.showinfo("Info", "You have succesfully signed up!")

def log_in():
    try:
        with open (filename) as f_obj:
        ...
Python需要一个缩进的
语句,除了:
语句。因此,出现了错误

此代码中还存在其他真正的缩进错误,一旦纠正此错误,这些错误将变得明显


也许Python应该给出一个
“missing except”error
而不是
“indent”error

您可以发布错误回溯吗?请从回溯行开始发布完整的错误消息。我看不到任何意外的缩进,但是有几个
with
语句应该对
with
块中应该包含的代码进行缩进。我敢打赌您会遇到“意外的未缩进”错误。顺便说一句,如果您真的想正确执行此操作,应该使用更好的密码哈希函数。标准库(从Python 3.4开始)有pbkdf2,从3.6开始有scrypt。请参阅@B.Sommer如果您的问题得到解决,您应该接受答案: