5 python快速上手

news2024/9/20 5:49:24

数据类型(上)

    • 1.整型
      • 1.1 定义
      • 1.2 独有功能
      • 1.3 公共功能
      • 1.4 转换
      • 1.5 其他
        • 1.5.1 长整型
        • 1.5.2 地板除
    • 2. 布尔类型
      • 2.1 定义
      • 2.2 独有功能
      • 2.3 公共功能
      • 2.4 转换
      • 2.5 其他
        • 2.5.1 做条件自动转换
    • 3.字符串类型
      • 3.1 定义
      • 3.2 独有功能(18/48)
        • 练习题
      • 3.3 公共功能
      • 3.4 转换
      • 3.5 其他
        • 3.5.1 字符串不可被修改
    • 总结

常见的数据类型:

  • int,整数类型(整形)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)

每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型。

在这里插入图片描述

每种数据类型的讲解,会按照以下4个维度来进行:

  1. 定义
  2. 独有功能
  3. 公共功能
  4. 类型转换
  5. 其他

今日课程目标:掌握整形、布尔类型、字符串的必备知识。

今日课程概要:

  • 整形
  • 布尔类型
  • 字符串类型

1.整型

整型其实就是十进制整数的统称,比如:1、68、999都属于整型。他一般用于表示 年龄、序号等。

1.1 定义

number = 10
age = 99

1.2 独有功能

v1 = 5
print(bin(v1))  # 0b101
# 调用v1(int)的独有功能,获取v1的二进制有多少个位组成。
result1 = v1.bit_length()
print(result1)  # 3

v2 = 10
print(bin(10))  # 0b1010
# 调用v2(int)的独有功能,获取v2的二进制有多少个位组成。
result2 = v2.bit_length()
print(result2)  # 4

1.3 公共功能

加减乘除

v1 = 4
v2 = 8
v3 = v1 + v2

1.4 转换

在项目开发和面试题中经常会出现一些 “字符串” 和 布尔值 转换为 整型的情况。

# 布尔值转整型
n1 = int(True)  # True转换为整数 1
n2 = int(False) # False转换为整数 0

# 字符串转整型
v1 = int("186",base=10) # 把字符串看成十进制的值,然后再转换为 十进制整数,结果:v1 = 186
v2 = int("0b1001",base=2) # 把字符串看成二进制的值,然后再转换为 十进制整数,结果:v1 = 9 (0b表示二进制)
v3 = int("0o144",base=8)  # 把字符串看成八进制的值,然后转换为 十进制整数,结果:v1 = 100 (0o表示八进制)
v4 = int("0x59",base=16)  # 把字符串看成十六进制的值,然后转换为 十进制整数,结果:v1 = 89 (0x表示十六进制)

# 浮点型(小数)
v1 = int(8.7) # 8

所以,如果以后别人给你一个按 二进制、八进制、十进制、十六进制 规则存储的字符串时,可以轻松的通过int转换为十进制的整数。

1.5 其他

1.5.1 长整型
  • Python3:整型(无限制)
  • Python2:整型、长整形

在python2中跟整数相关的数据类型有两种:int(整型)、long(长整型),他们都是整数只不过能表示的值范围不同。

在这里插入图片描述

  • int,可表示的范围:-9223372036854775808~9223372036854775807
  • long,整数值超出int范围之后自动会转换为long类型(无限制)。

在python3中去除了long只剩下:int(整型),并且 int 长度不在限制。

1.5.2 地板除
  • Py3:

    v1 = 9/2 
    print(v1) # 4.5
    
  • py2:

    v1 = 9/2 
    print(v1) # 4
    
    from __future__ import division 
    
    v1 = 9/2 
    print(v1) # 4.5
    

2. 布尔类型

布尔值,其实就是 “真”、“假” 。

2.1 定义

data = False
alex_is_sb = True

2.2 独有功能

2.3 公共功能

v1 = True + True
print(v1) # 2

2.4 转换

在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可。

整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False
其他均为True
# 练习题:查看一些变量为True还是False
v1 = bool(0)
v2 = bool(-10)
v3 = bool(10)
v4 = bool("武沛齐")
v5 = bool("")
v6 = bool(" ")
v7 = bool([]) # [] 表示空列表
v8 = bool([112233]) # [11,22,33] 表示非空列表
v9 = bool({}) # {} 表示空字典
v10 = bool({"name":"武沛齐","age":18}) # {"name":"武沛齐","age":18} 表示非空字典

2.5 其他

2.5.1 做条件自动转换

如果在 ifwhile 条件后面写一个值当做条件时,他会默认转换为布尔类型,然后再做条件判断。

if 0:
	print("太六了")
else:
  print(999)

if "武沛齐":
	print("你好")

if "alex":
	print("你是傻逼?")
else:
	print("你是逗比?")
while 1>9:
  pass
if:
  pass

while:
  pass

3.字符串类型

字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。

3.1 定义

v1 = "包治百病"
v2 = '包治百病'
v3 = "包'治百病"
v4 = '包"治百病'
v5 = """
吵架都是我的错,
因为大家打不过。
"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。

3.2 独有功能(18/48)

"xxxxx".功能(...)

v1 = "xxxxx"
v1.功能(...)
  1. 判断字符串是否以 XX 开头?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了"
    
    # True
    result = v1.startswith("叨逼叨的一天")
    
    print(result) # 值为True
    
    # 案例
    v1 = input("请输入住址:")
    
    if v1.startswith("北京市"):
    	print("北京人口")
    else:
    	print("非北京人口")
    
  2. 判断字符串是否以 XX 结尾?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了"
    
    result = v1.endswith("烦死了")
    
    print(result) # 值为True
    
    # 案例
    address = input("请输入地址:")
    
    if address.endswith('村'):
    	print("农业户口")
    else:
    	print("非农户口")
    
  3. 判断字符串是否为十进制数?得到一个布尔值

    v1 = "1238871"
    result = v1.isdecimal()
    print(result) # True
    
    # 案例,两个数相加。
    
    v1 = input("请输入值:") # ”666“
    v2 = input("请输入值:") # ”999“
    if v1.isdecimal() and v2.isdecimal():
    	data = int(v1) + int(v2)
    	print(data)
    else:
    	print("请正确输入数字")
    
    v1 = "123"
    print(v1.isdecimal()) # True
    
    v2 = "①"
    print(v2.isdecimal()) # False
    
    v3 = "123"
    print(v3.isdigit()) # True
    
    v4 = "①"
    print(v4.isdigit()) # True
    
  4. 去除字符串两边的 空格、换行符、制表符,得到一个新字符串

    data = input("请输入内容:") #武沛齐,武沛齐   
    print(data)
    
    msg = " H e ll o啊,树哥 "
    data = msg.strip()
    print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
    
    msg = " H e ll o啊,树哥 "
    data = msg.lstrip()
    print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥 "
    
    msg = " H e ll o啊,树哥 "
    data = msg.rstrip()
    print(data) # 将msg两边的空白去掉,得到" H e ll o啊,树哥"
    

    补充:去除 空格、换行符、制表符。

    # 案例
    code = input("请输入4位验证码:") #  FB87 
    data = code.strip()
    if data == "FB87":
    	print('验证码正确')
    else:
    	print("验证码错误")
    

    再补充:去除字符串两边指定的内容

    msg = "哥H e ll o啊,树哥"
    data = msg.strip("哥")
    print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树"
    
    msg = "哥H e ll o啊,树哥"
    data = msg.lstrip("哥")
    print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
    
    msg = "哥H e ll o啊,树哥"
    data = msg.rstrip("哥")
    print(data) # 将msg两边的空白去掉,得到"哥H e ll o啊,树"
    
  5. 字符串变大写,得到一个新字符串

    msg = "my name is oliver queen"
    data = msg.upper()
    
    print(msg) # my name is oliver queen
    print(data) # 输出为:MY NAME IS OLIVER QUEEN
    
    # 案例
    code = input("请输入4位验证码:") #  FB88   fb88 
    value = code.upper() #  FB88  
    data = value.strip() # FB88
    
    if data == "FB87":
    	print('验证码正确')
    else:
    	print("验证码错误")
      
    # 注意事项
    """
    code的值"fb88 "
    value的值"FB88 "
    data的值"FB88"
    """
    
  6. 字符串变小写,得到一个新字符串

    msg = "My Name Is Oliver Queen"
    data = msg.lower()
    
    print(data) # 输出为:my name is oliver queen
    
    # 案例
    code = input("请输入4位验证码:")
    value = code.strip().lower()
    if value == "fb87":
    	print('验证码正确')
    else:
    	print("验证码错误")
    
  7. 字符串内容替换,得到一个新的字符串

    data = "你是个好人,但是好人不合适我"
    value = data.replace("好人","贱人")
    print(data)  # "你是个好人,但是好人不合适我"
    print(value) # "你是个贱人,但是贱人不合适我"
    
    # 案例
    video_file_name = "高清无码爱情动作片.mp4"
    
    new_file_name = video_file_name.replace("mp4","avi") # "高清无码爱情动作片.avi"
    
    final_file_name = new_file_name.replace("无码","步兵") # "高清步兵爱情动作片.avi"
    
    print(final_file_name)
    
    # 案例
    video_file_name = "高清无码爱情动作片.mp4"
    
    new_file_name = video_file_name.replace("mp4","avi") # "高清无码爱情动作片.avi"
    
    final_file_name = video_file_name.replace("无码","步兵") # "高清步兵爱情动作片.mp4"
    
    print(final_file_name)
    
    # 案例
    content = input("请输入评论信息") # alex是一个草包
    content = content.replace("草","**") # alex是一个**包
    content = content.replace("泥马","***") # alex是一个**包
    print(content) # alex是一个**包
    
    char_list = ["草拟吗","逗比","二蛋","钢球"]
    
    content = input("请输入评论信息")
    for item in char_list:
      content = content.repalce(item,"**")
    
    print(content)
    
  8. 字符串切割,得到一个列表

    data = "武沛齐|root|wupeiqi@qq.com"
    result = data.split('|') # ["武沛齐","root","wupeiqi@qq.com"]
    print(data) # "武沛齐|root|wupeiqi@qq.com"
    print(result) # 输出 ["武沛齐","root","wupeiqi@qq.com"] 根据特定字符切开之后保存在列表中,方便以后的操作
    
    # 案例:判断用户名密码是否正确
    info = "武沛齐,root"   # 备注:字符串中存储了用户名和密码
    user_list = info.split(',')    # 得到一个包含了2个元素的列表 [ "武沛齐" , "root" ]
    
    # user_list[0]
    # user_list[1]
    
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    
    if user == user_list[0] and pwd == user_list[1]:
    	print("登录成功")
    else:
    	print("用户名或密码错误")
    

    扩展

    data = "武沛齐|root|wupeiqi@qq.com"
    v1 = data.split("|")   # ['武沛齐', 'root', 'wupeiqi@qq.com']
    print(v1)
    
    v2 = data.split("|", 2) # ['武沛齐', 'root|wupeiqi@qq.com']
    print(v2)
    

    再扩展

    data = "武沛齐,root,wupeiqi@qq.com"
    
    v1 = data.rsplit(',')
    print(v1) # ['武沛齐', 'root', 'wupeiqi@qq.com']
    
    v2 = data.rsplit(',',1)
    print(v2) # ['武沛齐,root', 'wupeiqi@qq.com']
    

    应用场景:

    file_path = "xxx/xxxx/xx.xx/xxx.mp4"
    
    data_list = file_path.rsplit(".",1) # ["xxx/xxxx/xx.xx/xxx","mp4"]
    data_list[0]
    data_list[1]
    
  9. 字符串拼接,得到一个新的字符串

    data_list = ["alex","是","大烧饼"]
    v1 = "_".join(data_list) # alex_是_大烧饼
    print(v1)
    
  10. 格式化字符串,得到新的字符串

    name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
    data = name.format("老王","护士","嫩模")
    print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
    print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
    
    name = "{}的喜欢干很多行业,例如有:{}、{} 等"
    data = name.format("老王","护士","嫩模")
    print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
    
    name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
    data = name.format(name="老王",h1="护士",h2="嫩模")
    print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
    
  11. 字符串转换为字节类型

    data = "嫂子"  # unicode,字符串类型
    
    v1 = data.encode("utf-8")  # utf-8,字节类型
    v2 = data.encode("gbk")  # gbk,字节类型
    
    print(v1)  # b'\xe5\xab\x82 \xe5\xad\x90'
    print(v2)  # b'\xc9\xa9 \xd7\xd3'
    
    s1 = v1.decode("utf-8") # 嫂子
    s2 = v2.decode("gbk") # 嫂子
    print(s1)
    print(s2)
    
  12. 将字符串内容居中、居左、居右展示

    v1 = "王老汉"
    # data = v1.center(21, "-")
    # print(data) #---------王老汉---------
    
    # data = v1.ljust(21, "-")
    # print(data) # 王老汉------------------
    
    # data = v1.rjust(21, "-")
    # print(data) # ------------------王老汉
    
  13. 帮助你填充0

    data = "alex"
    v1 = data.zfill(10)
    print(v1) # 000000alex
    
    # 应用场景:处理二进制数据
    data = "101" # "00000101"
    v1 = data.zfill(8)
    print(v1) # "00000101"
    
练习题
  1. 写代码实现判断用户输入的值否以 "al"开头,如果是则输出 “是的” 否则 输出 “不是的”

  2. 写代码实现判断用户输入的值否以"Nb"结尾,如果是则输出 “是的” 否则 输出 “不是的”

  3. 将 name 变量对应的值中的 所有的"l"替换为 “p”,并输出结果

  4. 写代码实现对用户输入的值判断,是否为整数,如果是则转换为整型并输出,否则直接输出"请输入数字"

  5. 对用户输入的数据使用"+"切割,判断输入的值是否都是数字?
    提示:用户输入的格式必须是以下+连接的格式,如 5+9 、alex+999

  6. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5+9或5+9或5+9,计算出两个值的和(提示:先分割再转换为整型,再相加)

  7. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5 +9或5+ 9或5 + 9,计算出两个值的和(提示:先分割再去除空白、再转换为整型,再相加)

  8. 补充代码实现用户认证。
    需求:提示用户输入手机号、验证码,全都验证通过之后才算登录成功(验证码大小写不敏感)

    import random
    code = random.randrange(1000,9999) # 生成动态验证码
    msg = "欢迎登录PythonAV系统,您的验证码为:{},手机号为:{}".format(code,"15131266666")
    print(msg)
    # 请补充代码
    
  9. 补充代码实现数据拼接

    data_list = []
    while True:
        hobby = input("请输入你的爱好(Q/q退出):")
        if hobby.upper() == 'Q':
            break
        # 把输入的值添加到 data_list 中,如:data_list = ["小姨子","哥们的女朋友"]
        data_list.append(hobby) 
        # 将所有的爱好通过符号 "、"拼接起来并输出
    

3.3 公共功能

  1. 相加:字符串 + 字符串

    v1 = "alex" + "大sb"
    print(v1)
    
  2. 相乘:字符串 * 整数

    data = "嫂子" * 3
    print(data) # 嫂子嫂子嫂子
    
  3. 长度

    data = "嫂子满身大汉"
    value = len(data) 
    print(value) # 6
    
  4. 获取字符串中的字符,索引

    message = "来做点py交易呀"
    #          0 1 2345 6 7
    #           ... -3 -2 -1
    print(message[0]) # "来"
    print(message[1]) # "做"
    print(message[2]) # "点"
    
    print(message[-1]) # 呀
    print(message[-2]) # 呀
    print(message[-3]) # 呀
    

    注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建。】

    message = "来做点py交易呀"
    index = 0
    while index < len(message):
    	value = message[index]
        print(value)
        index += 1
    
    message = "来做点py交易呀"
    index = len(message) - 1
    while index >=0:
        value = message[index]
        print(value)
        index -= 1
    
  5. 获取字符串中的子序列,切片

    message = "来做点py交易呀"
    
    print(message[0:2]) # "来做"
    print(message[3:7]) # "py交易"
    print( message[3:] ) # "py交易呀"
    print( message[:5] ) # "来做点py"
    
    print(message[4:-1]) # "y交易"
    print(message[4:-2]) # "y交"
    
    print( message[4:len(message)] ) # "y交易呀"
    

    注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想要修改只能重新创建】

    message = "来做点py交易呀"
    
    value = message[:3] + "Python" + message[5:]
    print(value)
    
  6. 步长,跳着去字符串的内容

    name = "生活不是电影,生活比电影苦"
    
    print( name[ 0:5:2 ] )   # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
    print( name[ :8:2 ] )    # 输出:生不电,  【区间范围的前面不写则表示起始范围为0开始】、
    # 此处老师讲解时,错把 name[ 2::3 ]看成了name[ 2::2 ],更正下。(感谢 B站 放酱啊噗啊噗 同学的反馈)
    # print( name[ 2::2 ] )    # 输出:不电,活电苦
    # print( name[ 2::3 ] )    # 输出:不影活影
    
    print( name[ 2::3 ] )    # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】
    print( name[ ::2 ] )     # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
    print( name[ 8:1:-1 ] )  # 输出:活生,影电是不 【倒序】
    
    name = "生活不是电影,生活比电影苦"
    
    print(name[8:1:-1])  # 输出:活生,影电是不 【倒序】
    print(name[-1:1:-1])  # 输出:苦影电比活生,影电是不 【倒序】
    
    # 面试题:给你一个字符串,请将这个字符串翻转。
    value = name[-1::-1]
    print(value)  # 苦影电比活生,影电是不活生
    
  7. 循环

    • while循环

      message = "来做点py交易呀"
      index = 0
      while index < len(message):
      	value = message[index]
          print(value)
          index += 1
      
    • for循环

      message = "来做点py交易呀"
      for char in message:
          print(char)
      
    • range,帮助我们创建一系列的数字

      range(10) # [0,1,2,3,4,5,6,7,8,9]
      range(1,10) # [1,2,3,4,5,6,7,8,9]
      range(1,10,2) # [1,3,5,7,9]
      range(10,1,-1) # [10,9,8,7,6,5,4,3,2]
      
    • For + range

      for i in range(10):
          print(i)
      
      message = "来做点py交易呀"
      
      for i in range(5): # [0,1,2,3,4]
          print(message[i])
      
      message = "来做点py交易呀"
      for i in range( len(message) ): # [0,1,2,3,4,5,6,7]
          print(message[i])
      

    一般应用场景:

    • while,一般在做无限制(未知)循环此处时使用。

      while True:
          ...
      
      # 用户输入一个值,如果不是整数则一直输入,直到是整数了才结束。
      num = 0
      while True:
          data = input("请输入内容:")
          if data.isdecimal():
              num = int(data)
              break
      	else:
              print("输入错误,请重新输入!")
      
    • for循环,一般应用在已知的循环数量的场景。

      message = "来做点py交易呀"
      for char in message:
          print(char)
      
      for i in range(30):
          print(message[i])
      
    • break和continue关键字

      message = "来做点py交易呀"
      for char in message:
          if char == "p":
              continue
          print(char)
      
      # 输出:
      来
      做
      点
      y
      交
      易
      呀
      
      message = "来做点py交易呀"
      for char in message:
          if char == "p":
              break
          print(char)
      
      # 输出:
      来
      做
      点
      
      for i in range(5):
          print(i)# 0 1 2 3 4
          for j in range(3):
              break
              print(j) # 0 1 2  # 0 1 2  # 0 1 2  # 0 1 2  # 0 1 2  
      

3.4 转换

num = 999
data = str(num)
print(data) # "999"
data_list = ["alex","eric",999]
data = str(data_list)
print(data) # '["alex","eric",999]'

一般情况下,只有整型转字符串才有意义。

3.5 其他

3.5.1 字符串不可被修改
name = "武沛齐"

name[1]
name[1:2]
num_list = [11,22,33]

num_list[0]
num_list[0] = 666

总结

  1. 整型在Python2和Python3中的区别?

  2. 进制之间的转换。

  3. 其他类型转换为布尔类型时,空和0为False,其他均为True。

  4. 条件语句中可自动化转换布尔类型来做判断。

    if "武沛齐":
        print(666)
    else:
        print(999)
    
  5. 字符串中常见的独有功能。

  6. 字符串中常见的公共功能。

  7. 字符串创建之后是不可以被修改的。

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

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

相关文章

SpringBoot教程(十五) | SpringBoot集成RabbitMq

SpringBoot教程(十五) | SpringBoot集成RabbitMq RabbitMq是我们在开发过程中经常会使用的一种消息队列。今天我们来研究研究rabbitMq的使用。 rabbitMq的官网&#xff1a; rabbitmq.com/ rabbitMq的安装这里先略过&#xff0c;因为我尝试了几次都失败了&#xff0c;后面等我…

【数据结构】详谈队列的顺序存储及C语言实现

循环队列及其基本操作的C语言实现 前言一、队列的顺序存储1.1 队尾指针与队头指针1.2 基本操作实现的底层逻辑1.2.1 队列的创建与销毁1.2.2 队列的增加与删除1.2.3 队列的判空与判满1.2.4 逻辑的局限性 二、循环队列2.1 循环队列的实现逻辑一2.2 循环队列的实现逻辑二2.3 循环队…

西瓜书读书笔记整理(十二) —— 第十二章 计算学习理论

第十二章 计算学习理论&#xff08;上&#xff09; 12.1 基础知识12.1.1 什么是计算学习理论&#xff08;computational learning theory&#xff09;12.1.2 什么是独立同分布&#xff08;independent and identically distributed, 简称 i . i . d . i.i.d. i.i.d.&#xff0…

USRP相关报错解决办法

文章目录 前言一、本地环境二、相关报错信息二、解决办法1、更换电脑操作系统2、升级最新版固件 前言 在进行 USRP 开发时遇到了一些报错&#xff0c;这里做个记录解决问题的方法。 一、本地环境 电脑操作系统&#xff1a;Windows11MATLAB 版本&#xff1a;MATLAB 2021aUSRP …

JVM:Java类加载机制

Java类加载机制的全过程&#xff1a; 加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的&#xff0c;类型的加载过程必须按照这种顺序按部就班地开始&#xff0c;而解析阶段则不一定&#xff1a;它在某些情况下可以在初始化阶段之后再开始&#xff0c; 这是为了支持Java…

竞赛保研 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#x…

CSS明显比XPATH更性感!CSS再学一点儿

在selenium应用&#xff0c;CSS比XPATH更性感 To style an element, Front end developers need to locate the element first and then apply styling rules. It looks like this: #logo{ color: white; background: black; }That CSS snippet says, apply color and backgro…

深入探索 Android 中的 Runtime

深入探索 Android 中的 Runtime 一、什么是 Runtime二、Android 中的 Runtime 类型2.1. Dalvik Runtime2.2. ART&#xff08;Android Runtime&#xff09; 三、Runtime 的作用和特点3.1. 应用程序执行环境3.2. 跨平台支持3.3. 性能优化3.4. 应用程序优化 四、与应用开发相关的重…

Unity3D学习之Unity基础——3D数学

文章目录 1. 前言2 Mathf和Math基础2.1 一般用于只计算一次的函数2.1.1 PI Π PI2.1.2 取绝对值 Abs2.1.3 向上取整 CeilToInt2.1.4 向下取整 FloorToInt2.1.5 钳制函数 Clamp2.1.6 获取最大值 Max2.1.7 获取最小值 Min2.1.8 一个数的n次幂 Pow2.1.9 四舍五入 RoundToInt2.1.10…

MySQL主从复制原理与实践:从配置到故障监控

文章目录 前言主从复制原理复制源主节点的工作从节点的工作复制流程的设计 主从复制环境搭建一、主从节点配置二、从节点开启复制步骤1、备份主节点的数据2、将数据同步到从节点3、从节点复制参数配置 三、验证复制环境 主从复制故障监控监控主从复制状态监控主从复制延迟 总结…

Rancher部署k8s集群测试安装nginx(节点重新初始化方法,亲测)

目录 一、安装前准备工作计算机升级linux内核时间同步Hostname设置hosts设置关闭防火墙&#xff0c;selinux关闭swap安装docker 二、安装rancher部署rancher 三、安装k8s安装k8s集群易错点&#xff0c;重新初始化 四、安装kutectl五、测试安装nginx工作负载 一、安装前准备工作…

Python中二维数据(数组、列表)索引和切片的Bug

Python中有关数据结构索引和切片引起的Bug 一维数据索引和切片一维数组一维列表 二维数据的索引和切片二维数组二维(错误)列表 一维数据索引和切片 一维数组 对于一维数据进行索引和切片操作&#xff0c;大家都比较熟悉通过下面代码进行实现 import numpy as np data np.ra…

实验七 RMAN恢复管理器

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

Linux的权限(3)

目录 文件类型 ​d目录文件 -普通文件 l链接文件 b块设备文件 p管道文件 c字符设备文件 文件权限 目录权限 umask 粘滞位 Q1umask权限默认值664/775 Q2"可执行性"权限 Q3"删除"权限 Q4怎么共享一批文件 【1】粘滞位 【2】添加交互人员到所…

SpringBoot跨域问题解决

前端访问后台接口时&#xff0c;浏览器报错&#xff0c;跨域无法访问。 报错信息如下&#xff1a; Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. 经过一番百度之后&#…

(2024,VMamba,交叉扫描,线性复杂度,全局感受野,动态权重)视觉状态空间模型

VMamba: Visual State Space Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方法 3.1 基础概念 3.2 2D 选择性扫描 3.3 VMamba 模型 3.3.1 整体架构 3.3.2 VSS…

如何用H5+CSS+JS写一个简单的招聘网站

大家好&#xff0c;我是猿码叔叔&#xff0c;一个 Java 语言开发者。应网友要求&#xff0c;写一个简单的招聘页面。由于技术原因&#xff0c;页面相对简单&#xff0c;朋友们可以选择性的阅读&#xff0c;如果对您有帮助&#xff0c;也可直接拿去使用&#xff0c;因为接下来除…

Linux ---- 小玩具

目录 一、安装&#xff1a; 1、佛祖保佑&#xff0c;永不宕机&#xff0c;永无bug 2、小火车 3、艺术字和其它 天气预报 艺术字 4、会说话的小牦牛 5、其他趣味图片 我爱你 腻害 英雄联盟 帅 忍 龙 你是猪 福 好运连连 欢迎 加油 想你 忘不了你 我错了 你…

介绍几个免费的国内chatgpt网站

概述&#xff1a;水点文章。 第一&#xff1a;chataa网站 chataa (chat778.com) 进去之后注册一下&#xff0c;即可免费使用。 第二&#xff1a;AlchatOS网站 AIchatOS 第三&#xff1a;ChatGPT在线聊天 ChatGPT在线聊天 (zxf7460.cn) 第四&#xff1a;说我真帅&#xff0…

重构改善既有代码的设计-学习(一):封装

1、封装记录&#xff08;Encapsulate Record&#xff09; 一些记录性结构&#xff08;例如hash、map、hashmap、dictionary等&#xff09;&#xff0c;一条记录上持有什么字段往往不够直观。如果其使用范围比较宽&#xff0c;这个问题往往会造成许多困扰。所以&#xff0c;记录…