自动创建字典,并进行查找,但是会出现一个问题,字典中第一项无法被识别(用相同的数据添加过2个两项)
代码如下
# 定义变量区
n = 0
key = 0
index = 0 # 判断用户是否存在的索引
str1 = "0" # 存储用户名
str_key = "0" # 存储密码
users = {
}
# 实体部分区域
while 1:
print("图书管理系统--\n")
print("请登录后再使用\n")
key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
if key == 3:
n += 1
print("请输入用户名和密码")
str1 = input("用户名:")
print("\n")
str_key = input("密码:")
# 注意此时不从0开始,从1开始
users[n] = {
"user_num": n,
"name": str1,
"keywords": str_key
}
print(users)
elif key == 1:
print("请输入用户名")
str2 = input("用户名")
# 判断用户是否存在
for i in range(1,len(users)):
if str2 == users[i]["name"]:
index = i
print(index)
break
if index == 0:
print("请先注册")
str3 = input("按下任意键跳转")
continue
# 用户存在,输入密码
print("欢迎尊敬的"+str2+"用户" )
print("请输入密码")
while 1:
key1 = input("密码: ")
if key1 == users[index]["keywords"]:
print("登陆成功")
break
else:
print("请重新输入")
# 开始访问内部界面
else:
break
print(users)
会出现如图所示问题
修改后运行效果如下, 如有帮助给个采纳谢谢, 稍后我会将代码分析发到博客,如有不解的地方可以看下. 另外我正在参加一个比赛 , 希望你可以顺手来个一键三连谢谢 地址 https://blog.csdn.net/qq_33681891/article/details/131889556
效果:
/Users/chengruo/PycharmProjects/study/venv/bin/python /Users/chengruo/PycharmProjects/study/问答.py
图书管理系统--
请登录后再使用
登录-1,若无账号请注册-3,按其余任意键退出
1
请输入用户名
用户名:rc
请先注册
按下任意键跳转3
图书管理系统--
请登录后再使用
登录-1,若无账号请注册-3,按其余任意键退出
3
请输入用户名和密码
用户名:rc
密码:123
{2: {'user_num': 2, 'name': 'rc', 'keywords': '123'}}
图书管理系统--
请登录后再使用
登录-1,若无账号请注册-3,按其余任意键退出
1
请输入用户名
用户名:rc
2
欢迎尊敬的rc用户
请输入密码
密码: 123
登录成功
图书管理系统--
请登录后再使用
登录-1,若无账号请注册-3,按其余任意键退出
3
请输入用户名和密码
用户名:rc
密码:123
{2: {'user_num': 2, 'name': 'rc', 'keywords': '123'}, 3: {'user_num': 3, 'name': 'rc', 'keywords': '123'}}
图书管理系统--
请登录后再使用
登录-1,若无账号请注册-3,按其余任意键退出
修改后代码
# 定义变量区
n = 1
key = 0
index = 0 # 判断用户是否存在的索引
str1 = "0" # 存储用户名
str_key = "0" # 存储密码
users = {}
# 实体部分区域
while 1:
print("图书管理系统--\n")
print("请登录后再使用\n")
key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
if key == 3:
n += 1
print("请输入用户名和密码")
str1 = input("用户名:")
print("\n")
str_key = input("密码:")
users[n] = {
"user_num": n,
"name": str1,
"keywords": str_key
}
print(users)
elif key == 1:
print("请输入用户名")
str2 = input("用户名:")
# 判断用户是否存在
index = 0 # 重置索引值
for i, user in users.items():
if str2 == user["name"]:
index = i
print(index)
break
if index == 0:
print("请先注册")
str3 = input("按下任意键跳转")
continue
# 用户存在,输入密码
print("欢迎尊敬的"+str2+"用户")
print("请输入密码")
while 1:
key1 = input("密码: ")
if key1 == users[index]["keywords"]:
print("登录成功")
break
else:
print("请重新输入")
else:
break
print(users)
创建2个相同的项之后才可以查找到
【题目描述】 请输入一个字符串,再输入要删除的某个字符 ,大小写不用区分,将字符串中出现的指定字符全部删除。
【思路分析】
此题只需要使用python的内置函数将string中的响应元素替换成空字符即可达到删除的目的。
【注意】由于不区分大小写,则需要进行两次替换操作,一次替换要替换字符的大写形式;一次替换要删除字符的小写形式。
【实现代码】
# 3、请输入一个字符串,再输入要删除的某个字符 ,大小写不用区分,将字符串中出现的指定字符全部删除。
string = input("请输入一个字符串:")
wantremove = input("请输入要删除的值:")
print("删除前: " + string)
up = wantremove.upper() # 存储要删除值的大写
low = wantremove.lower() # 存储要删除值的小写
# 字符串处理,先把大写的符合条件替换删除,再把小写的替换删除
string = string.replace(up, "")
string = string.replace(low, "")
# 输出结果
print("删除后: " + string)
【实现结果】