当前位置: 首页 > news >正文

python数据类型与数据结构

目录

一、数据类型

1.1变量与常量

1.1.1变量

 1.1.2常量

1.2字符串类型

1.3整数与浮点数

1.4List列表

1.5 元组tuple

1.6字典dict

二、字符串格式化

三、数据输入和类型转换

 四、简单列表习题练习


一、数据类型

变量类型

整数int(4字节,会自动扩容)、浮点数float(8字节)、布尔类型bool(一个字节)、字符串(变长)可使用len求长度、其他

空值:None,不是布尔类型,而是NoneType。

1.1变量与常量

变量:在程序运行过程中,值会发生变化的量

常量:在程序运行过程中,值不会发生变化的量

无论是变量还是常量,创建时都会在内存中开辟一块空间,用于保存它的值。

  • 动态语言类型:程序运行中,变量类型会发生改变(修改变量)
  • 静态语言类型:程序运行过程中,变量类型始终不发生变化,如C++/java
  • 二者的判断关键:运行中,变量类型是否发生变化

Python 中,由于python的动态语言特性,故变量和常量都不需事先声明类型:(age=18)

静态语言:C++、Java、Golang,需要事先声明类型:(int age,string name)

1.1.1变量

变量可以指定不同的数据类型,从而决定其在内存中的位置(由解释器根据数据类型分配)。

(1)赋值“=”和比较“==”

首次使用 = 相当于对变量进行赋值(初始化),后续再对变量使用 = 相当于修改变量的内容

age = 18  #赋值
age == 18  #比较,判断age是否为18,返回值True/Falsecounter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串

(2)变量在使用前必须赋值,才会被创建,若不赋值,则抛出未定义的异常。

 (3)赋值方式:单个、多个、先计算后赋值、分别赋值

age = 18  #单个赋值
a = b = c = 2   #多个赋值
d = 17+2  #先计算后赋值
a, b, c = 1,2,3   #分别赋值

(4) 变量赋值的含义 

name = "python"

1.内存中创建了一个字符串对象"python"

2.内存中创建一个变量name,并将其指向"python"

3.把一个变量a赋值给另一个变量b,意味着将变量b指向变量a所指向的数据

4.若继续对a赋值,a内存地址会改变,而b不会改变。Python中的一切都是对象,变量是对象的引用! 

  • 执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;

  • 执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;

  • 执行a = ‘python’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关

 

a = "Jack"
b = a  #a赋值给b ,创建变量b
print(b)   #输出"Jack"
id(a) == id(b)  #输出true    id()可查看内存地址  a = "python"   #a的内存地址发生改变
id(a) == id(b)  #输出false   

 1.1.2常量

常量(不变的量),python中全部大写的变量名即为常量

常量常放于代码最上端,做全局使用

PI = 3.1415926  #常量圆周率

1.2字符串类型

 字符串或串(String)是由数字、字母、下划线组成的一串字符。

若有字符串嵌套,内外分别用单双区分就行了:(三引号使用同上,三者关系等效),常使用三引号创建多行字符串

b = "'hello' python!!!"
c =  'hello "python"'
print(b,c)name_1 = 'Jack'  # 单引号
name_2 = "Jack"  # 双引号
name_3 =  '''Jack''' # 三个单引号
name_4 = """Jack"""  # 三个双引号
name_1 == name_2 == name_3 == name_4

(1)python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

e985c70bd2994d5180a95a24b6c86195.png

(2)字符串截取

 截取字符串字串 [头下标:尾下标 ]   前闭后开

加号(+)是字符串连接运算符(拼接功能,不同数据类型不能进行拼接),星号(*)是重复操作

28b2833b33cf4903b208dfba652ef4e8.png

str = 'Hello World!' 
print str           # 输出完整字符串H
print str[0]        # 输出字符串中的第一个字符 H
print str[2:5]      # 输出字符串中第三个至第六个之间的字符串 llo
print str[2:]       # 输出从第三个字符开始的字符串 llo world!
print str * 2       # 输出字符串两次  Hello World!Hello World!
print str + "TEST"  # 输出连接的字符串Hello World!TEST

列表截取可以接收第三个参数,参数作用是截取的步长 [ 1: 4 :2 ] 步长为2

6a0a94fa48674965b24960f4f4af8622.png

(3)常用方法

msg = "       python编程       "

1)去除首尾空格:

msg.lstrip()  # 去除左边空格
msg.rstrip()  # 去除右边空格
msg.strip()   # 去除左右两边空格

2)判断字符串是否以某字符串开头startswith/结尾endswith

msg = "Hello, Python"
msg.startswith("Hello")   #True
msg.startswith("hello")   #False

3)格式化字符串

name = input()  #输入字符串表示名字print(f'I am {name} and I am studying Python in Nowcoder!')  
print('I am %s and I am studying Python in Nowcoder!'%name)

4)字符串分割  (多个字符串分隔为字符串列表)

languages = "Python,Java,Golang"
languages.split(",")    #['Python', 'Java', 'Golang']

1.3整数与浮点数

Python 支持的数字类型有三种:整数、浮点数和复数。

(1)整数int:

是正或负整数,不带小数点。

表示数字的时候,还可用八进制或十六进制来表示:

  • 十六进制:用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。

  • 八进制:用0o前缀和0-7表示,例如0o12

a = 0x0001 # 十六进制 1
b = 0o01  # 八进制  1

(2)常用方法

四舍五入:如round(3.14)=3,round(3.81) = 4

取余:a // b

取整:int(3.14) = 3

1.4List列表

列表和原则的区别:

元组不可变:只能读元素,不可修改

列表可变:可读可写

List(用 [ ] 标识)是Python 中使用最频繁的数据类型。是 python 最通用的复合数据类型。可以完成大多数集合类的数据结构实现,支持字符,数字,字符串甚至可以包含列表(即嵌套)。下标可以为空表示取到头或尾。

1)创建列表:两种方式即可

python中不限制列表中元素的类型(元素可存放任意类型)

a = []  #空列表
b = list()
print(type(a))  #<class 'list'>
print(type(b))  #<class 'list'>

2) 访问下标

注意防止下标越界。

打印列表最后一个元素:-1指的是最后一个元素(长度-1)

print(list[len(list)-1])  #打印列表list最后一个元素
print(list[-1])    #打印列表list最后一个元素

3)切片操作

取出列表中下标连续的一组元素,也相当于得到一个子列表(下标范围前闭后开)

除了获取某个确定下标的元素外,切片操作得到的是列表形式的数据

list = ['runoob', 786 , 2.23, 'john', 70.2]
tinylist = [123, 'john']print(list)               # 输出完整列表  ['runoob', 786 , 2.23, 'john', 70.2]
print(list[0])            # 输出列表的第一个元素   runoob
print(list[:-1])          #从前往后取数据,不包括最后一个元素
print(list[:])            #得到列表自身所有数据
print(list[1:3])          # 输出第二个至第三个元素  [786 , 2.23] 
print(list[2:])           # 输出从第三个开始至列表末尾的所有元素   [2.23, 'john', 70.2]
print(tinylist * 2)       # 输出列表两次 [123, 'john', 123, 'john']
print(list + tinylist)    # 打印组合的列表  ['runoob', 786 , 2.23, 'john', 70.2,123, 'john']

切片操作,可以指定步长(步长为负数时,从后往前取数据):

list = [1,2,3,4,5,6,7,8]
print(list[::1])  #1是指定的步长   [1, 2, 3, 4, 5, 6, 7, 8]
print(list[1:7:2])  #2 是指定的步长    [2, 4, 6]print(list[::-2])  #2 是指定的步长  [8, 6, 4, 2]
print(list[::-1])  #2 是指定的步长  [8, 7, 6, 5, 4, 3, 2, 1]

4)列表的遍历

取出列表中的每个元素,并进行某种操作

list = [1,2,3,4,5,6,7,8,9]
#方法一:
for elem in list:print(elem)elem = elem + 10  #不修改变量本身,只修改临时变量print(elem)#方法2:
for i in range(0,len(list)):print(list[i])list[i] = list[i]+10  #可修改每一个列表元素    
print(list)  #输出新的list#方法3:使用while循环,通过下标遍历
i = 0
while 1 < len(list):print(list[i])i += 1

5)列表的插入

list列表可插入不同数据类型的元素,且append函数是搭配列表对象一起使用的。需要搭配对象使用的函数也叫“方法”

list = [1,2,3,4,5]
list.append(0)
list.append('hello')
print(list)   #[1, 2, 3, 4, 5, 0, 'hello']

insert插入方法(指定下标处插入元素):

list = [1,2,3,4,5]
list.insert(0,'python')
list.insert(2,'hello')print(list)  #['python', 1, 'hello', 2, 3, 4, 5]

6)列表的查找

注意!!!索引不能超出列表长度

list = [1,2,3,4,5]
print(len(list))   #求列表长度:5
print(5 in list)   #判断某个元素5是否存在于列表里
print(list.index(5))  #使用index获取元素5在列表中的位置
print(list.count(5))   #统计元素5出现的次数

7)列表的删除

  • pop():删除末尾元素
  • pop(i):删除i下标的元素
  • remove(num): 删除列表中的num元素

删除末位几个数据,连续几次pop操作即可

list = [1,2,3,4,5] 
list.pop()  #删除末尾元素  #[1, 2, 3, 4]
list.pop(2)  #删除下标为2的元素   [1, 2, 4]
list.remove(4)   #[1, 2]
print(list)      #[1, 2]company = input().split()
companylist = []
for i in company:companylist.append(i)#方法一
companylist.pop(0)  #删除第一个元素
print(companylist)
#方法二
companylist.remove(companylist[0])
print(companylist)

给定两个字符串A和·B,删除A字符串中的B字符串:

friend = input().split()
argfriend = input()friendlist = []
for i in friend:friendlist.append(i)
friendlist.remove(argfriend)
print(friendlist)

8)列表的反转reverse和排序:

注意!!列表反转reverse()和排序sort()不能直接和print放一起使用(如:print(num.sort())写法错误),分开两行才行,如下代码:

list = [1,9,7,100,2,3,4,5]
list.reverse()
print(list)    # [5, 4, 3, 2, 100, 7, 9, 1]
list.sort()
print(list)    #  [1, 2, 3, 4, 5, 7, 9, 100]

9)列表的拼接: 列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

  • 使用 + 拼接两个列表,不改变原列表
  • 使用extend拼接(不需要变量会接收,没有返回值),相比“+”拼接更高效(把后一个列表拼接到前一个列表里),会改变原列表a的内容(拼接后是存储到新的变量a里,同时也会释放旧的变量a)
a = [1,2,3]
b = [6,7,8]
print(a + b)   #[1, 2, 3, 6, 7, 8]  # c = a.extend(b)   # 返回None,extend拼接不需要返回值
a.extend(b)   #把b拼接到a列表里
print(a)   #[1, 2, 3, 6, 7, 8]
print(b)   #[6, 7, 8]

1.5 元组tuple

元组不可变对象,相当于只读列表(不能修改)但是可以哈希

元组中只包含一个元素时,需要在元素后面添加逗号,如: tup1 = (50,)

元组中的元素值不允许删除,但可使用del语句来删除整个元组:del tup

元组之间可以使用 + 号和 * 号进行运算。可以组合和复制,运算后会生成一个新的元组。

83060360d86b45a99ac69ba56ec19b7f.png

1)创建元组:

元组(用 () 标识),元素可为任意类型。

a = ()  #创建一个空元组
b = tuple()  #创建一个空元组
print(type(a))
print(type(b))c = (1,2,'python',[1,2,3],[],True)
print(c)     #(1, 2, 'python', [1, 2, 3], [], True)
print(type(c))   #<class 'tuple'>

2)元组访问:通过下标获取特定元素或者切片获取元组的某一部分

注意不能数组越界

c = (1,2,'python',[1,2,3],[],True)
print(c[1])  #2
print(c[-1])   #True
print(c[0:4])   #(1, 2, 'python', [1, 2, 3])#for循环遍历:
for elem in c:print(elem)#判定元素是否存在:print(2 in c)  #判断元素2是否存在元组中print(c.index(2))  #打印输出下标为2的元素

1.6字典dict

字典(用"{ }"标识),是除列表以外最灵活的内置数据结构类型是一种可变容器模型,可存储任意类型对象。  键唯一(不可重复,否则后出现的会替换前者),值可以取任何数据类型

但键必须是不可变的,如字符串,数字或元组。字典的操作都是围绕key展开的。

列表是有序的对象集合,字典是无序的对象集合。字典中的元素是通过键来存取(键值对key-value),而不是通过偏移存取。

1)创建字典 (最后一个键值对后的逗号可有可无)

#创建字典
a = {}
b = dict()#字典初始化:
a = {"id":1,"name":"张三","性别":"男"}dict = {    #推荐写法,可读性更高"id":1,"name":"张三","性别":"男"
}

2) 查找key

  •  in或者下标的形式[],两种方法都很高效(字典背后使用了哈希表)

对于列表list使用in查找是比较低效的(需要遍历),使用[ ]下标索引高效

dict = {    #推荐写法,可读性更高"id":1,"name":"张三","性别":"男"
}#判断键和值是否在字典里
print("id" in dict)   #True 
print("name" in dict)   #True #判断键和值不在字典里
print("id" not in dict)   #False 
print("python" not in dict)   #True #根据key查找对应的value
print(dict["id"])   #1
print(dict["性别"])   #男
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}print dict['one']          # 输出键为'one' 的值  This is one
print dict[2]              # 输出键为 2 的值  This is two
print tinydict             # 输出完整的字典   {'name': 'runoob','code':6734, 'dept': 'sales'}
print tinydict.keys()      # 输出所有键  ['dept', 'code', 'name']
print tinydict.values()    # 输出所有值  ['sales', 6734, 'runoob']

3)字典的新增(写、修改)

dict["socre"] = 98
dict["班级"] = "S201" 
print(dict)    # {'id': 1, 'name': '张三', '性别': '男', 'socre': 98, '班级': 'S201'}#若key是已经存在的,再次写入即修改
dict["socre"] = 90
print(dict)   #{'id': 1, 'name': '张三', '性别': '男', 'socre': 90, '班级': 'S201'}

4)字典的删除(单一键值对的删除del、和清空字典clear)

tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}del tinydict['Name']  # 删除键是'Name'的条目
tinydict.clear()      # 清空字典所有条目,只保留空字典{}
del tinydict          # 删除整个字典 ,字典变量不存在了

5)字典的遍历(字典的设计初衷不是遍历,而是增删查改),哈希表能以“常数级”时间复杂度完成增删查改。注意!!Java和C++中插入元素顺序,不代表打印顺序(哈希表是无序的),python中做了特殊处理,是有序的。

for key in dict:print(key,dict[key])  #根据key打印对应的值print(dict.keys())   #dict_keys(['id', 'name', '性别', 'socre', '班级'])
print(dict.values())   #dict_values([1, '张三', '男', 90, 'S201'])
print(dict.items())    #dict_items([('id', 1), ('name', '张三'), ('性别', '男'), ('socre', 90), ('班级', 'S201')])for key ,value in dict.items():print(key,value)

6)字典中合法key的类型

使用哈希函数hash能够计算一个变量的哈希值

#可哈希的对象:(不可变对象)
print(hash(0))   #0
print(hash(3.14))   #322818021289917443
print(hash(True))   #1
print(hash("hello"))   #604443049439005304
print(hash((1,2,3)))  #2528502973977326415#不可哈希:列表、字典(因为他们是可变的)

字典、列表、元组是python中常用的内置函数,相比于其他类型(int  str  float)他们的内部可以包含其他元素


二、字符串格式化

主要有三种方式:

  1. 使用 % 进行格式化

  2. 使用 format 函数进行格式化

  3. 使用 f-string 进行格式化

(1) % 进行格式化

  • %s 表示这个位置接的是一个字符串变量
  • %d 表示这个位置接的是一个整型变量
name = "Jack"
age = 18
print("我的名字是: %s,今年 %d 岁" %(name, age))   #我的名字是: Jack,今年 18 岁

(2) format 函数进行格式化

字符串中,使用 {} 进行占位,然后在字符串后跟上 .format() 函数,这个函数的参数就是我们要往字符串中填充的变量。format 函数会依次填充,比如第一个 {} 会取到第一个参数 name,第二个 {} 会取到第二个参数 age

name = "Jack"
age = 18
print("我的名字是:{}, 今年 {} 岁".format(name, age))   #我的名字是:Jack, 今年 18 岁
print("我的名字是:{0}, 今年 {1} 岁".format(name, age))   #同上,带上索引,不容易看错
print("我的名字是:{name}, 今年 {age} 岁".format(name=name, age=age))

(3)使用 f-string 进行格式化

 Python 3.6 才支持的写法,只要你在字符串前面加一个 f,开启 f-string ,就可以在字符中写入变量。

name = "Jack"
age = 18
print(f"我的名字是:{name}, 今年 {age} 岁")  #我的名字是:Jack, 今年 18 岁

三、数据输入和类型转换

对数据内置的类型进行转换,只需要将数据类型作为函数名即可。这些函数返回一个新的对象,表示转换的值。

  (1)input读入一个数据和类型输出

a = int(input())   #input函数输入的是字符串类型,若只要输入整数,将其转化为int型即可
print(a)
print(type(a))

(2)保留浮点数几位小数输


b = float(input())print('%.2f'%b)  #格式化输出:保留数据两位小数
print('{:.2f}'.format(b))

(3)整数转换为浮点数

方法一:
a=float(input())
print('{:.1f}'.format(a), type(a), sep = '\n')方法二:
a=float(input())
print('%.1f'%a, type(a), sep = '\n')方法三:
a=float(input())
print(f'{a :.1f}', type(a), sep = '\n')方法四:
a = int(input())
b = float(a)
print(b)
print(type(b))

 四、简单列表习题练习

(1)列表的拆分(对输入数据划分)

a = input().split()    #split()函数为使用空格拆分字符串 ,
print(a)  
#输入:NiuNiu NiuMei NiuNeng 
#输出:['NiuNiu', 'NiuMei', 'NiuNeng']

 (2)数字列表生成

输入数字字符串,将其转化为列表输出

#方法一·:
a = input().split()  #分割字符串
b = []  #创建一个空列表
for i in a:     #遍历输入字符串b.append(int(i))  #将每次遍历获取到的元素添加到列表
print(b)  #打印列表#方法二:
print([int(i) for i in input().split()])   #利用列表解析快速创建列表
#-------------------------------------------------------------------------
#将输入字符串转化为列表,再在列表后添加元素
Name = input().split()
listName = []
for i in Name:  #在输入中遍历listName.append(i)   #将每个字符串添加到列表#在末尾添加元素
listName.append('Allen')
print(listName)#在指定位置添加元素
listName.insert(0,'Allen')
print(listName)

(3)列表排序

  • sorted()只是临时排序,不会改变原来的列表
  • sort()会改变原来的列表,同时添加参数reverse可反转列表
my_list = ['P','y','t','h','o','n']print(sorted(my_list))   #输出排序列表:['P', 'h', 'n', 'o', 't', 'y']
print(my_list)   #输出源列表,因为sorted不改变源列表['P','y','t','h','o','n']
my_list.sort(reverse=True)  #源列表反转
print(my_list)   #输出原列表反转后的列表['y', 't', 'o', 'n', 'h', 'P']

(4)密码游戏:

输入一个四位数字,通过位置的交换和对应位置数字的改变,输出四位整数:

#方法一:
num = input()
b = []  
for i in num:a = int(i)a = (a + 3) % 9   #改变数字b.append(a) c = b[2]*1000 + b[3]*100 + b[0]*10 + b[1]   #数字交换
print('{:0>4}'.format(c))   #输出四位数字#方法二:
num1=input()
num1=list(num1)a=[]
for i in range(0,4):x=str((int(num1[i])+3)%9)a.append(x)
x=a[0]
a[0]=a[2]
a[2]=x
y=a[1]
a[1]=a[3]
a[3]=y
print(''.join(a))

相关文章:

python数据类型与数据结构

目录 一、数据类型 1.1变量与常量 1.1.1变量 1.1.2常量 1.2字符串类型 1.3整数与浮点数 1.4List列表 1.5 元组tuple 1.6字典dict 二、字符串格式化 三、数据输入和类型转换 四、简单列表习题练习 一、数据类型 变量类型&#xff1a; 整数int&#xff08;4字节&#x…...

大数据自学学习技巧?

经常有人说&#xff1a;先别管大数据是什么&#xff0c;现在理解不了没关系&#xff0c;先开始学&#xff0c;等学着学着就明白了&#xff0c;这种学习路线基本是混合的&#xff0c;很难分清楚自己学了这段怎么用在以后项目中&#xff0c;所以会越学越迷茫&#xff0c;但是等你…...

Qt音视频开发22-音频播放QAudioOutput

一、前言 以前一直以为只有Qt5以后才有QAudioOutput播放音频&#xff0c;其实从Qt4.6开始就有&#xff0c;在Qt6中变成了QAudioSink&#xff0c;功能一样。用QAudioOutput播放音频pcm数据极其方便&#xff0c;只需要指定音频播放设备&#xff08;可能电脑上有多个音频输出设备…...

JavaEE简单示例——Spring的入门程序

简单介绍&#xff1a; 在之前我们简单的介绍了有关于Spring的基础知识&#xff0c;那么现在我们就来一步步的把理论融入到实践中&#xff0c;开始使用这个框架&#xff0c;使用过程也是非常的简单&#xff0c;大致可以分为几个基础的步骤&#xff1a; 1.首先引入Spring的Mave…...

【嵌入式Bluetooth应用开发笔记】第一篇:DBUS概述与蓝牙开发小试牛刀

DBUS概述 DBus&#xff08;D-Bus&#xff09;是一个在不同程序之间传递消息的系统总线。DBus为不同的程序之间提供了一种通信机制&#xff0c;这种通信制可以在不需要知道对方程序的情况下进行通信。 DBus可以使用多种编程语言来开发&#xff0c;包括C、C、Python、Java等。在…...

如何在电脑更换新硬盘后迁移window11系统?2种迁移方法分享!

随着时间的流逝&#xff0c;数据量也在逐渐增多&#xff0c;就会导致您的硬盘空间也变得越来越小&#xff0c;因此系统运行速度可能会受到一些影响而越来越慢。为了摆脱这种情况&#xff0c;您可以选择升级到更大的硬盘来使计算机获取更大的磁盘空间&#xff0c;或者迁移系统到…...

6、Elasticsearch优化

一、Elasticsearch集群配置 1、硬件选择 Elasticsearch的基础是 Lucene &#xff0c;所有的索引和文档数据是存储在本地的磁盘中&#xff0c; 具体的路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置&#xff0c;如下&#xff1a;磁盘在现代服务器上通常都是瓶颈。…...

给力|这是一个专业的开源快速开发框架!

在低代码开发市场&#xff0c;专业的开源快速开发框架可以助力企业提升办公协作效率&#xff0c;实现提质增效的办公自动化的发展目标。 流辰信息低代码技术开发平台服务商&#xff0c;拥有丰富的技术经验和案例合作经验&#xff0c;针对不同的客户需求&#xff0c;提供个性化、…...

CIMCAI smart shipping company product container damage identify

世界港航人工智能领军者企业CIMCAI&#xff0c;领先智能航运船公司集装箱管理产品ceaspectusS™全球规模化应用落地智能化航运&#xff0c;全球前三船公司认可验箱标准应用。全球港航人工智能领军者企业CIMCAI&#xff0c;是全球第一家完成两百万次人工智能验箱&#xff0c;上亿…...

ego微商小程序项目-接口测试

文章目录 1.接口理论回顾1.1 接口测试相关概念1.2 接口测试流程2.接口测试文档2.1 接口测试文档基础2.2 ego微商小程序的接口文档解析3.设计接口测试用例3.1 接口测试用例基础3.2 ego微商小程序接口测试用例4. 执行测试用例4.1 ego小程序测试用例执行4.1.1 首页-轮播图4.1.2 用…...

excel文件已经损坏怎么办

1. excel文件突然损坏怎么办Excel修复不成功还可以尝试其他修复方式。1、Excel提示文件已损坏可能是受保护视图的问题。如果打开文件碰到此提示&#xff0c;可以先点确定。在按以下步骤操作&#xff1a;1&#xff09;在空白程序界面&#xff0c;点击功能栏的【文件】&#xff0…...

Java【数据结构入门OJ题33道】——力扣刷题记录1

文章目录第一天存在重复元素最大子数组和第二天两数之和合并两个有序数组第三天两个数组的交集买卖股票最佳时机第四天重塑矩阵杨辉三角第五天有效的数独矩阵置零第六天字符串中第一个唯一字符救赎金第七天判断链表是否有环合并两个有序链表移除链表元素第八天反转链表删除重复…...

Spring事务介绍

文章目录一、编程式事务二、声明式事务&#xff08;常用&#xff09;三、事务实战详解3.1&#xff09;事务的回滚机制3.2&#xff09;事务的传播3.3&#xff09;事务超时时间3.4&#xff09;事务隔离级别3.5&#xff09;事务回滚条件Spring中对事务有两种支持方式&#xff0c;分…...

Intellij Idea如何使用VM

打开Run/Debug Configuration 然后在More option 里选择 add VM options 根据要实现的目的选择main class 比如说要建造class diagram 那就选择app.ClassDiagramGenerator 然后在下面那行输入 D:\software-engineering\2023\commons-compress\target\classes true true org.apa…...

基础04-什么时候不能使用箭头函数

箭头函数的缺点 题目 什么时候不能使用箭头函数&#xff1f; 箭头函数的缺点 没有 arguments const fn1 () > {console.log(this, arguments) // 报错&#xff0c;arguments is not defined } fn1(100, 200)无法通过 call apply bind 等改变 this const fn1 () >…...

算法小抄5-原地哈希

书接上回,学会了数组中重复数字的解法三,相信接下来的题也难不倒你 找到数组中消失的数字 题目链接 题意 对于一个大小为n的数组,数组中所有的数都在[1,n]内,其中有些数字重复了,由于有些数字重复了,另一些数字就一定会确实,这次需要找到所有缺少的数字并且返回结果 有没有发…...

java零基础入门(1)

java零基础入门一、JRE和JDK1.1 JRE1.2 JDK1.3 IDK&#xff0c;JRE&#xff0c;JVM三者的包含关系二、CMD2.1 打开CMD2.2 常用CMD命令2.2.1 盘符名称 冒号2.2.2 dir2.2.3 cd 目录2.2.4 cd ..2.2.5 cls2.2.6 exit2.2.7 cd \2.2.8 cd \目录\目录\目录\目录2.3 利用快捷cmd打开 Q…...

java socket实例

/*** 启动项目后就创建Server Socket服务*/PostConstructpublic void runServerSocket() {try {ExecutorService executorService Executors.newFixedThreadPool(10);// 创建线程池ServerSocket serverSocket new ServerSocket(9090);// 在设备上配置的服务端监听端口为9090e…...

计算机中信息的表示和处理 整数和小数的二进制表示

信息的表示和处理整数进制字移位运算无符号数和有符号数加法运算小数定点表示IEEE 浮点表示规格化和非规格化舍入浮点运算现代计算机存储和处理的信息以二值信号表示&#xff0c;这些二进制数字称为位&#xff0c;为什么要用二进制来进行编码&#xff1f;因为二进制只有1和0两种…...

Chapter2.2:线性表的顺序表示

该系列属于计算机基础系列中的《数据结构基础》子系列&#xff0c;参考书《数据结构考研复习指导》(王道论坛 组编)&#xff0c;完整内容请阅读原书。 2.线性表的顺序表示 2.1 顺序表的定义 线性表的顺序存储亦称为顺序表&#xff0c;是用一组地址连续的存储单元依次存储线性表…...

老马闲评数字化「4」做数字化会不会被供应商拿捏住

原文作者&#xff1a;行云创新CEO 马洪喜 导语 开年过后业务特别的繁忙&#xff0c;出差也比较多&#xff0c;所以有段时间没更新了&#xff0c;对不住大家&#xff01; 上一集&#xff08;您可以查看“行云创新”主页阅读原文&#xff09;咱们聊了数字化转型的“想转、急转、…...

robosuite添加无碰撞的模型

1 前言 最近在使用robosuite时,需要在仿真环境中可视化物体的目标位置,从而方便观察训练情况,可视化的物体有以下要求: 形状尺寸与操作的物体一样半透明只有visual,不与场景其他物体有碰撞可以在每次step后设置位置,且固定在设定的位置,不受重力影响 2 方法 找了半天,最终确…...

JS学习笔记day03

今日内容 零、 复习昨日 CSS 美化,复用,样式文件和表现文件分离便于维护 选择器 {属性:值;…} 引入css 内联文件内部使用style标签外部文件 <link href"路径" rel"stylesheet" type"text/css"> 选择器 基本 idclass标签名 属性 标签名…...

离散数学笔记_第一章:逻辑和证明(3)

1.3 命题等价式1.3.1 逻辑等价式 1.3.2 条件命题和双条件命题的逻辑等价式 1.3.3 德摩根律 1.3.4 可满足性 可满足的 不可满足的 可满足性问题的解 1.3.5析取范式&#xff08;基本积之和&#xff09;&#xff0c;合取范式&#xff08;基本和之积&#xff09;1.3.6合式公式1…...

软件测试分类知识分享,第三方软件测试机构收费贵不贵?

软件测试可以很好的检验软件产品的质量以及规避产品上线之后可能会发生的错误&#xff0c;随着技术的发展&#xff0c;软件测试已经是一个完整且体系庞大的测试活动&#xff0c;不同的测试领域有着不同的测试方法、技术与名称&#xff0c;那么具体有哪些分类呢? 一、软件测试…...

爬虫(二)解析数据

文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后&#xff0c;并不是全部的数据都能用&#xff0c;我们只需要截取里面的一些数据来用&#xff0c;这也就是解析爬取到的信…...

【C++、C++11】可变参数模板、lambda表达式、包装器

文章目录&#x1f4d6; 前言1. 可变参数模板1.1 万能模板&#xff1a;1.2 完美转发&#xff1a;1.3 可变参数模板的使用&#xff1a;1.4 emplace_back&#xff1a;2. lambda表达式2.1 lambda表达式的定义&#xff1a;2.2 lambda表达式的用法&#xff1a;2.2 - 1 捕捉列表的用法…...

外贸主机测评

一、俄罗斯vps 服务商&#xff1a; JUSTG: Home - Sun Network Company Limited LOCVPS: LOCVPS 全球云 - 十年老牌 为跨境外贸/远程办公/网站建设提供澎湃动力 JUSTHOST: justhost.ru RUVDS: Gcorelabs: 二、主机测评指标&#xff1a; 1、速度、延迟、丢包、路由测试…...

Meta CTO:Quest 2生命周期或比预期更久

前不久&#xff0c;Meta未来4年路线图遭曝光&#xff0c;泄露了该公司正在筹备中的一些AR/VR原型。除此之外&#xff0c;还有消息称Quest Pro或因销量不佳&#xff0c;而不再迭代。毫无疑问&#xff0c;Meta的一举一动持续受到行业关注&#xff0c;而面对最近的爆料&#xff0c…...

Vector - CAPL - 文件处理函数

在当前平台化的趋势下,就算是协议层测试依然需要适配各种各样的项目,也需要处理各类型的文件,那我们如何对文件进行读取、写入、修改等类型的操作呢?今天我们就会介绍此类型的函数,主要适用于text、bin文件的处理。 打开文件 Open...

实力加持!RestCloud完成多方国产化适配,携手共建信创生态

近年来&#xff0c;随着数字化建设进入深水区&#xff0c;企事业单位对信息安全重视程度与日俱增&#xff0c;核心技术自主可控已成为时代呼唤&#xff0c;国产化浪潮日益汹涌澎湃。近日&#xff0c;RestCloud在国产化方面取得新进展&#xff0c;完成了全部产品线信创环境的多方…...

Unity 3D GUI教程||OnGUI TextArea 控件||OnGUI ScrollView 控件

OnGUI TextArea 控件 Unity 3D TextArea 控件用于创建一个多行的文本编辑区。用户可以在多行文本编辑区编辑文本内容。 该控件可以对超出控件宽度的文本内容实现换行操作。 TextArea 控件同样会将当前文本编辑区中的文本内容以字符串形式返回。 开发人员可以通过创建 Strin…...

Leetcode.828 统计子串中的唯一字符

题目链接 Leetcode.828 统计子串中的唯一字符 Rating &#xff1a; 2034 题目描述 我们定义了一个函数 countUniqueChars(s)来统计字符串 s中的唯一字符&#xff0c;并返回唯一字符的个数。 例如&#xff1a;s "LEETCODE"&#xff0c;则其中 "L", "…...

Hibernate 相关特性

1. Hibernate一般使用hql进行查询&#xff0c;但也有sql执行的方法 Native sql 查询,。需要注意的是&#xff0c;使用Native SQL查询可能会破坏Hibernate的缓存机制&#xff0c;并可能导致性能问题 String sql "SELECT * FROM users WHERE age > :age"; Query …...

【研究生学术英语读写教程翻译 中国科学院大学Unit1-Unit8】

Unit1 Descartes Was Wrong 笛卡尔错了:“他人在,故我在” Unit2 Are we ready for the next volcanic catastrophe?我们准备好应对下一次火山灾难了吗? Unit3 Theorists,experimentalists and the bias in popular physics理论家,实验家和大众物理学的偏见 unit4 Magic Nu…...

ListView 控件的使用

第一步&#xff1a;找到ListView的控件通过findViewById 找到ListView的控件 ListView listView findViewById(R.id.listView);第二步&#xff1a;创建Bean类 得到set和get的方法解析获取的数据创建Bean类 得到set和get的方法public class Bean {String nanm""; pub…...

域控制器搭建以及成员加入

需要iso&#xff1a;windows server 2016软件使用&#xff1a;vmwarewindows server 2016系统搭建自己选iso&#xff0c;一直下一步就可以安装完成。&#xff08;记得要设置密码&#xff09;&#xff08;密码要求大小写字母数字符号&#xff09;等待就能安装完成。安装和配置Ac…...

利用 MLP(多层感知器)和 RBF(径向基函数)神经网络解决的近似和分类示例问题(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 1、径向基神经网络 径向基函数网络是由三层构成的前向网络&#xff1a;第一层为输入层&#xff0c;节点个数的能与输入的维数&…...

进阶C语言——数据的存储【详解】

文章目录1. 数据类型介绍1.1 类型的基本归类2. 整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习3. 浮点型在内存中的存储3.1 一个例子3.2 浮点数存储的规则1. 数据类型介绍 前面我们已经学习了基本的内置类型&#xff1a; char //字符数据类型 short //短整型 …...

KUKA机器人修改机器人名称和IP地址的具体方法示例

KUKA机器人修改机器人名称和IP地址的具体方法示例 修改机器人名称 如下图所示,首先切换用户组到管理员,输入默认密码:kuka, 如下图所示,点击菜单键—投入运行—机器人数据, 如下图所示,此时可以看到机器人的名称为rrr445, 如下图所示,修改之后,点击左侧的“”…...

【数据分析师求职面试指南】必备基础知识整理

数据分析师基础知识统计 数据分析知识基础概念随机变量常用特征正态分布与大数定律、中心极限定律假设检验模型、数据挖掘知识常用概念数据集划分欠拟合过拟合模型分类方法常见模型介绍线性回归模型&#xff1a;逻辑回归模型决策树模型随机森林模型Boosting模型XGBoost模型模型…...

《开关电源宝典 降压电路(BUCK)的原理与应用》

嗨&#xff0c;硬件攻城狮或电源工程师同行们&#xff0c;我想写本专门解析BUCK电源电路的书籍&#xff0c;以下是“前言”内容的部分摘录以及当前的目录&#xff0c;当前已经完成22万多字500多页了&#xff0c;即使如此&#xff0c;离真正出版书籍&#xff0c;还有很长的路要走…...

R语言基础(一):注释、变量

R语言用于统计分析和绘制图表等操作。不同于Java等其它语言&#xff0c;R用于统计&#xff0c;而不是做一个网站或者软件&#xff0c;所以R的一些开发习惯和其它语言不同。如果你是一个编程小白&#xff0c;那么可以放心大胆的学。如果你是一个有编程基础的人&#xff0c;那么需…...

Java 集合进阶(二)

文章目录一、Set1. 概述2. 哈希值3. 元素唯一性4. 哈希表5. 遍历学生对象6. LinkedHashSet7. TreeSet7.1 自然排序7.2 比较器排序8. 不重复的随机数二、泛型1. 概述2. 泛型类3. 泛型方法4. 泛型接口5. 类型通配符6. 可变参数7. 可变参数的使用一、Set 1. 概述 Set 集合特点&am…...

小孩用什么样的台灯比较好?2023眼科医生青睐的儿童台灯推荐

小孩子属于眼睛比较脆弱的人群&#xff0c;所以选购护眼台灯时&#xff0c;选光线温和的比较好&#xff0c;而且调光、显色效果、色温、防蓝光等方面也要出色&#xff0c;否则容易导致孩子近视。 1、调光。台灯首先是照度高&#xff0c;国AA级&#xff0b;大功率发光&#xff0…...

Ubuntu c++ MySQL数据库操作

mysql安装sudo apt-get install updatesudo apt-get install mysql-server libmysqlclient-dev mysql-workbenchmysql启动/重启/停止sudo service mysql start/restart/stop登录mysql命令&#xff1a;mysql -uroot -p错误异常&#xff1a;解决办法&#xff1a;修改mysqld.cnf配…...

C++11:lambda表达式

文章目录1. 概念2. 语法3. 示例示例1示例2示例3示例44. 捕捉方式基本方式隐式和混合补充5. 传递lambda表达式示例6. 原理7. 内联属性1. 概念 lambda表达式实际上是一个匿名类的成员函数&#xff0c;该类由编译器为lambda创建&#xff0c;该函数被隐式地定义为内联。因此&#…...

【Android -- 开源库】表格 SmartTable 的基本使用

介绍 1. 功能 快速配置自动生成表格&#xff1b;自动计算表格宽高&#xff1b;表格列标题组合&#xff1b;表格固定左序列、顶部序列、第一行、列标题、统计行&#xff1b;自动统计&#xff0c;排序&#xff08;自定义统计规则&#xff09;&#xff1b;表格图文、序列号、列标…...

自动化测试实战篇(9),jmeter常用断言方法,一文搞懂9种测试字段与JSON断言

Jmeter常用的断言主要有&#xff0c;JSON断言和响应断言这两种方式。 断言主要就是帮助帮助人工进行快速接口信息验证避免繁杂的重复的人工去验证数据 第一种响应断言Apply to&#xff1a;表示应用范围测试字段&#xff1a;针对响应数据进行不同的匹配响应文本响应代码响应信息…...

vue-virtual-scroll-list虚拟列表

当DOM中渲染的列表数据过多时&#xff0c;页面会非常卡顿&#xff0c;非常占用浏览器内存。可以使用虚拟列表来解决这个问题&#xff0c;即使有成百上千条数据&#xff0c;页面DOM元素始终控制在指定数量。 一、参考文档 https://www.npmjs.com/package/vue-virtual-scroll-li…...