根据你的描述,密码的匹配部分存在一些问题。下面是对代码进行修改的建议:
print('Welcome to FishC\n====================\n1. Sign up\n2. Sign in\n3. Exit')
namelist = [] # 创建用户名列表
passwordlist = [] # 创建密码列表
while True: # 使用无限循环,直到用户选择退出
x = int(input('Enter your choice: '))
if x == 1: # 注册
print('====================')
name = input('Enter your username: ')
if name in namelist: # 验证用户名是否已存在
print('Error: Username already exists.')
continue
namelist.append(name) # 增加用户名
print(f'Your username is {name}.')
passw = input('Enter your password: ')
passwordlist.append(passw) # 增加用户对应密码
print('Congratulations! You have signed up successfully.')
print('====================')
elif x == 2: # 登录
named = input('Enter your username: ')
if named not in namelist: # 验证用户名是否存在
print('Error: Username not found.')
continue
passwd = input('Enter your password: ')
namelist_index = namelist.index(named) # 查找用户名下标以匹配密码
if passwd == passwordlist[namelist_index]: # 通过下标匹配用户名和密码
print('Welcome home!')
else:
print('Error: Incorrect password.')
elif x == 3: # 退出
break
else:
print('Error: Invalid choice.')
print('See you.')
这样修改后,当用户选择登录时,首先会验证用户名是否存在,然后再通过下标匹配用户名和密码进行验证。这样可以避免密码列表中的密码与用户名无法匹配的问题。
关于函数和数据库的学习,它们是编程中非常重要的概念和工具。学习函数可以帮助你更好地组织和重用代码,而学习数据库可以帮助你存储和管理大量数据。它们可以提高代码的可读性、可维护性和功能扩展性。你可以逐步学习它们,通过实践项目和参考文档来提升你的编程技能。 |