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.pswp.cn/news/454632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454632.shtml
英文地址,請注明出處:http://en.pswp.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;今天大衛給大家推薦一款開源免費得賬號…