帮我检查代码def d(): mydb = mysql.connector.connect( host="localhost", user="root", passwd="wangzijiao2003" ) b=(input("请输入你的代号,代号请用数字书写")) e=b.isdigit() while True: if e==True: cc=int(b) print("创建成功") break else: print("创建失败") continue while True: passwd1=input("请输入你的密钥,注(密钥必须包含大小写字母)") a=passwd1.isupper()#大写 b=passwd1.islower()#小写 c=passwd1.isalpha()#字母 if (a==False)and(b==False)and(c==True): print("密钥保存成功") break else: print("仔细阅读") continue new[cc]=passwd1 if cc in new: print("ok,完成初始化") else: print("no") print("注册成功") print(new) for i1 in new.keys(): print("你的账号为") print(i1) for ii1 in new.values(): print("你的密码为") print(ii1) id=1 user2=new.keys() passwd2=new.values() sql="insert into zhanghu(id,root1,passwd1) values{}{}{}".format(id,user2,passwd2) ass=mydb.cursor() ass.execute("show databases") for kkss in ass: print(kkss) ass.execute("use myku") ass.execute("CREATE TABLE IF NOT EXISTS zhanghu1 (id int NOT NULL AUTO_INCREMENT,root1 varchar(255) NULL,passwd1 varchar(255) NULL,PRIMARY KEY (id))") ass.execute("insert into zhanghu(id,root1,passwd1) values{}".format(id,user2,passwd2)) mydb.commit() print("over")
时间: 2023-07-16 14:14:25 浏览: 192
代码存在一些错误:
1. 在第14行,应该将 `e=b.isdigit()` 移到 while 循环内部,否则在输入非数字时会造成死循环。
2. 第23行的 `new[cc]=passwd1` 应该在判断 cc 是否在 new 中之后执行。
3. 第31行的 SQL 语句有问题,应该将 VALUES 和括号之间的空格去掉,并且在 VALUES 后面加上一个括号,即 `values ({},'{}','{}')`. 另外,user2 和 passwd2 都是字典类型,需要将它们转换为列表类型。
下面是修正后的代码:
```
import mysql.connector
def d():
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="wangzijiao2003"
)
ass = mydb.cursor()
ass.execute("show databases")
for kkss in ass:
print(kkss)
ass.execute("use myku")
ass.execute("CREATE TABLE IF NOT EXISTS zhanghu1 (id int NOT NULL AUTO_INCREMENT,root1 varchar(255) NULL,passwd1 varchar(255) NULL,PRIMARY KEY (id))")
new = {}
while True:
b = input("请输入你的代号,代号请用数字书写")
e = b.isdigit()
if e == True:
cc = int(b)
print("创建成功")
break
else:
print("创建失败")
continue
while True:
passwd1 = input("请输入你的密钥,注(密钥必须包含大小写字母)")
a = passwd1.isupper() # 大写
b = passwd1.islower() # 小写
c = passwd1.isalpha() # 字母
if (a == False) and (b == False) and (c == True):
print("密钥保存成功")
break
else:
print("仔细阅读")
continue
if cc in new:
print("no")
else:
new[cc] = passwd1
print("ok,完成初始化")
print("注册成功")
print(new)
for i1 in new.keys():
print("你的账号为")
print(i1)
for ii1 in new.values():
print("你的密码为")
print(ii1)
id = 1
user2 = list(new.keys())
passwd2 = list(new.values())
sql = "INSERT INTO zhanghu1 (id,root1,passwd1) VALUES ({},'{}','{}')".format(id, user2[0], passwd2[0])
ass.execute(sql)
mydb.commit()
print("over")
d()
```
阅读全文