主頁 > 後端開發 > Python_基礎資料型別

Python_基礎資料型別

2020-10-26 06:21:03 後端開發

一,首先介紹一下變數

1. 變數是什么

在Python中,變數的概念基本上和初中代數的方程變數是一致的,

2. 變數命名規則

  1. 由數字、字母、下劃線組成
  2. 不能以數字開頭
  3. 要具有描述性
  4. 要區分大小寫
  5. 禁止使用python的關鍵字(在pycharm中關鍵字變數字體顏色會改變)
  6. 不能使用漢字或拼音
  7. 變數的推薦寫法
    7.1 駝峰體(類名推薦駝峰)
    7.2 下劃線(官方推薦)

3. 常量

變數名大寫就是常量,

二,基礎資料型別介紹

1, int

  • 數字型別,不可變,可哈希,用于比較和計算,
  • python3除法回傳的是float,浮點數(小數)
  • 不可變資料型別之一

2,bool

布林值,用于判

  • True - 真
    非空就是True,如:1,‘字串’,[串列],(元組,) 等資料型別不為空就是真,
  • False - 假
    為空就是False,如:0,’’,[],()

3,str

什么是字串?

python只要是用引號('',"","""""")引起來的就是字串
字串用于存盤少量資料,不可變資料型別之一,

str的索引、切片、步長

  1. 索引,index
    注意:索引的時候不可以超出字串的索引值,

  2. 切片
    切片的時候可以超出索引值,顧頭不顧尾,
    print(變數名[起始位置:終止位置]) 顧頭不顧尾
    print(變數名[:]) # 默認是從頭到尾

  3. 步長
    決定查找的方向(+ -)
    決定查找時查到的步子
    步長默認為1
    [起始位置:終止位置:步長]

  4. 例:

    # 從左向右排a = "0123456"
    # 從左向右排a = "-7-6-5-4-3-2-1"
    a = "風yu雷dian"
    print(a[4]) # d
    print(a[-4]) # a
    name = "東方不敗,火云邪神,未來戰士,審判天使,鋼鐵大俠"
    print(name[0:14:2])
    # 東不,云神未戰
    print(name[-4:-6:-1]) 
    # 鋼,
    print(name[-7:-12:-2])
    # 天審士 
    print(name[::-1]) 
    # 俠大鐵鋼,使天判審,士戰來未,神邪云火,敗不方東
    

字串的方法

  • upper() —— 全部大寫

    name = "qwer"
    a = name.upper()  # 全部大寫
    print(a)
    print(name)
    
  • lower() —— 全部小寫

    name = "QWER"
    a = name.lower()   # 全部小寫
    print(name)
    print(a)
    
  • str.capitalize() —— 首字母大寫

  • str.title() —— 每個單詞的首字母大寫

  • str.swapcase() —— 大小寫轉換,字串中大變小,小變大

name = 'qwer,asdf'
a = name.capitalize()
print(name)
print(a)

b = name.title()
print(name)
print(b)

c = name.swapcase()
print(name)
print(c)
結果:
qwer,asdf
Qwer,asdf
qwer,asdf
Qwer,Asdf
qwer,asdf
QWER,ASDF
  • str.center(數字,“分割符號”) —— 居中,填充
st = '真帥!'
a = st.center(30,"-")
print(st)
print(a)

結果:
真帥!
-------------真帥!--------------
  • startswith(“判斷字符”,索引開頭,索引結尾) —— 以什么開頭 – 回傳的是布林值

  • endswith(“判斷字符”,索引開頭,索引結尾) —— 以什么結尾 – 回傳的是布林值

    name = "qwertyuiop"
    print(name.startswith('e',2,3))  # 以什么開頭 -- 回傳的是布林值
    print(name.endswith("x",1,4))    # 以什么結尾 -- 回傳的是布林值
    
  • count(“字符”,索引) —— 統計,計數

    name = "qwetyuitrewasdfgh"
    print(name.count("w",8))      # 統計,計數 區分大小寫,8為索引到位置,從左到右計數,默認搜索全部
    結果:1
    
  • strip() —— 脫 默認脫(脫頭尾兩端的空格,換行符\n,制表符\t)

    pwd = " ez   "
    a = pwd.strip()   # 脫 默認脫(脫頭尾兩端的空格,換行符\n,制表符\t)
    print(a)
    pwd = "qweruytreqw"
    a = pwd.strip("qw")  # 去除頭尾兩端指定的內容,"al"不分順序
    print(a)
    結果:
    ez 
    eruytre
    
  • split() —— 分割(默認空格,換行符\n,制表符\t)

  • “分割符”.join(list) —— 拼接,將串列轉換成字串

    name = "qwe_asd_cc_r"
    a = name.split("_")        # 分割(默認空格,換行符\n,制表符\t)
    print(a)                   
    a = name.split("_",2)      # 指定分割次數 
    print(a)
    結果:回傳的是串列型別
    ['qwe', 'asd', 'cc', 'r']
    ['qwe', 'asd', 'cc_r']
    
    
    lis = ['qwe', 'asd', 'cc_r']
    b = ",".join(lis)
    print(lis)
    print(b)
    結果:
    ['qwe', 'asd', 'cc_r']
    qwe,asd,cc_r
    
  • replace() —— 全部替換

    name = "weixiang,qwe,a,b,v,d,e"
    a = name.replace(",",".")               # 全部替換
    print(a)
    a = name.replace(",",".",4)             # 指定替換的次數
    print(a)
    結果:
    weixiang.qwe.a.b.v.d.e
    weixiang.qwe.a.b.v,d,e
    
  • format"{}" —— 按照位置順序進行填充

    name = "{}今年:{}".format("兒子",18)    # 按照位置順序進行填充
    print(name)
    name = "{1}今年:{0}".format("兒子",18)    # 按照索引進行填充
    print(name) # 18今年:兒子
    name = "{name}今年:{age}".format(name="兒子",age=18)    # 按照名字進行填充
    print(name)
    
  • print(str.fimd(“元素”)) —— 查找 通過元素查找索引,查找不到時回傳-1
    print(str.index(“元素”)) —— 查找 通過元素查找索引,查找不到時就報錯

    推薦使用find,畢竟報錯看著很難受,
    
  • isdigit() —— 判斷字串中的內容是否全是阿拉伯數字

  • isdecimal() —— 判斷字串中的內容是不是十進制數

  • isalnum() —— 判斷字串中的內容是不是數字,字母,中文

  • isalpha() —— 判斷字串中的內容是不是字母,中文

  • isascii() —— 判斷字串中是不是字母數字(3.7以上解釋器中存在)

    msg = "wuhuaguo"
    print(msg.isdigit())      # 判斷字串中的內容是不是全都是數字(阿拉伯數字)False
    print(msg.isdecimal())    # 判斷是不是十進制數False
    print(msg.isalnum())      # 判斷是不是數字,字母,中文Ture
    print(msg.isalpha())      # 判斷是不是字母,中文Ture
    print(msg.isascii())      # 判斷是不是字母數字Ture
    
  • len() —— 查看資料型別中共有多少個元素

    msg = "原諒我這一生不羈放縱愛自由"
    print(len(msg)) # 公用的方法: len ,回傳的是數字型別
    

4,list

什么是串列

  1. 串列,list,資料型別之一
  2. 儲存da大量的,不同型別的資料
  3. 有序,可變,不可哈希
  4. 串列的定義:lis = []

串列的索引

  • 串列和字串一樣也擁有索引,但是串列可以修改:
lst = ['張三','李四','趙五','陳六']
print(lst[0])  # 串列中第一個元素
print(lst[1])  # 串列中第二個元素
print(lst[2])  # 串列中第三個元素

串列的切片&步長

  • 切片的用法和步長和字串一樣,顧頭不顧尾,
lst = ["章", "菲", "繡", "花", "魯迅"] 
print(lst[0:3])     # ['章', '菲', '繡'] 
print(lst[:3])      # ['章', '菲', '繡']
print(lst[1::2])    # ['菲', '花'] 也有步長 
print(lst[2::-1])   # ['繡', '菲', '章'] 也可以倒著取 
print(lst[-1:-3:-2])    # 倒著帶步長

串列的增

  • 注意:list和str是不一樣的. lst可以發生改變. 所以直接就在原來的物件上進行了操作

追加模式

  • append() —— 追加,在串列的末尾進行添加
lst = ["章", "菲", "繡", "花", "魯迅"] 
print(lst)  # ["章", "菲", "繡", "花", "魯迅"] 
lst.append("吃雞") 
print(lst) # ["章", "菲", "繡", "花", "魯迅","吃雞"] 
  • insert(索引,插入內容) —— 插入
lst = ["章", "菲", "繡", "花", "魯迅"] 
lst.insert(1, "許褚")    # 在1的位置插入許褚. 原來的元素向后移動一位
print(lst) # ["章", "許褚","菲", "繡", "花", "魯迅"]
  • extend([“safas”,“1234”]) —— 迭代添加,可以添加串列
# 迭代添加
lst = ["金志文", "張一山", "苦海無涯"]
lst.extend(["麻花藤", "麻花不疼"])
print(lst) # ["金志文", "張一山", "苦海無涯","麻花藤", "麻花不疼"]

串列的刪

  • pop —— 洗掉,默認洗掉最后一個,可以用索引洗掉

    pop有回傳值,是被洗掉的內容,

lst = ["章", "菲", "繡", "花", "魯迅"]
print(repr(lst.pop(2)))    # repr()查看當前資料的原生態
print(lst)  #["章", "菲", "花", "魯迅"]
  • remove —— 通過元素名稱洗掉
  • clear() —— 清空,留下的是空串列
lst = ["章", "菲", "繡", "花", "魯迅"] 
print(lst)  # ["章", "菲", "繡", "花", "魯迅"] 
lst.clear()
print(lst) # [s]
  • del list —— 通過索引,切片,步長洗掉
lst = ["章", "菲", "繡", "花", "魯迅"]
del lst[3] #  ["章", "菲", "繡", "魯迅"] 
del lst[1:4]# ["章","魯迅"]
del lst[1::2] # ['章', '繡', '魯迅']

串列的改

  • 通過索引修改

    lst = ["章", "菲", "繡", "花", "魯迅"]
    lst[1] = "小野豬"
    print(lst) # ["章", "小野豬", "繡", "花", "魯迅"]
    
  • 通過切片進行修改,默認步長為1,修改的內容必須是可迭代的物件,修改的內容可多可少

    lst = ["章", "菲", "繡", "花", "魯迅"]
    lst[1:3] = "小野豬" # 默認步長為1
    print(lst) # ['章', '小', '野', '豬', '花', '魯迅']
    lst[1:5:2] = "小芳","青青草原" # 步長不為1的時候,必須一一對應
    print(lst) # ['章', '小芳', '繡', '青青草原', '魯迅']
    

串列的查

  • index(“元素”) —— 通過元素查找索引
  • sort() —— 排序,默認是升序
  • sort(reverse=True) —— 降序,將升序反轉
  • reverse() —— 將源資料進行反轉
    lst = [1,23,4,5,7,8,9]
    lst.reverse()
    print(lst)               # 將源資料進行反轉
    
    lst1 = lst[::-1]
    print(lst)
    print(lst1)              # 不修改源資料進行反轉
    
  • for回圈(遍歷查詢)
    lst = ["章", "菲", "繡", "花", "魯迅"]
    for i in lst:
        print(i)
    
    • 索引

串列的嵌套

  • 一層一層的查找,[…]視為一個元素

    lst1 = ["國際章", "阿嬌", ['汪峰', "國際章", "小蘋果", "小姨"],
    ["蔡徐坤", ["籃球", "姚明", "林書豪"], ["唱", "鄧麗君", "蔡國慶", "騰格爾"],
    ["跳", "蔡依林", "羅志祥", "趙四", "社會搖"],
    ["cnb", "alex", "rimo"]]]
    print(lst[-3][-1]) # 騰格爾
    

5,tuple

python資料型別之一,tuple:有序,不可變;只支持查詢,不支持增刪改,
元組中只有一個元素時:(1,)這才是一個完整的元組

(元組就是一個不可變的串列)

  1. 統計 —— count():統計某個元素出現的次數

    tu = (1,2,3,4,5,1,2,1)
    print(tu.count(1)) # 3   統計元素在元組中出現的次數
    
  2. 獲取索引 —— index():通過元素查詢索引

    tu = (1,2,3,4,5,1,2,1)
    print(tu.index(2)) #  1 通過元素查詢索引
    
  3. 用途:就是將一些非常重要的不可讓人改動的資料放在元祖中,只供查看,

  4. 元組的嵌套

    tu = (1,2,3,4,(5,6,7,8,("alex","wusir",[1,23,4])))
    print(tu[4][4][0]) # alex
    

6,dict

  • python的資料結構之一

  • 字典 —— dict

  • 定義:dic = {“鍵”:“值”}

  • **作用:**存盤資料,大量,將資料和資料起到關聯作用

  • 字典是可變的資料型別,無序的

  • 所有的操作都通過鍵

    # 鍵:必須是不可變的資料型別(可哈希),且唯一   不可哈希就是可變資料型別
    # 值:任意
    dic = {"10":"蘋果手機", #   鍵  值  對
           "11":"蘋果手機",
           "15”:"小米手機",
           "15":"華為手機",
           (1,):"oppo手機",
           }
    

字典的增:

  1. 暴力添加,字典名[鍵] = 值,有則改,無則添加

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
    dic["二狗"] = "我的太陽" # 添加的是一個鍵值對
    dic["騰格爾"] = ["來自草原的沙塵暴","音樂界的泥石流"]
    # 新的鍵如果在字典中沒有,那會添加到最后字典的后面;
    # 如果有,那將新值替換舊值
    
  2. 有則不添加,無則添加

    dict.setdefaullt(鍵,值)

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
    dic.setdefault("b",["沿著","江山","起起","伏"]) # 鍵存在,所以不添加
    dic.setdefault("武器",["刀","槍","棍","棒","斧"])# 鍵為新,在最后一個鍵值對后面添加
    # setdefault 添加分為2步:
    # 1,先查看鍵是否在字典
    # 2,不存在的時候進行添加
    

字典的洗掉:

  1. pop(鍵) —— 通過鍵洗掉,具有回傳值

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic.pop("1") # 洗掉了  "1":"上樹"  這個鍵值對
    
  2. clear() —— 清空

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic.clear() # 清空該字典,保留空字典
    
  3. del —— 洗掉

    del dict —— 洗掉的是容器

    del dict[“鍵”] —— 通過鍵洗掉

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    del dic # 洗掉的是整個字典
    del dic["3"] # 只洗掉 "3":"開黑"  這個鍵值對
    
  4. popitem() —— 隨機洗掉,python3.6版洗掉最后一個鍵值對
    popitem回傳的是被洗掉的鍵值對

    dic = {}
    dic.fromkeys("abc",[])
    print(dic)
    # {}
    print(dic.fromkeys("abc",[]))
    # 批量創建鍵值對 {"a":[],"b":[],"c":[]}
    dic = dic.fromkeys("abc",[]) # 給批量這個賦值給dic
    print(dic)
    # {'a': [], 'b': [], 'c': []}
    dic["b"] = 11
    dic["a"].append(10)
    print(dic)
    # {'a': [10], 'b': 11, 'c': [10]}
    

字典的改

  1. 字典名[鍵] = 值

    # 和字典的暴力添加一樣
    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic["2"] = "星宿老仙,法力無邊" # 直接定位鍵,修改值
    
  2. 字典名.update(新字典)——在最后一個鍵值對后面,迭代添加

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic1 = {"天山派":"星宿老仙,法力無邊","少林":"龍抓手"}
    dic.update(dic1)
    print(dic) #{'1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團', '天山派': '星宿老仙,法力無邊', '少林': '龍抓手'}
    dic1.update(dic)
    print(dic1)#{'天山派': '星宿老仙,法力無邊', '少林': '龍抓手', '1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團'}
    

字典的查

  1. 字典名.get(鍵,找不到的換回None)

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    print(dic.get("5")) # 回傳 None
    print(dic.get("5","找不到啊")) # 回傳 找不到啊
    print(dic.get("2")) # 回傳 遛狗
    
  2. 字典名.setdefault(鍵)

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    print(dic.setdefault("3")) # 回傳開黑
    print(dic.setdefault("77")) # 回傳 None
    print(dic["4"]) # 也可直接查找,沒有就是報錯
    
    • 字典名.keys() ——所有的鍵,獲取到的是一個高仿串列

    • 字典名.values() —— 所有的值,獲取到的是一個高仿串列

    • items() —— 鍵值

      • 注意:高仿串列支持迭代,不支持索引
      dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
      print(dic.keys()) # 所有的鍵,獲取到的是一個高仿串列
      print(dic.valuse()) # 所有的值,獲取到的是一個高仿串列
      
  3. for回圈,回傳的是字典的鍵

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    for i in dic:
        print(i) # 回圈出的是字典的鍵
    

字典的嵌套

dic = {11:{1:{"秦":"嬴政","秦二世","李斯","商鞅","章邯","蒙恬"},         
                2:{"漢":"劉邦","韓信","衛青","霍去病"}
                3:{"三國":"魏","蜀","吳"}},    
       22:{1:{"歌唱家":{"煉訓":["我和你","彎彎的月亮"]}},         
            2:{"鄧紫棋":["泡沫","喜歡你","天堂","光年之外"]},
            3:{"騰格爾":["隱形的翅膀","卡路里","日不落"]}},    
       33:{1:{"蔡徐坤":{"唱":["雞你太美"],"跳":["鋼管舞"],"rap":["大碗面"],"籃球":("NBA形象大使")}},  
            2:{"JJ":{"行走的CD":["江南","曹操","背對背擁抱","小酒窩","不潮不花錢"]}},         
            3:{"Jay":{"周董":["徑訓臺","雙節棍","霍元甲"]}}},    
       44:{1:{"韋小寶":{"雙兒":"刺客","建寧":{"公主":{"吳三桂":"熊"}},"龍兒":{"教主老婆":"教主"}}}}
      }
print(dic[201][1]["韋小寶"]["建寧"]["公主"]["吳三桂"])# 熊
print(dic[103][1]["蔡徐坤"]["跳"][0])# 鋼管舞
print(dic[102][2]["鄧紫棋"][1]) # 黑風雷

7,set

  • 集合:set

  • Python 的基礎資料型別之一

  • 定義方式:s = {1,2,3.4,5,6,7,8,9}

  • 空集合:s = set()

  • 天然去重

    • 刪的重復的是后面的,先讀取的不洗掉
    • 元素要求是不可變的并且還是唯一的,我們就利用它是唯一來做去重
    • 會自動排序輸出的集合,從左至右,由小到大
  • 無序,可變的資料型別

  • frozenset來保存資料

    s = frozenset(["趙本六", "劉大腦袋", "謝廣坤", "老四"])
    dic = {s:'123'} # 可以正常使使用了
    print(dic)
    

集合的增

  • 集合名.add(“元素”)

  • 集合名.update(“asdaf”),迭代添加,而且是隨機進添去的

  • print(set(“xuyu”)) ,只能添加到空集合

    s = set()
    s.add("alex") # 直接添加
    print(s) # {'alex'}
    s.update("wusir")  # 迭代添加
    print(s) # {'s', 'r', 'alex', 'i', 'u', 'w'}
    print(set("xuyu")) # {'y', 'u', 'x'}
    

集合的刪

  • 集合名.remove(元素)

    s = {1,2,3,4,5,6,7,8,9,0}
    print(s.remove(3))# 通過元素洗掉
    print(s.clear())# 留下的是空集合
    print(s.pop())#隨機洗掉,默認應該是洗掉所有元素中最小的
    
  • 集合名.clear()

  • 集合名.pop()

集合的改

  • 刪了重新添加

集合的查

  • for回圈

    # set是一個可迭代物件. 所以可以進for回圈
    for el in s:
     print(el)
    
s1 = {"劉能", "趙四", "謝廣坤"}
s2 = {"劉科長", "王大拿", "謝廣坤"}
# 交集
# 兩個集合中的共有元素
print(s1 & s2) # {'謝廣坤'}
print(s1.intersection(s2)) # {'謝廣坤'}
# 并集
print(s1 | s2) # {'劉科長', '劉能', '王大拿', '謝廣坤', '趙四'}
print(s1.union(s2)) # {'劉科長', '劉能', '王大拿', '謝廣坤', '趙四'}
# 差集
print(s1 - s2) # {'劉能', '趙四'} 得到第1個中單獨存在的
print(s1.difference(s2)) # {'劉能', '趙四'}
# 反交集
print(s1 ^ s2) # 兩個集合中單獨存在的資料 {'劉科長', '王大拿', '趙四', '劉能'}
print(s1.symmetric_difference(s2)) # {'劉科長', '王大拿', '趙四', '劉能'}
s1 = {"劉能", "趙四"}
s2 = {"劉能", "趙四", "皮長山"}
# 子集
print(s1 < s2) # set1是set2的子集嗎? True
print(s1.issubset(s2))
# 超集(父集)
print(s1 > s2) # set1是set2的超集嗎? False
print(s1.issuperset(s2))

三,基礎資料型別總結

  • 基礎資料型別總結:可變,不可變,有序,無序

    • 可變:
      • list
      • dict
      • set
    • 不可變:
      • int
      • str
      • tuple
      • bool
    • 有序,可索引:
      • str
      • list
      • tuple
    • 無序,不可索引:
      • set
      • dict
  • 資料型別轉換

    int <——> str

    ? s = str(int),沒有條件

    ? i = int(str),轉換的字串必須是數字

    int <——> bool

    ? 非0就是True,0是False

    ? 轉換數字:F = 0,T = 1

    str <——> bool

    ? Fasle = “” , True = " "

    ? str = “False” ,str = “True”

    list <——> tuble

    ? list = list(tuple)

    ? tuple = tuple(list)

    list <——> set

    ? list = list(set)

    ? set = set(list)

    tuple <——> set

    ? tuple = tuple(set)

    ? set = set(tuple)

    以下非常重要:

    list ——> str

    lst = ["1","2","3"]
    print("".join(lst))
    

    str ——> list

    s = "alex wusir 太白"
    print(s.split())
    

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191481.html

標籤:Python

上一篇:《自拍教程10》一些良好的習慣建議

下一篇:Python3 基本語法 學習筆記

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more