Python 之数据类型

文章收集于网络,如有版权,请联系作者

一、引子

1 什么是数据?

x=10,10是我们要存储的数据

2 为何数据要分不同的类型

数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示

3 数据类型

数字、字符串、列表、元组、字典、集合

二、基础数据类型

2.1 数字 int

数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以:
int() 可以把其他类型转化为数字类型,并自动除去空格,但是前提是转化的数字

# bit_length() 当十进制用二进制表示时,最少使用的位数
v = 11
data = v.bit_length()
print(data)

2.2 布尔值bool

布尔值就两种:True,False

真   1   True
假   0   Falseint:0   list:[]   tuple:{}   str:'' 转化为布尔值是False,其他的都是True

2.3 字符串str

2.3.1 字符串的索引与切片。

索引即下标,就是字符串组成的元素从第一个开始,初始索引为0,以此类推。

a = 'ABCDEFGHIJK'
print(a[0])   # A
print(a[3])   # D
print(a[-1])  # K

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:])      # 默认到最后  ABCDEFGHIJK
print(a[0:-1])    # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素 
print(a[0:5:2])   # 加步长  ACE
print(a[5:0:-2])  # 反向加步长  FDB

2.3.2、字符串常用方法。

# 大小写转化 captalize,swapcase,title
name = 'flp'
print(name.capitalize())  # 首字母大写
print(name.swapcase())    # 大小写翻转
msg='i love china'
print(msg.title())        # 每个单词的首字母大写# 内容居中 center
a1 = 'abcdefgabcd'
ret2 = a1.center(20,"*")  # 内容居中(总长度,空白处填充)
print(ret2)# 统计字符串出现元素个数 count
ret3 = a1.count("a",0,4)  # 字符串中的元素出现的个数,可切片(元素,开始位置,结束位置)
print(ret3)# \t补全
a2 = "hqw\t"
ret4 = a2.expandtabs()  # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个
print(ret4)# 判断字符串开头结尾 可切片startswith,endswith
a4 = "dkfjdkfasf54"
ret4 = a4.startswith('jdk',3,6)  # 判断是否以...开头,顾头不顾腚,返回的是布尔值
print(ret4)
ret5 = a4.endswith("kfj",1,4)    # 判断是否以...结尾,顾头不顾腚,返回的是布尔值
print(ret5)# 判断字符串中的元素是否存在 可切片find index
ret6 = a4.find("fjdk",1,6)      # 返回的找到的元素的索引,如果找不到返回-1
print(ret6)
ret61 = a4.index("fjdk",4,6)    # 返回的找到的元素的索引,找不到报错
print(ret61)
# 注:在用find判断字符不存在时,用下列的方式,因为不存在返回值是-1。
# if a4.find("fjdk",1,6) == -1# split 分割,最终形成一个列表此列表不含有这个分割的元素。
a5 = 'title,Tilte,atre,'
ret9 = a5.split('t')
print(ret9)     # 结果['', 'i', 'le,Til', 'e,a', 're,']
ret91 = a5.rsplit('t',1)
print(ret91)    # 结果['title,Tilte,a', 're,']
ret92 = a5.rsplit('t',2)
print(ret92)    # 结果['title,Til', 'e,a', 're,']# format的三种玩法 格式化输出
res='{} {} {}'.format('egon',18,'male')      # 结果 egon,18,male
res='{1} {0} {1}'.format('egon',18,'male')   # 结果 18,egon,18
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)# strip切除字符串开头或结尾的字符
name='*egon**'
print(name.strip('*'))   # 切除字符串开头和结尾包含的*
print(name.lstrip('*'))  # 切除字符串开头包含的*
print(name.rstrip('*'))  # 切除字符串结尾包含的*# replace字符串替换
name='flp China name is flp'
print(name.replace('flp','shuai',1))  #(要替换的字符串,替换成的字符串,替换的个数)# is系列
name='flp123'
print(name.isalnum())  # 字符串由字母或数字组成,返回布尔值
print(name.isalpha())  # 字符串只由字母组成,返回布尔值
print(name.isdigit())  # 字符串只由数字组成,返回布尔值# 判断字符串是否为空
s=' '
if s.strip()=='':print('s is null')
# 或者
if not s.strip():print('s is null')

 2.4 元祖tuple

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

 2.5 列表list

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li = [123,Ture,(1,2,3,’abc’),[1,2,3,’小明’,],{‘name’:’abc’}]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

2.5.1、增

li = [1,'a','b',2,3,'a']
li.insert(0,55)          # 按照索引去增加
print(li)                # [55, 1, 'a', 'b', 2, 3, 'a']li.append('aaa')         # 增加到最后
li.append([1,2,3])
print(li)                # [55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]li.extend(['q,a,w'])     # 迭代的去增
li.extend(['q,a,w','aaa'])
li.extend('a')
li.extend('abc')
li.extend('a,b,c')
print(li)
# [55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q,a,w', 'q,a,w', 'aaa', 'a', 'a', 'b', 'c', 'a', ',', 'b', ',', 'c']

2.5.2、删

li = [1,'a','b',2,3,'a']
l1 = li.pop(1)         # 按照位置去删除,有返回值,返回被删除的元素
print(l1,li)           # a [1, 'b', 2, 3, 'a']del li[1:3]            # 按照位置去删除,也可切片删除没有返回值。
print(li)              # [1, 3, 'a']li.remove('a')         # 按照元素去删除
print(li)              # [1, 3]li.clear()             # 清空列表

2.5.3、改

li = [1,'a','b',2,3,'a']
li[1] = 'dfasdfas'
print(li)             # [1, 'dfasdfas', 'b', 2, 3, 'a']li[1:3] = ['a','b']
print(li)             # [1, 'a', 'b', 2, 3, 'a']

2.5.4、查

切片去查,或者循环去查。

2.5.5、其他操作

# count 统计某个元素在列表中出现的次数
a = ["q","w","q","r","t","y"] print(a.count("q"))
# index 用于从列表中找出某个值第一个匹配项的索引位置
a = ["q","w","r","t","y"] print(a.index("r")) # sort 用于在原位置对列表进行排序,没有返回值
a = [2,1,3,4,5] 
a.sort()        # 他没有返回值,所以只能打印排序后的a 
print(a)# reverse 将列表中的元素反向存放,也没有返回值
a.reverse()    # 他也没有返回值,所以只能打印排序后的a 
print(a)

 2.6字典dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表外,python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

2.6.1、增

dic = {}
dic['li'] = ["a","b","c"]
print(dic)        # {'li': ['a', 'b', 'c']}
# setdefault 在字典中添加键值对,如果键对应的值是none,则添加;如果值不为空,则不会更改覆盖。
dic.setdefault('k','v')
print(dic)        # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic.setdefault('k','v1')  
print(dic)        # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}

2.6.2、删

dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
print(dic_pop)del dic["name"]                         # 没有返回值。
print(dic)dic_pop1 = dic.popitem()                # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic_pop1)  dic_clear = dic.clear()                 # 清空字典
print(dic,dic_clear)                    # {} None

注:在循环字典本身的时候,不能删除字典的键值对

2.6.3、改

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)      # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
print(dic2)           # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

2.6.4、查

value1 = dic["name"]  # 没有会报错
print(value1)value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值
print(value2)

2.6.5、其他操作

item = dic.items()
print(item,type(item))  
# dict_items([('age', '18'), ('sex', 'male')) <class 'dict_items'>这个类型就是dict_items类型,可迭代的keys = dic.keys()
print(keys,type(keys))      # dic的所有kvalues = dic.values()
print(values,type(values))  # dic的所有值# 字典的循环。
dic = {"age":18,"sex":"male"}
for key in dic:print(key)
for item in dic.items():print(item)
for key,value in dic.items():print(key,value)# 判断值是否在字典中
if 'age' in dic.keys: 
if 'age' in dic:# fromkeys(seq[, value]) 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
dict.fromkeys(seq[, value])seq -- 字典键值列表。value -- 可选参数, 设置键序列(seq)的值。seq = ('Google', 'Runoob', 'Taobao')
dict = dict.fromkeys(seq)
print "新字典为 : %s" %  str(dict)
# 新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}dict = dict.fromkeys(seq, 10)
print "新字典为 : %s" %  str(dict)
# 新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}

 2.7 集合set

集合:可变的数据类型,他里面的元素必须是不可变(可哈希)的数据类型,无序,不重复

去重:把一个列表变成集合会自动去重

关系测试是,测试两组数据之前的交集,差集,并集等关系

创建

set1 = set(1,2,abc)

set1.add('dong')
set1.update([1,2,3])

set1.remove('a') # 删除一个元素
set1.pop('b')    # 随机删除一个,有返回值,返回值为删除的元素
set1.clear()     # 清除set
del set1         # 删除set1

for i in set1 :print(i)

关系测试

set1 = {1,2,3,4,'a'}
set2 = {'a','b','c','d',1}
print(set1 & set2)    
print(set1.intersection(set2)) # 交集{1, 'a'}print(set1 | set2)    
print(set2.union(set1))        # 并集{1, 2, 3, 4, 'd', 'b', 'c', 'a'}print(set1 - set2)    
print(set1.symmetric_difference(set2)) # 差集,set1独有的{2, 3, 4}print(set1 ^ set2)    
print(set1.difference(set2))   # 反交集{2, 3, 4, 'c', 'd', 'b'}print(set1 > set2)    
print(set1.issubset(set2))     # 这两个相同,都是说明set1是set2子集。print(set2 < set2)
print(set2.issuperset(set1))   # 这两个相同,都是说明set2是set1超集。

三丶基础数据类型的总结

按存储空间的占用分(从低到高)

数字

字符串

集合:无序,即无序存索引相关信息

元组:有序,需要存索引相关信息,不可变

列表:有序,需要存索引相关信息,可变,需要处理数据的增删改

字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

按存值个数区分

标量/原子类型

数字,字符串

容器类型

列表,元组,字典

按可变不可变区分

可变

列表,字典

不可变

数字,字符串,元组,布尔值

按访问顺序区分

直接访问

数字

顺序访问(序列类型)

字符串,列表,元组

key值访问(映射类型)

字典

四丶其他(for,enumerate,range)

for循环:用户按照顺序循环可迭代对象的内容。

msg = 'Lepeng最帅'
for item in msg:print(item)li = ['赵','钱','孙','李']
for i in li:print(i)dic = {'name':'Lepeng','age':18,'sex':'man'}
for k,v in dic.items():print(k,v)

enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

li = ['赵','钱','孙','李']
for i in enumerate(li):print(i)
for index, name in enumerate(li, 100):  # 起始位置默认是0,可更改print(index, name)
# 100 赵
# 101 钱
# 102 孙
# 103 李

range:指定范围,生成指定数字。

for i in range(1,10):print(i)for i in range(1,10,2):  # 步长print(i)

join用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法:  'sep'.join(seq)

参数说明

sep:分隔符,可以为空

seq:要连接的元素序列、字符串、元组、字典

上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串,然后返回

示例
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))    # r-u-n-o-o-b
print (s2.join( seq ))    # runoob

五,判断是否是字符串,字典等(isinstance)

在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断:

#!/usr/bin/env python
a = 1
b = [1,2,3,4]
c = (1,2,3,4)
d = {'a':1,'b':2,'c':3}
e = "abc"
if isinstance(a,int):print "a is int"
else:print "a is not int"
if isinstance(b,list):print "b is list"
else:print "b is not list"
if isinstance(c,tuple):print "c is tuple"
else:print "c is not tuple"
if isinstance(d,dict):print "d is dict"
else:print "d is not dict"
if isinstance(e,str):print "d is str"
else:print "d is not str"

六丶相互转化

# 1、字典
dict1 = {'name': 'Zara', 'age': 7, 'class': 'First'}
# 字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'}
print(type(str(dict1)), str(dict1))
# 字典可以转为元组,返回:('age', 'name', 'class')
print(tuple(dict1))
# 字典可以转为元组,返回:(7, 'Zara', 'First')
print(tuple(dict1.values()))
# 字典转为列表,返回:['age', 'name', 'class']
print(list(dict1))
# 字典转为列表,返回:['Zara', 7, 'First']
print(list(dict1.values()))# 2、元组
tup=(1, 2, 3, 4, 5)
# 元组转为字符串,返回:(1, 2, 3, 4, 5)
print(tup.__str__())
# 元组转为列表,返回:[1, 2, 3, 4, 5]
print(list(tup))
# 元组不可以转为字典# 3、列表
nums=[1, 3, 5, 7, 8, 13, 20];
# 列表转为字符串,返回:[1, 3, 5, 7, 8, 13, 20]
print(str(nums))
# 列表转为元组,返回:(1, 3, 5, 7, 8, 13, 20)
print(tuple(nums))
# 列表不可以转为字典# 4.1、字符串之eval函数,此函数有风险,需慎用,此函数的参数可以是系统命令,所以会存在风险
# 字符串转为元组,前提是字符串像元组,返回:(1, 2, 3)
print(eval("(1,2,3)"))
# 字符串转为列表,前提是字符串像列表,返回:[1, 2, 3]
print(eval("[1,2,3]"))
# 字符串转为字典,前提是字符串像字典,返回:{'name': 'ljq', 'age': 24}
print(eval("{'name':'ljq', 'age':24}"))# 4.2、字符串转换其他方式
# 字符串转为列表,结果['', 'i', 'le,Til', 'e,a', 're,']
a5 = 'title,Tilte,atre,'
print(a5.split('t'))# 字符串转为字典
s = "Name1=Value1;Name2=Value2;Name3=Value3"
d = dict(item.split("=") for item in s.split(";"))
print(d)
# 结果为dict = { "Name1": "Value1", "Name2": "Value2", "Name3": "Value3" },
# 注意s结尾不能是;如果是,用s.rstrip(';')

七,注意事项

如果元组只有一个元素,如果不加逗号,此元素是什么类型,则就是什么类型,如果元组只用()表示,也不存在此情况;list,字典不存在此情况

tu1 = ()             # <class ''tuple'>
tu2 = (1)            # <class 'int'>
tu3 = (1,)           # <class 'tuple'>list1 = ['a']        # <class 'list'>
list2 = []           # <class 'list'>

八丶深浅copy

1,先看赋值运算

l1 = [1,2,3,['AB','ab']]
l2 = l1l1[0] = 111
print(l1)    # [111, 2, 3, ['AB', 'ab']]
print(l2)    # [111, 2, 3, ['AB, 'ab']]l1[3][0] = 'EEE'
print(l1)    # [111, 2, 3, ['EEE', 'ab']]
print(l2)    # [111, 2, 3, ['EEE', 'ab']]

对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的。

2,浅拷贝copy

# 同一代码块下:
l1 = [1, 'abc', True, (1,2,3), [22, 33]]
l2 = l1.copy()
print(id(l1), id(l2))          # 2713214468360 2713214524680 不同
print(id(l1[-2]), id(l2[-2]))  # 2547618888008 2547618888008 相同
print(id(l1[-1]),id(l2[-1]))   # 2547620322952 2547620322952 相同# 不同代码块下:
l1 = [1, 'abc', True, (1, 2, 3), [22, 33]]
l2 = l1.copy()
print(id(l1), id(l2))         # 1477183162120 1477183162696 不同
print(id(l1[-2]), id(l2[-2])) # 1477181814032 1477181814032 相同
print(id(l1[-1]), id(l2[-1])) # 1477183162504 1477183162504 相同

对于浅copy来说,只是在内存中重新创建了开辟了一个空间存放一个新列表,但是新列表中的元素与原列表中的元素是公用的

3,深拷贝deepcopy。

# 同一代码块下
import copy
l1 = [1, 'abc', True, (1,2,3), [22, 33]]
l2 = copy.deepcopy(l1)
print(id(l1), id(l2))         # 2788324482440 2788324483016 不同
print(id(l1[0]),id(l2[0]))    # 1470562768 1470562768 相同
print(id(l1[-1]),id(l2[-1]))  # 2788324482632 2788324482696 不同
print(id(l1[-2]),id(l2[-2]))  # 2788323047752 2788323047752 相同# 不同代码块下
import copy
l1 = [1, 'abc', True, (1, 2, 3), [22, 33]]
l2 = copy.deepcopy(l1)
print(id(l1), id(l2))         # 1477183162824 1477183162632 不同
print(id(0), id(0))           # 1470562736 1470562736 相同
print(id(-2), id(-2))         # 1470562672 1470562672 相同
print(id(l1[-1]), id(l2[-1])) # 1477183162120 1477183162312 不同

对于深copy来说,列表是在内存中重新创建的,列表中可变的数据类型是重新创建的,列表中的不可变的数据类型是公用的

八、小数据池

小数据池。 一种数据缓存机制. 也被称为驻留机制. 各大编程语⾔中都有类似的东西.

小数据池只针对: 整数, 字符串, 布尔值. 其他的数据类型不存在,如列表,元祖等,即使里面只有一个值,赋值时内存地址不一样

在python中对-5到256之间的整数会被驻留留在内存中. 将一定规则的字符串缓存. 在使用的时候, 内存中只会创建一个该数据的对象. 保存在小数据池中. 当使用的时候直接从小数据池中获取对象的内存引用. 而不需要创建一个新的数据. 这样会节省更多的内存区域.

优点: 能够提⾼一些字符串, 整数的处理速度. 省略创建对象的过程.
缺点: 在’池’中创建或者插入新的内容会花费更多的时间.

对于数字:

 -5~256是会被加到小数据池中的. 每次使用都是同一个对象. 例如:

a,b=100,100

print(a is b)     #True

对于字符串:

如果字符串的长度是0或者1, 都会默认进行缓存

字符串长度大于1, 但是字符串中只包含字母, 数字, 下划线时才会缓存,无论字符串长度大小

用乘法得到的字符串.

        ①. 乘数等于1, 仅包含数字, 字母, 下划线时会被缓存. 如果包含其他字符, 而长度<=1 也会被驻存,

        ②. 乘数大于1, 仅包含数字, 字母, 下划线时会被缓存. 但字符串长度不能大于20 ,大于20不会缓存

指定驻留. 我们可以通过sys模块中的intern()函数来指定要驻留留的内容.

到目前为止. 我们已经了解了了python的小数据池的一些基本情况了. 但是!!!! 还有最后一 个问题. 小数据池和最开始的代码块有什么关系呢? 同样的一段代码在命令行窗口和在py文件中. 出现的效果是完全不一样的。在代码块内的缓存机制是不一样的.

  1. 在执行同一个代码块的初始化对象的命令时, 会检查其值是否已经存在, 如果存在, 会将其重用. 换句话说: 执行同一个代码块时, 遇到初始化对象的命令时,他会将初始化的这个变量与值存储在一个字典中, 在遇到新的变量时, 会先在字典中查询记录, 如果有同样的记录那么它会重复使用这个字典中的之前的这个值. 所以在文件执行时(同一个代码块) 会把a, b两个变量量指向同⼀一个对象.
  2. 如果是不同的代码块, 他就会看这个两个变量是否满足小数据池的数据, 如果是满足小数据池的数据则会指向同一个地址. a, b的赋值语句分别被当作两个代码块执行, 但是他们不满足小数据池的数据所以会得到两个不同的对象, 因而is判断返回False.

= 为赋值,赋予的是内存地址
is:比较的是内存地址。
id:比较的id是否相同。
==:比较两个值是否相等。

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

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

相关文章

Jquery中$(document).ready(function(){ })函数的使用详解

Jquery是优秀的Javascrīpt框架,$是jquery库的申明&#xff0c;它很不稳定&#xff08;我就常遇上&#xff09;,换一种稳定的写法jQuery.noConflict(); jQuery(document).ready(function(){}); 使用jQuery的好处是它包装了各种浏览器版本对DOM对象(javascript的DOM对象你应该知…

爬虫数据executemany插入_金融数据的获取——一个爬虫的简单例子

对量化投资策略进行研究&#xff0c;第一步就是获取我们需要的数据。使用历史数据能够对策略进行回测&#xff0c;以验证策略的有效性和可信性。另一方面&#xff0c;量化投资本身也是一种对数据的研究&#xff0c;因此它也必须遵循数据分析的相关步骤。作为一个业余的量化投资…

洛谷 P1736 创意吃鱼法

P1736 创意吃鱼法 题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中&#xff0c;然后开始思考&#xff1a;到底要以何种方法吃鱼呢&#xff08;猫猫就是这么可爱&#xff0c;吃鱼也要想好吃法 ^_*&#xff09;。她发现&#xff0c;把大池子视为01矩阵&#xff0…

程序员面试中遇到问题

面试时候经常会问的一些问题(不断补充中) 面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常看到这些题). 如何把一段逗号分割的字符串转换成一个数组? request.getAtt…

linux检查swap配置,Linux环境下swap配置方法

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;前言安装Linux系统之后&#xff0c;默认是没有swap分区&#xff0c;那么我们怎样增加和删除swap分区。配置swap步骤1) 内存占用情况1free -hSwap: 0B 0B 0B2) 通过…

react学习系列1 修改create-react-app配置支持stylus

注&#xff1a;由于前端更新非常快&#xff0c;写这篇文章时 create-react-app 使用的版本是1.4.1 最新的使用流程请参照官方文档。create-react-app 是facebook推出的快速创建react项目的命令行工具。 他和 vue-cli 类似。开箱即用&#xff0c;不用改一行配置就可以开发出针对…

Python 内置模块之 时间模块 datetime

概述 datatime模块重新封装了time模块&#xff0c;提供更多接口&#xff0c;datetime库定义了2个常量和5个类。 2个常量分别是&#xff1a; MINYEAR1MAXYEAR9999 5个类分别是&#xff1a; date类&#xff1a;表示日期的类time类&#xff1a;表示时间的类datetime类&#xf…

python自学网站需要多长时间-怎么自学python,大概要多久?

我泼点冷水&#xff1a;建议还是要慎重选择上来新手就自学Python。如果想认认真真打好基础&#xff0c;还是要至少从Java学起。换句话说&#xff0c;先学会Java&#xff0c;然后再学Python不迟。 Python的最大优势是简单明快&#xff0c;最大问题也是简单明快。 我面试过很多用…

[c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset

一、memset #include<stdio.h> #include<stdlib.h> #include<memory.h>void *mymemset(void *p, int num, int len) {char *px (char *)p;if (p NULL)return NULL;while (len>0){*px (char)num;px;len--;}return p;//因为上述代码是对px进行操作&#…

linux切换sid,linux – 将sid字段添加到ps -f输出

我正在阅读ps手册页,有一些我不明白的东西.-f does full-format listing. This option can be combined with many otherUNIX-style options to add additional columns. It also causes thecommand arguments to be printed. When used with -L, the NLWP (number ofthreads) …

使用Cross-Page Postback(跨页面提交)在页面间传递数据

页面间传递数据的几种方法 在页面间传递数据时&#xff0c;我们有以下几种选择&#xff1a; 1、Query String 一个很常见的方法&#xff0c;Query String是URL中问号之后的那一部分。其优点在于它是轻量级的&#xff0c;不会给服务器带来任何负担。而它也有几个缺点&#xff1a…

synchronized 和 lock 的区别

lock更灵活&#xff0c;可以自由定义多把锁的加锁解锁顺序&#xff08;synchronized要按照先加的后解顺序&#xff09; 提供多种加锁方案&#xff0c;lock 阻塞式, trylock 无阻塞式, lockInterruptily 可打断式&#xff0c; 还有trylock的带超时时间版本。 本质上和监视器锁&a…

win10怎么设置默认输入法_win10系统输入法失效打不了字怎么办

大家好&#xff0c;今天分享一篇来自小白系统官网(xiaobaixitong.com)的图文教程。最近有用户反映自己电脑上的win10系统出现输入法失效打不了字的问题&#xff0c;想知道有没有解决该问题的方法。小编经过一番查找后给大家整理出了针对该问题的解决方法&#xff0c;下面就让我…

Python 内置模块之 时间模块 time

time模块提供各种时间相关的功能,与时间相关的模块有&#xff1a;time,datetime,calendar 必要说明&#xff1a; 这个模块的功能不是适用于所有的平台 这个模块中定义的大部分函数是调用C平台上的同名函数实现 一些术语和约定的解释&#xff1a; 时间戳(timestamp)的方式,返…

linux找link原路径,readlink命令找出符号链接所指向的位置

1.释义找出符号链接所指向的位置2.系统帮助用法&#xff1a;readlink [选项]... 文件...输出符号链接值或权威文件名。-f, --canonicalize递归跟随给出文件名的所有符号链接以标准化&#xff0c;除最后一个外所有组件必须存在-e, --canonicalize-existing递归跟随给出文件名的所…

国产毫米波雷达领域的领头羊,木牛科技将在明年量产77GHz汽车雷达

国内的汽车毫米波雷达市场风潮起于2015年前后&#xff0c;彼时国内的毫米波雷达企业已经发展很多年&#xff0c;但大都在军工领域。 面对突然出现的汽车毫米波雷达市场热潮&#xff0c;国内很快涌现出了一大批雷达的初创企业&#xff0c;努力挤进这一亦新亦旧的市场。 说是新&a…

面试风云录(02) - 与顶级CTO交手的难忘经验...

大部分面试都是寻找团队伙伴或成员&#xff0c;很少是面试高层&#xff0c;因为职级比我们高的人&#xff0c;自然会有更高层的人面试他们&#xff0c;但这次分享的不是一般面试&#xff0c;而是我跟顶级CTO交手的经验&#xff0c;尽管为了顾虑当事人隐私&#xff0c;我已经隐去…

MySQL 之 performance_schema

背景&#xff1a; 自 MySQL5.5开始&#xff0c;MySQL新增了一个数据库&#xff1a;PERFORMANCE_SCHEMA&#xff0c;主要用于收集数据库服务器性能参数。此库中表的存储引擎均为PERFORMANCE_SCHEMA&#xff08;用户不能创建存储引擎为PERFORMANCE_SCHEMA的表&#xff09;。MySQ…

DNS解析原理与Bind部署DNS服务

DNS是什么&#xff1f; DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;是互联网上最核心的带层级的分布式系统&#xff0c;它负责把域名转换为IP地址、反查IP到域名的反向解析以及宣告邮件路由等信息&#xff0c;使得基于域名提供服务称为可能&#xff0c…

qt 获取本机的wifi密码_还在记密码?这款开源免费的账号密码管理神器赶紧收了...

工作中涉及到得账号密码&#xff0c;你是怎么记录得&#xff1f;如果是文档word或者excel记录&#xff0c;那么回非常麻烦&#xff0c;每次还得打开。如果是浏览器自己记录&#xff0c;如果更新密码&#xff0c;又记不得。尴尬&#xff01;今天大卫给大家推荐一款开源免费得账号…