一,首先介绍一下变量

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())

Python_基础数据类型的更多相关文章

  1. [.net 面向对象编程基础] (3) 基础中的基础——数据类型

    [.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...

  2. TypeScript学习指南第一章--基础数据类型(Basic Types)

    基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...

  3. 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张

    自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var  定义变量,let定义常量. 比如 ...

  4. 二、Windows基础数据类型

    六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...

  5. java基础数据类型包装类

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)

    java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...

  7. Python基础数据类型之列表和元组

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

  8. Python基础数据类型之字典

      基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...

  9. Python基础数据类型之集合以及其他和深浅copy

    一.基础数据类型汇总补充 list  在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...

随机推荐

  1. 上周 GitHub 热点速览 vol.07:GitHub 官方 CLI beta 版已发布

    摘要:GitHub Trending 上周看点,GitHub 官宣 CLI 已发布 beta 版,前端新晋高性能打包神器 esbuild 宣战 Webpack&Parcel,微软.Facebo ...

  2. 一次修改数据库物理文件造成Mysql宕机的恢复记录

    事件起始 某夜,我正在床上冥想准备入睡,忽然同事向我求救:消息内容如下: Oh My Gold 改了些配置,啥都没了!都没了!没了!了! 我仔细询问,原来是她因为某些原因将某库的物理文件夹改名后,发现 ...

  3. Nginx总结(八)Nginx服务器的日志管理及配置

    前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...

  4. javascript 原生js对html元素的 增删改查 操作

    'use strict'; class View{ constructor(){ } //创建html元素 addEl(fel, elemName, id, cls){ //创建一个元素 let el ...

  5. 准备 Python3 和 Python 虚拟环境

    1.安装依赖包 yum -y install wget gcc epel-release git 2.安装 Python3.6 yum -y install python36 python36-dev ...

  6. Cacti被监控机器 配置 snmp协议

    SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理.         snmpd.conf的 ...

  7. centos7基础配置及基础优化

    1    centos7安装及优化 1.1  通过U盘安装物理服务器注意事项(Dell R710) 使用U盘安装centos7,选择UEFI方式安装(最好修改BIOS为传统方式启动),在安装选择选项的 ...

  8. [Linux]命令返回值以及错误对照表

    Linux执行完命令之后默认会有一个返回值 # ls app backupconfig.json Doc manage.py __pycache__ settings.py # echo $? 0 错 ...

  9. 手把手带你阅读Mybatis源码(三)缓存篇

    前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读Mybatis源码(一)构造篇 和 手把手带你阅读Mybatis源码(二)执行篇,主要说明了MyBatis是如何 ...

  10. JavaScript节流与防抖函数封装

    js节流与防抖函数封装 常见应用场景: window的 resize 和 scroll 事件: 文字输入时的 keyup 事件: 元素拖拽.移动时的 mousemove 事件: 防抖 定义:多次触发事 ...