exist = (conn > 0) * 1.0 factor = np.ones(conn.shape[1]) degree = np.dot(exist, factor)
时间: 2023-06-10 21:08:58 浏览: 134
这段代码主要是计算网络中每个节点的度数(即与该节点相连的边数)。
首先,将邻接矩阵中的非零元素转换为1,得到一个由0和1组成的矩阵exist。
然后,创建一个与邻接矩阵列数相同的一维数组factor,每个元素都是1。
接着,将exist矩阵与factor数组进行点积运算,得到一个一维数组degree,其中每个元素表示对应节点的度数。
最后,将degree数组作为结果返回。
相关问题
import sqlite3 import os db_file="d:\\python\\stuInfo.sqlite" if os.path.exists(db_file): os.remove(db_dile) os.makedirs(os.path.dirname(db_file),exist_ok=True) conn=sqlite3.connect('stuInfo.sqlite') cur=conn.cursor() sqlstr='''CREATE TABLE stuTAB( stoNo TEXT NO NULL stoName TEXT NO NULL stoScore TEXT NO NULL stoMajor TEXT NO NULL)''' cur.execute(sqlstr) conn.commite() print("1") while True: stoNo=input("输入学号") if stoNo==-1: break stuName=input("输入姓名") stoScore=input("成绩") stoMajor=input("专业") sqlstr='''INSERT INTO stuTAB(stoNo,stuName,stoScore,stoMajor)VALUES(stoNo,stuName,stoScore,stoMajor)''' cur.execute(sqlstr) conn.commit() print("成功")
在您的代码中,有几个拼写错误和语法错误:
1. `import sqlite3 import os` 应该写为 `import sqlite3, os`,这样才能正确导入多个模块。
2. `if os.path.exists(db_file): os.remove(db_dile)`,应该将 `db_dile` 改为 `db_file`,否则会报错。
3. `sqlstr='''CREATE TABLE stuTAB( stoNo TEXT NO NULL stoName TEXT NO NULL stoScore TEXT NO NULL stoMajor TEXT NO NULL)'''` 这一行的语法错误是在 `TEXT NO NULL` 中间应该加上逗号分隔开,应该写为 `stoNo TEXT NOT NULL, stoName TEXT NOT NULL, stoScore TEXT NOT NULL, stoMajor TEXT NOT NULL)`。
4. `conn.commite()` 应该改为 `conn.commit()`。
5. `while True: stoNo=input("输入学号") if stoNo==-1: break` 这一部分应该将 `-1` 改为字符串 `"-1"`,否则会导致输入学号时无法正常退出循环。
6. `sqlstr='''INSERT INTO stuTAB(stoNo,stuName,stoScore,stoMajor)VALUES(stoNo,stuName,stoScore,stoMajor)'''` 中的 `stuName` 应该改为 `stoName`,否则会报错。
下面是修改后的代码:
```
import sqlite3, os
db_file = "d:\\python\\stuInfo.sqlite"
if os.path.exists(db_file):
os.remove(db_file)
os.makedirs(os.path.dirname(db_file), exist_ok=True)
conn = sqlite3.connect(db_file)
cur = conn.cursor()
sqlstr = '''CREATE TABLE stuTAB(
stoNo TEXT NOT NULL,
stoName TEXT NOT NULL,
stoScore TEXT NOT NULL,
stoMajor TEXT NOT NULL)'''
cur.execute(sqlstr)
conn.commit()
print("1")
while True:
stoNo = input("输入学号")
if stoNo == "-1":
break
stoName = input("输入姓名")
stoScore = input("成绩")
stoMajor = input("专业")
sqlstr = '''INSERT INTO stuTAB(stoNo, stoName, stoScore, stoMajor)
VALUES (?, ?, ?, ?)'''
cur.execute(sqlstr, (stoNo, stoName, stoScore, stoMajor))
conn.commit()
print("成功")
conn.close()
```
import sqlite3 import os db_file="d:\\python\\stuInfo.sqlite" if os.path.exists(db_file): os.remove(db_file) os.makedirs(os.path.dirname(db_file),exist_ok=True) conn=sqlite3.connect('stuInfo.sqlite') cur=conn.cursor() sqlstr='''CREATE TABLE stuTAB( stoNo TEXT NO NULL, stoName TEXT NO NULL, stoScore TEXT NO NULL, stoMajor TEXT NO NULL)''' cur.execute(sqlstr) conn.commit() print("1") while True: stoNo=input("输入学号") if stoNo=="-1": break stoName=input("输入姓名") stoScore=input("成绩") stoMajor=input("专业") sqlstr='''INSERT INTO stuTAB(stoNo,stoName,stoScore,stoMajor)VALUES(stoNo,stoName,stoScore,stoMajor)''' cur.execute(sqlstr) conn.commit() print("成功")
您的代码看起来已经修正了之前的语法错误,但是还有一个问题,就是插入数据时的SQL语句中,VALUES后面的参数应该用占位符 "?" 来代替,而不是直接使用变量名。这样可以避免SQL注入攻击。
下面是修改后的代码:
```
import sqlite3
import os
db_file = "d:\\python\\stuInfo.sqlite"
if os.path.exists(db_file):
os.remove(db_file)
os.makedirs(os.path.dirname(db_file), exist_ok=True)
conn = sqlite3.connect(db_file)
cur = conn.cursor()
sqlstr = '''CREATE TABLE stuTAB(
stoNo TEXT NOT NULL,
stoName TEXT NOT NULL,
stoScore TEXT NOT NULL,
stoMajor TEXT NOT NULL)'''
cur.execute(sqlstr)
conn.commit()
print("1")
while True:
stoNo = input("输入学号")
if stoNo == "-1":
break
stoName = input("输入姓名")
stoScore = input("成绩")
stoMajor = input("专业")
sqlstr = '''INSERT INTO stuTAB(stoNo, stoName, stoScore, stoMajor)
VALUES (?, ?, ?, ?)'''
cur.execute(sqlstr, (stoNo, stoName, stoScore, stoMajor))
conn.commit()
print("成功")
conn.close()
```
请注意,本代码仅供参考。如果您的代码仍然存在问题,请提供完整的错误信息,这样我才能更好地帮助您解决问题。
阅读全文