帮我检查代码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() 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[0],passwd2[0])) mydb.commit() print("over")
时间: 2023-07-15 20:14:53 浏览: 133
mysql-connector-java-8.0.22.jar
5星 · 资源好评率100%
有几个需要注意的地方:
1. 第1行缩进不对,应该和第2行对齐。
2. 第3行到第5行是连接数据库的代码,应该放在一个try-except块中,以便处理连接错误。
3. 第6行输入代号的代码可以放在while循环里面,以便用户输入错误时可以重新输入。
4. 第8行到第12行输入密码的代码可以放在while循环里面,以便用户输入错误时可以重新输入。
5. 第15行new[cc]=passwd1代码可能会出现KeyError,因为cc可能不在new中,应该先判断cc是否在new中。
6. 第18行到第20行的输出语句需要缩进,否则会在while循环外面执行。
7. 第23行到第28行的for循环输出的语句可以合并为一行,使用字符串格式化输出。
8. 第30行到第33行的代码应该是ass.execute("use myku"),而不是ass.execute("use zhanghu"),因为后面创建的表名为zhanghu1。
9. 第34行的代码应该是ass.execute("INSERT INTO zhanghu1(root1, passwd1) VALUES('{}', '{}')".format(user2[0], passwd2[0])),因为id是自增的,不需要插入。
10. 第37行应该是mydb.commit(),而不是myku.commit()。
下面是修改后的代码:
```
import mysql.connector
try:
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="wangzijiao2003"
)
except mysql.connector.Error as err:
print(f"连接数据库错误:{err}")
exit(1)
new = {}
while True:
b = input("请输入你的代号,代号请用数字书写:")
if b.isdigit():
cc = int(b)
print("创建成功")
break
else:
print("创建失败")
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("仔细阅读")
if cc in new:
print("ok,完成初始化")
else:
print("no")
print("注册成功")
print(new)
for i1, ii1 in new.items():
print("你的账号为:{},你的密码为:{}".format(i1, ii1))
id = 1
user2 = list(new.keys())
passwd2 = list(new.values())
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 zhanghu1(root1, passwd1) VALUES('{}', '{}')".format(user2[0], passwd2[0]))
mydb.commit()
print("over")
```
阅读全文