Python3操作SQLite3创建表主键自增长|CRUD基本操作

news2024/11/23 22:16:57


Python3操作MySQL8.XX创建表|CRUD基本操作 

Python3操作SQLite3创建表主键自增长|CRUD基本操作


 

一: SQLite3创建表时主键自增长

1: sqlite支持建立自增主键
create table t_user 
(
 id integer primary key autoincrement,
 age int(2), 
 name varchar(10),
 address varchar(100)
)

 2: 联合主键 

 create table t_user
(

 address_id varchar(20), 
 id integer primary key autoincrement, age int(2),
 name varchar(10),
 address varchar(100),

 primary key (id,address_id )

)

注意:在创建联合主键时,主键创建要放在所有字段最后面,否则也会创建失败

二: Python使用SQLite3创建表

import sqlite3

'''
   由于Python已经内置了SQLite3,直接引入SQLite3模块即可使用
'''

# 连接到数据库SQLite
# 数据库文件时data.db,如果文件不存在,则自动在当前目录下面创建

conn = sqlite3.connect('data.db')
# 创建一个游标对象Cursor
cursor = conn.cursor()
# 执行一条建表语句,创建t_user表
try:
    cursor.execute("create table t_user (id INTEGER  PRIMARY KEY  AUTOINCREMENT,"
                   " age int(2), name varchar(10),address varchar(100))")
    # 提交
    conn.commit()
except Exception as err:
    conn.rollback()
    print("error: ", err)
finally:
    print("执行finally模块: ", "关闭系统资源")
    # 关闭游标
    cursor.close()
    # 关闭Connection对象
    conn.close()

 三: 批量插入主键自增长数据主键的赋值

import sqlite3

'''
  对数据库SQLite3执行CRUD操作
'''

conn = sqlite3.connect("data.db")

cursor = conn.cursor()
param = [(None, 20, "老王", "北京市海淀区中关村软件园创新中心1-1001"),
         (None, 23, "老李", "北京市朝阳区中关村软件园创新中心1-1011"),
         (None, 22, "老高", "北京市昌平区中关村软件园创新中心1-1021"),
         (None, 25, "老函", "北京市密云区中关村软件园创新中心1-1031"),
         (None, 80, "老彪", "北京市房山区中关村软件园创新中心1-1041"),
         (None, 90, "老表", "北京市丰台区中关村软件园创新中心1-1051")]
try:
    # 批量插入数据
    sql = 'insert into t_user values(?,?,?,?)'
    cursor.executemany(sql, param)
    conn.commit()
except Exception as err:
    print("插入数据异常: ", err)
    conn.rollback()
finally:
    cursor.execute("select * from t_user")
    resultSet = cursor.fetchall()
    for item in resultSet:
        print("数据库表(t_user)数据集: ", item)

    # 释放资源,关闭游标
    cursor.close()
    # 关闭连接
    conn.close()

四: 查看执行结果 

D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarExecutorCRUD.py 
数据库表(t_user)数据集:  (1, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001')
数据库表(t_user)数据集:  (2, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011')
数据库表(t_user)数据集:  (3, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021')
数据库表(t_user)数据集:  (4, 25, '老函', '北京市密云区中关村软件园创新中心1-1031')
数据库表(t_user)数据集:  (5, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041')
数据库表(t_user)数据集:  (6, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051')
数据库表(t_user)数据集:  (7, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001')
数据库表(t_user)数据集:  (8, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011')
数据库表(t_user)数据集:  (9, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021')
数据库表(t_user)数据集:  (10, 25, '老函', '北京市密云区中关村软件园创新中心1-1031')
数据库表(t_user)数据集:  (11, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041')
数据库表(t_user)数据集:  (12, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051')
数据库表(t_user)数据集:  (13, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001')
数据库表(t_user)数据集:  (14, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011')
数据库表(t_user)数据集:  (15, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021')
数据库表(t_user)数据集:  (16, 25, '老函', '北京市密云区中关村软件园创新中心1-1031')
数据库表(t_user)数据集:  (17, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041')
数据库表(t_user)数据集:  (18, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051')
数据库表(t_user)数据集:  (19, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001')
数据库表(t_user)数据集:  (20, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011')
数据库表(t_user)数据集:  (21, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021')
数据库表(t_user)数据集:  (22, 25, '老函', '北京市密云区中关村软件园创新中心1-1031')
数据库表(t_user)数据集:  (23, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041')
数据库表(t_user)数据集:  (24, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051')

Process finished with exit code 0
 

五:SQLite3批量插入的方式

通过Python脚本向sqlite3数据库批量插入数据
  这里记录两种批量插入数据的方式:
1、通过execute,用for语句循环
#导入sqlite3包
import sqlite3
# 创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
#获取一个游标对象
cursor=conn.cursor()
#设置参数i,for语句循环
for i in range(1,10):
    param=str(i)
    sql="insert into t_user values(?,?,?,?)"
    cursor.execute(sql,param)
    conn.commit()
#关闭连接
conn.close()
cursor.close()


2、通过executemany,数据的格式必须为list[tuple(),tuple(),tuple()]或者tuple(tuple(),tuple(),tuple())
   import sqlite3
# 打开数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
#批量插入数据;mysql使用%  sqlite使用?
sql="insert into t_user values(?,?,?,?)"
#每一个值都作为一个元组,整个参数集作为一个元组
param=((111111,'haha',13),(22222,'hehe',34))
#或者每一个值作为元组,整个参数集作为list :param=[(111111,'haha',13),(22222,'hehe',34)]
#使用executemany方法批量插入数据
cursor.executemany(sql,param)
#提交
conn.commit()
#关闭
conn.close()
cursor.close()

===============================================================================
三、cursor执行命令的方法
1、 callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
2、 execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
3、executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
4、nextset(self):移动到下一个结果集
===============================================================================

四、cursor接受返回值的方法
1、 fetchall(self):接收全部的返回结果行.
2、 fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
3、 fetchone(self):返回一条结果行.
4、 scroll(self, value, mode=‘relative’):移动指针到某一行.如果mode=‘relative’,则表示从当前所在行移动value条,如果mode=‘absolute’,则表示从结果集的第一 行移动value条
#执行查询的操作
 cursor.execute("select * from cdinfo")
#用fetcall方法获取查询返回的全部结果,将结果保存到tup,每条结果都是元组类型,所有的元组组成了一个元组集
 tup=cursor.fetchall()
 print(tup)#输出整个结果 
 print tup[0][3]#输出元组集中,第一个元组的第四个元素
 

六: Python查询SQLite3数据库的三种方式

import sqlite3

'''

    Python提供了三种查询数据的函数:
        fetchone(): 获取查询结果集中的下一条记录
        fetchmany(size)获取指定数量的记录
        fetchall():获取结果集中的所有记录

'''

conn = sqlite3.connect("data.db")
cursor = conn.cursor()
userId = 5
try:
    sql = "select * from t_user"
    cursor.execute(sql)
    # 获取查询结果
    resultOne = cursor.fetchone()
    print("resultOne: ", resultOne)
    resultTwo = cursor.fetchmany(20)
    print("resultTwo: ", resultTwo)
    resultAll = cursor.fetchall()
    print("resultAll: ", resultAll)
    # 使用占位符?,可以避免SQL注入的风险,元组作为参数传值,元组中只有一个元素时,最后的逗号不能去掉
    resultWhere = cursor.execute("select * from t_user where id <= ?", (userId,))
    print()
    print("resultWhere: ", resultWhere.fetchall())
except Exception as err:
    print("系统异常: ", err)

finally:
    cursor.close()
    conn.close()

七: 执行结果 

D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarBatchOperation.py 
resultOne:  (1, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001')
resultTwo:  [(2, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (3, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (4, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (5, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (6, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (7, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (8, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (9, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (10, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (11, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (12, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (13, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (14, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (15, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (16, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (17, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (18, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (19, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (20, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (21, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021')]
resultAll:  [(22, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (23, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (24, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (25, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (26, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (27, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (28, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (29, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (30, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (31, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (32, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (33, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (34, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (35, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (36, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (37, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (38, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (39, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (40, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (41, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (42, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (43, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (44, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (45, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (46, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (47, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (48, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (49, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (50, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (51, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (52, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (53, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (54, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (55, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (56, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (57, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (58, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (59, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (60, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (61, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (62, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (63, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (64, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (65, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (66, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (67, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (68, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (69, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (70, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (71, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (72, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (73, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (74, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (75, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (76, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (77, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (78, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (79, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (80, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (81, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (82, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (83, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (84, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (85, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (86, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (87, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (88, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (89, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (90, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (91, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (92, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (93, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (94, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (95, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (96, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (97, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (98, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (99, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (100, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (101, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (102, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (103, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (104, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (105, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (106, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (107, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (108, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051'), (109, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (110, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (111, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (112, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (113, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041'), (114, 90, '老表', '北京市丰台区中关村软件园创新中心1-1051')]

resultWhere:  [(1, 20, '老王', '北京市海淀区中关村软件园创新中心1-1001'), (2, 23, '老李', '北京市朝阳区中关村软件园创新中心1-1011'), (3, 22, '老高', '北京市昌平区中关村软件园创新中心1-1021'), (4, 25, '老函', '北京市密云区中关村软件园创新中心1-1031'), (5, 80, '老彪', '北京市房山区中关村软件园创新中心1-1041')]

Process finished with exit code 0
 

八: 更新数据 

import sqlite3

'''
  对数据库SQLite3执行update操作
'''

conn = sqlite3.connect("data.db")

cursor = conn.cursor()

try:
    sql = "update t_user set name=? where id = ?"
    cursor.execute(sql, ('老杨', 1))  # id为1的字段更新为"老杨"
    conn.commit()
    print('执行成功!')
except Exception as err:
    print("update时发生了异常: ", err)
    conn.rollback()
finally:
    result = cursor.execute("select * from t_user where id = ?", (1,))
    print("更新后的数据为:  ", result.fetchone())
    print("游标,数据库连接关闭,释放连接资源.....")
    cursor.close()
    conn.close()

九: 删除操作

import sqlite3

'''
  对数据库SQLite3执行delete操作
'''

conn = sqlite3.connect("data.db")

cursor = conn.cursor()
try:
    sql = "delete from t_user where id = ?"
    cursor.execute(sql, (204,))  # id=201记录删除
    conn.commit()
    print('执行成功!')
except Exception as err:
    print("删除时发生了异常: ", err)
    conn.rollback()
finally:
    result = cursor.execute("select * from t_user where id = 204")
    for item in result.fetchall():
        print("删除后的数据为:  ", item)

    print("游标,数据库连接关闭,释放连接资源.....")
    cursor.close()
    conn.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1044408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5、YOLOv8改进:ConvNeXt(backbone改为ConvNextBlock)

目录 1.介绍 2. YOLOv5修改backbone为ConvNeXt 2.1修改common.py 2.2 修改yolo.py 2.3修改yolov5.yaml配置 1.介绍 论文地址&#xff1a;https://arxiv.org/abs/2201.03545官方源代码地址&#xff1a;https://github.com/facebookresearch/ConvNeXt.git 自从ViT(Vision T…

Linux 权限相关例题练习

目录 一、前期准备工作&#xff1a; 1&#xff09;新建redhat用户 2&#xff09;新建testdir目录及其file1 二、例题详解 1、当用户redhat对/testdir目录无写权限时&#xff0c;该目录下的只读文件file1是否可修改和删除&#xff1f; 2、复制/etc/fstab文件到/var/tmp下&…

C++11之新的类功能

这里写目录标题 新的类功能默认成员函数类成员变量初始化强制生成默认函数的关键字default禁止生成默认函数的关键字deletefinal与override关键字override 新的类功能 默认成员函数 原来C类中&#xff0c;有6个默认成员函数&#xff1a; 构造函数析构函数拷贝构造函数拷贝赋…

Spring学习笔记13 Spring对事务的支持

Spring学习笔记12 面向切面编程AOP-CSDN博客 什么是事务:在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全. 多条DML要么同时成功,要么同时失败,叫做事务(Transaction) 事务四…

安防视频平台EasyCVR视频调阅全屏播放显示异常是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Apache DolphinScheduler在中国信通院“2023 OSCAR开源尖峰案例”评选中荣获「尖峰开源项目奖」!

在近日由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;和中国通信标准化协会联合主办的“2023 OSCAR 开源产业大会”上&#xff0c;主办方公布了 2023 年“OSCAR 开源尖峰案例”评选结果&#xff0c;包括“开源人物”“开源项目”“开源社区”“开源企业”…

python+vue实验室课程预约管理系统

实验室课程管理系统运用计算机完成数据收集、查询、修改和删除以及统计等工作&#xff0c;提高了管理者工作效率&#xff0c;避免了因信息量巨大&#xff0c;造成的人为错误&#xff0e;通过前面的功能分析可以将实验室课程管理系统的功能分为管理员、学生和教师三个部分&#…

Linux高性能服务器编程 学习笔记 第八章 高性能服务器程序框架

TCP/IP协议在设计和实现上没有客户端和服务器的概念&#xff0c;在通信过程中所有机器都是对等的。但由于资源&#xff08;视频、新闻、软件等&#xff09;被数据提供者所垄断&#xff0c;所以几乎所有网络应用程序都采用了下图所示的C/S&#xff08;客户端/服务器&#xff09;…

LeetCode_BFS_中等_1926.迷宫中离入口最近的出口

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一个 m x n 的迷宫矩阵 maze &#xff08;下标从 0 开始&#xff09;&#xff0c;矩阵中有空格子&#xff08;用 ‘.’ 表示&#xff09;和墙&#xff08;用 ‘’ 表示&#xff09;。同时给你迷宫的入口 …

电脑提示vcruntime140.dll缺失重新安装的修复方法

电脑出现 vcruntime140.dll 丢失的情况&#xff0c;通常是由于系统缺失了 Microsoft Visual C Redistributable 的运行库文件。这个文件是许多应用程序在运行时所需的依赖库&#xff0c;如果丢失了该文件&#xff0c;可能会导致某些软件无法正常运行。 下面是关于 vcruntime140…

免费录音软件推荐,告别杂音,音质更清晰!

“求推荐一款免费的录音软件&#xff01;最近下载了好多的录音软件&#xff0c;不是音质太差&#xff0c;就是需要收费解锁新的功能&#xff0c;根本不好用&#xff0c;有没有人知道一款免费优秀的录音软件呀&#xff0c;告诉我一下。” 录音已成为现代人们学习和工作中的一项…

DataExcel控件读取和保存excel xlsx 格式文件

需要引用NPOI库 https://github.com/dotnetcore/NPOI 调用Read 函数将excel读取到dataexcel控件 调用Save 函数将dataexcel控件文件保存为excel文件 using NPOI.HSSF.UserModel; using NPOI.HSSF.Util; using NPOI.SS.UserModel; using NPOI.SS.Util; using System; using …

pytho实例--pandas读取表格内容

前言&#xff1a;由于运维反馈帮忙计算云主机的费用&#xff0c;特编写此脚本进行运算 如图&#xff0c;有如下excel数据 计算过程中需用到数据库中的数据&#xff0c;故封装了一个读取数据库的类 import MySQLdb from sshtunnel import SSHTunnelForwarderclass SSHMySQL(ob…

Java BigDecimal 详解

目录 一、BigDecimal 1、简介 2、构造器描述 3、方法描述 4、使用 一、BigDecimal float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算&#xff0c;这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而&#xff0c;它…

25841-2017 1000kV电力系统继电保护技术导则

声明 本文是学习GB-T 25841-2017 1000kV电力系统继电保护技术导则. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了交流1000 kV 系统及1000 kV 变电站相关电压等级具有特别要求的继电保护装置 的基本准则。 本标准适用于1000 k…

大厂秋招真题【BFS+DP】华为20230921秋招T3-PCB印刷电路板布线【欧弟算法】全网最全大厂秋招题解

题目描述与示例 题目描述 在PCB印刷电路板设计中&#xff0c;器件之间的连线&#xff0c;要避免线路的阻抗值增大&#xff0c;而且器件之间还有别的器任和别的干扰源&#xff0c;在布线时我们希望受到的干扰尽量小。 现将电路板简化成一个M N的矩阵&#xff0c;每个位置&am…

如何快速学习AdsPower RPA(1)——简单、进阶部分

你是否刚开始学习使用AdsPower的RPA功能&#xff1f; 你是否对着这些操作选项头皮发麻&#xff0c;不知所措&#xff1f; 你是否想快速学会RPA&#xff1f; 你是否想编写出满足各种业务场景的RPA流程&#xff1f; 以上这些&#xff0c;Tool哥统统都帮你搞定&#xff01; Too…

科技成果鉴定测试有多重要?可出具专业测试报告的软件测评机构推荐

科技成果鉴定测试在现代社会中具有重要意义&#xff0c;它不仅可以评估科技成果的价值和可行性&#xff0c;还可以为科技创新提供决策依据&#xff0c;推动科技进步和社会发展&#xff0c;那么科技成果鉴定测试究竟重要在哪呢? 1、对于科技项目的投资决策至关重要。鉴定测试可…

YOLOV8-DET转ONNX和RKNN

目录 1. 前言 2.环境配置 (1) RK3588开发板Python环境 (2) PC转onnx和rknn的环境 3.PT模型转onnx 4. ONNX模型转RKNN 6.测试结果 1. 前言 yolov8就不介绍了&#xff0c;详细的请见YOLOV8详细对比&#xff0c;本文章注重实际的使用&#xff0c;从拿到yolov8的pt检测模型&…

玩转gpgpu-sim 04记—— __cudaRegisterBinary() of gpgpu-sim 到底做了什么

官方文档&#xff1a; GPGPU-Sim 3.x Manual __cudaRegisterBinary(void*) 被执行到的代码逻辑如下&#xff1a; void** CUDARTAPI __cudaRegisterFatBinary( void *fatCubin ) { #if (CUDART_VERSION < 2010)printf("GPGPU-Sim PTX: ERROR ** this version of GPGPU…