7天速成Python——第三天

news2024/11/26 13:25:52

[7天速成Python——第三天]

3 数据类型

布尔值(bool):True  False

整型(int)	  :1 19 22 300

字符串(str) :"中国联通" 
	upper/lower/isdecimal/strip/lstrip/rstrip/replace/
	join/split/center/ljust/rjust/zfill
	len/索引/切片/for循环

列表(list)  :[11,22,33]   ["李冉","谢鹏","陈青",11, 22 ,True]
	append/insert/remove/pop/clear/sort
	len/索引/切片/for循环

元组(tuple) :(11,22,33)   ("李冉","谢鹏","陈青",11, 22 ,True)

字典(dict)  :{ "k1":123 , "k2":456 }  {"n1":1,"N2":True}
n1 = "root"
res = n1.upper()    # res = "ROOT"

n2 = "admin"
value = n2.upper()  # value = "ADMIN"
data_list1 = [11,22,33,44]
data_list1.append(55)  # 列表的功能,在列表的尾部追加某个值 [11,22,33,44,55]

data_list2 = [1,2,3]
data_list2.append(55)  # 列表的功能,在列表的尾部追加某个值 [1,2,3,55]

今日概要:

  • 字符串类型
  • 列表类型
  • 元组类型

1.字符串(str)

1.1 定义

v = "xxxx"

1.2 独有功能

  1. 大写a.upper()

  2. 小写a.lower()

  3. 是否是数字a.isdecimal

  4. 替换a.replace(“1”,“2”)

  5. 去除空白/左边/右边a.stript().lstript().rstript()

  6. 切割

    file_name = "day01 python基础编程入门.mp4"
    
    # 切割字符串后得到的是一个列表
    #                       0                   1  
    # data_list = [ "day01 python基础编程入门" , "mp4"  ]
    data_list = file_name.split(".")//flie.split(".")
    
    data_list[0]    # "day01 python基础编程入门"
    data_list[1]    # "mp4"
    
    text = "武沛齐,root,wupeiqi@live.com,19"
    
    #    0       1           2            3
    # ["武沛齐","root","wupeiqi@live.com","19"]
    
    data_list = text.split(",")
    data_list[0]
    data_list[1]
    data_list[2]
    data_list[3]
    
  7. 拼接

    # 1.字符串相加
    v1 = "鲁番吐"
    v2 = "大神"
    
    text = v1 + "是" + v2
    
    # 2.字符串格式化
    v1 = "鲁番吐"
    v2 = "大神"
    text = "{}是{}".format(v1,v2)
    
    # 3.列表,里面有很多字符串,你想要让他们按照某个连接符拼接起来。注意事项:想要通过join去拼接,列表中必须都是字符串。
    
    data_list = ["一","二","三","四"]
    
    res = "_".join(data_list)
    print(res) # "一_二_三_四"
    a = "_".join(list)
    
    data_list = ["一","二","三","四"]
    
    res = ",".join(data_list)
    print(res) #  "一,二,三,四"
    
    data_list = ["一","二","三","四"]
    
    res = "".join(data_list)
    print(res) # "一二三四"
    

    注意事项:想要通过join去拼接,列表中必须都是字符串。

  8. 字符串转换成字节类型

    字符串		 unicode
    字节		 utf-8/gbk(文件存储、网络传输)
    
    data = "中国联通"
    v1 = data.encode("utf-8")//"中国联通"压缩的值
    print(v1) 
    # b'  \xe4       \xb8      \xad \xe5\x9b\xbd \xe8\x81\x94 \xe9\x80\x9a'
    #   01110010   10111000
    
    text = v1.decode("utf-8")//"中国联通"解压的值
    print(text) # "中国联通"
    
  9. 长度的补足

    name = "宁摆场"
    
    text = name.center(13,"*")//居中,总长度为13
    print(text) # "*****宁摆场*****"
    
    name = "宁摆场"
    
    text = name.ljust(13,"#")//原值放左边
    print(text) # "宁摆场##########"
    
    name = "宁摆场"
    
    text = name.rjust(13,"#")//原值放右边
    print(text) # "##########宁摆场"
    
  10. 长度的补足,只能在左边补0(二进制字符串前面补0)

    name = "吐鲁番"
    
    v1 = name.zfill(10)//补足,总长度为10,,,,zfill
    print(v1) # "0000000卢红萍"
    
    data = "10101"
    
    res = data.zfill(8)
    print(res) # "00010101"
    

练习题

  1. 写代码实现,提示用户输入文本,你来判断文本是否是以 ”中国“开头,输入:中国人、否则外国人。

    text = input(">>>")
    if text.startswith("中国")://a.startswith("中国')
        print("中国人")
    else:
        print("外国人")
    
  2. 写代码实现,提示用户输入文本,将文本中的 上 替换成 下。

    text = input(">>>")
    res = text.replace("上","下")//替换a.replace("上","下")
    print(res)
    
  3. 提示用户输入两个数字相加,例如:5+2、6+9 格式(不用考虑 yy+77 )。

    #            0  1
    data_list = [11, 9]
    data_list[0]
    data_list[1]
    
    text = input(">>>")   # "5+9"//5+9
    data_list = text.split("+")  # ["5","9"]//data = a.split("+")
    
    res = int(data_list[0]) + int(data_list[1])//int(data[0]) + int(data[1])
    print(res)
    
  4. 提示用户输入两个数字相加,例如:5+2、6+9 、你好+9,判断如果都是数字,数字相加,只要有任意一个不是数字,则提示输入错误。

    text = input(">>>")   # "5+9"
    data_list = text.split("+")  # ["5","9"]
    
    if data_list[0].isdecimal() and data_list[1].isdecimal()://isdecimal()
        res = int(data_list[0]) + int(data_list[1])
        print(res)
    else:
        print("输入错误")
    
  5. 排队买票

    # ["罗小春","谢鹏",龚星云]
    name_list = []
    name_list.append("罗小春")  
    name_list.append("谢鹏")  
    name_list.append("龚星云")  
    
    # name_list = ["罗小春","谢鹏",龚星云]
    
    # 1.循环让用户输入姓名(q/Q终止),每输入一个姓名都追加到列表中。
    
    # 2.输入q退出之后,将所有的人员姓名通过逗号连接成字符串并输出。
    
    user_list = []
    while True://while True:a = input()
        name = input("请输入姓名:")//if a.upper() == "Q"
        if name.upper() == "Q":
            break
        user_list.append(name)
        
    res = ",".join(user_list)//b = ",".join(user_list)
    print(res)
    

1.3 公共功能

  1. 长度a = len(“str”)

    name = "欧阳娜娜"
    
    res = len(name)
    print(res) # 4
    
    v1 = len("陆梅yy8899")
    print(v2) # 8
    
  2. 索引

    #       0  1 2  3 4  5 6 7 8 9 10 11
    text = "我 要 学 习 P y t h o n 编 程"
    
    text[0] # "我"
    text[8] # "o"
    text[10] # "编"
    
    v1 = 3
    text[v1] # "习"
    
    text[100] # 报错,不能超出范围取值
    
    v2 = len(text) - 1 # 12
    text[v2]  # "程"
    
    text = "我要学习python编程"
    index = 0
    while index < len(text):
        print(text[index])
        index += 1
    
    #       0  1 2  3 4  5 6 7 8 9 10 11
    #                           -3 -2 -1
    text = "我 要 学 习 P y t h o n 编 程"
    
    text[-1]  # "程"
    
  3. 切片//前取后不取,字符串无法改变,切片是原来字符串切出来拷贝一份

    #       0  1  2  3 4  5 6 7 8 9 10 11
    #                           -3 -2 -1
    text = "我 要 学 习 P y t h o n 编 程"
    
    text[0:2]  # "我要"
    text[2:8]  # "学习Pytho"
    text[2:-1]  # "学习Python编"
    text[2:]  # "学习Python编程"//从2开始到最后
    text[:-1]  # "我要学习Python编"//从开始到编
    text[:]  # "我要学习Python编程"//全部
    
    # 注意:1.前取后不取;   2.索引位置是从0开始。
    
    num = 189
    
    # 1.转换成二进制的字符串
    bin_string = bin(num)   # '0b10111101'
    
    # 2.不要0b, data="10111101"
    data = bin_string[2:]
    
    # 3.将二进制字符串补足16位,在他的前面补0
    result = data.zfill(16)
    print(result) # "0000000010111101"
    
  4. 循环

    给你一个字符串 data = "我要学习Python编程" ,让你循环字符串中的每个元素。
    - while循环+索引
    - for循环
    
    • while循环

      data = "我要学习Python编程"
      
      index = 0
      while index < len(data):
          char = data[index]
          print(char)
          index += 1
      
    • for循环,直接获取。

      data = "我要学习Python编程"//字符串
      
      for item in data://for i in data:  print(i)
          print(item)
      
      data = [11,22,33,44,55,66]//列表
      
      for item in data:
          print(item)
          ..
          ..
          ...
      
      # range函数作用,帮助你生成一个数字列表。从0开始,前取后不取
      v1 = range(5)        # [0,1,2,3,4]//0-4
      v2 = range(5,10)     # [5,6,7,8,9]//5-9
      v3 = range(5,10,2)   # [5,7,9]//5,7,9
      v5 = range(10,0,-1)  # [10,9,8,7,6,5,4,3,2,1]//10-1
      
      for item in range(5): # [0,1,2,3,4]
          print(item)
          
      for item in range(5,10): # [5,6,7,8,9]
          print(item)
          
      for item in range(10,0,-1): # [10,9,8,7,6,5,4,3,2,1]
          print(item) 
      
      # 请实现获取字符串中的每个元素并输出。
      data = "我要学习Python编程"
      
      # 方式1
      index = 0
      while index < len(data):
          char = data[index]
          print(char)
          index += 1
          
      # 方式2
      for item in data:
          print(item)
          
      # 方式3
      for idx in range(len(data)): # [0,1,2,3,4,5,6,7,8,9,10,11]
      	char = data[idx]
          print(char)
      

练习题

  1. for循环输出 message = "伤情最是晚凉天,憔悴厮人不堪言"的每一个字符。

    message = "伤情最是晚凉天,憔悴厮人不堪言"
    for item in message:
        print(item)
    
  2. for循环+range实现倒序输出 message = "伤情最是晚凉天,憔悴厮人不堪言" 中的每一个字符。

    message = "伤情最是晚凉天,憔悴厮人不堪言"
    
    for i in range(len(message)-1, -1, -1):
        print(message[i])
    
  3. 让用户输入输入一段文本,计算输出的文本中 “浪” 出现的次数。

    text = input(">>>")
    count = 0
    for item in text:
        if item == "浪":
            count += 1
            
    data = "浪出现的次数:{}次".format(count)
    print(data)
    
  4. 写代码实现:

    • 提示用户输入内容,内容包含:as8dfa9784adfasdf沙发垫
    • 将用户输入的内容中的数字提取出来:89784
    • 将提取出来的数字转换为整形,再将整型转换为二进制字符串。
    • 将二进制的字符串前面的 0b 去除。
    • 输出去除0b之后的二进制字符串。
    text = input(">>>") # abc11uu98f3
    
    char_list = [] # ["1","1","9","8","3"]
    for item in text:
        if item.isdecimal():
            char_list.append(item)
            
    num_string = "".join(char_list) # "11983"
    num_int = int(num_string) # 11983
    bin_string = bin(num_int) # 0b110101010010101
    res = bin_string[2:]
    print(res)
    
    text = input(">>>") # abc11uu98f3
    
    char_list = [] # ["1","1","9","8","3"]
    for item in text:
        if item.isdecimal():
            char_list.append(item)
            
    res = bin(int("".join(char_list)))[2:]//bin(int("".join(char_list)))[2:]
    print(res)
    
  5. 查询你自己电脑上的某个目录下的所有文件,判断文件的扩展名是否是:png、PNG,如果是则输出。

    import os//
     #mac系统
    # ['WX20201115-092707@2x.png', 'WX20201114-164908@2x.png', 'WX20201114-165144@2x.png', 'demo.py', '.idea']
    data_list = os.listdir("/Users/wupeiqi/PycharmProjects/gx_day03")//拿到该目录下所有文件夹和文件,并将其文件名放在列表中
    for file_name in data_list:
        print(file_name)//换行
    
    # win
     import os
     data_list = os.listdir(r"C:\xx\xx\xx")//拿到该目录下所有文件夹和文件,并将其文件名放在列表中
     for file_name in data_list:
         print(file_name) # "字符串"
    
    import os
    
     data_list = os.listdir("/Users/wupeiqi/PycharmProjects/gx_day03")
     for file_name in data_list:
         # print(file_name)  # "字符串"
         if file_name.upper().endswith(".PNG")://文件名变成大写的结尾是否为PNG
             print(file_name)
    
    import os
    
    data_list = os.listdir("/Users/wupeiqi/PycharmProjects/gx_day03")
    for file_name in data_list:
        # text = "中国联通"
        # text[-1]
        # name_list = ["WX20201115-092707@2x","png"]
        # name_list[-1]
        name_list = file_name.split(".")  # WX20201115-092707@2x.png
        if name_list[-1].upper() == "PNG":
            print(file_name)
    

2.列表(list)

列表,是一个有序且可变的容器,元素可以是多种不同的数据类型。

2.1 定义

data_list = [ 11, 22, "中国俩通", True]
data = []
data.append(11)
data.append(999)

注意:列表是可变类型,绝大部分的功能都是对原列表操作。

2.2 独有功能

  1. 追加

    data_list = []
    
    data_lista.append(11)
    data_lista.append("wupeiqi")
    
    hobby_list = []
    while True:
        hobby = input("请输入你的爱好:")
        if hobby.upper() == "Q":
            break
        hobby_list.append(hobby)//list.append()
    
  2. 插入,把数据插入到那个位置。

    #              0      1       2      3
    user_list = ["陈清","李阳金","马其坤","刘东"]
    user_list.insert(1,"孟东珏")//插入到索引为1的地方
    
    print(user_list) # ["陈清", "孟东珏", "李阳金","马其坤","刘东"]
    
    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    user_list.insert(0,"孟东珏")
    user_list.insert(0,"卢慧")
    user_list.insert(0,"周雪梅")
    user_list.insert(0,"李柔")
    
    # 案例:排队
    user_list = []
    while True:
        name = input("请输入姓名:")
        if name.upper() == "Q":
            break
    	if name.startswith("刁")://输入名字前有刁放第一位
            user_list.insert(0,name)
    	else:
            user_list.append(name)
    
  3. 删除(值删除)

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    user_list.remove("陈清清")//list.remove(删除元素),删除从左到右的第一个符合要求的元素
    
    # ["李柔","周雪梅","卢慧","孟东珏","李阳金","马其坤","刘东"]
    print(user_list)
    

    注意:利用remove去删除列表的元素时,如果元素不存在,则会报错。

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    if "陈清清" in user_list:
        user_list.remove("陈清清")
    
    # 抽奖小程序
    
    import random
    
    # 1.构造200名员工并存放在列表中。
    user_list = []
    for i in range(1, 201):
        name = "工号-{}".format(i)
        user_list.append(name)
        
    # 2.随机抽取1名员工,发奖金20w
    # 随机去user_list列表中抽取一个数据
    data = random.choice(user_list)//randon.choice()随机抽取一个数据
    print("获得3等奖的是:", data)
    
    # 将用户在列表中删除
    user_list.remove(data)
    
    # 随机去user_list列表中抽取一个数据
    data = random.choice(user_list)
    print("获得2等奖的是:", data)
    
  4. 删除(索引位置)

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    user_list.pop(1)//根据索引位置删除元素
    
    # ["李柔", "卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    print(user_list)
    
    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    user_list.pop()//默认删除尾部元素
    
    #  ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤"]
    print(user_list)
    
    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 1.在原列表中删除指定索引位置的值
    # 2.将刚删除的数据获取到并赋值前面的变量。
    data = user_list.pop(1)
    print(data) # "周雪梅"
    print(user_list) # ["李柔", "卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 排队买火车票
    
    # 1.排队买票的人
    user_queue = []
    while True:
        name = input("上海~北京火车票,购买者姓名(Q/q):")
        if name.upper() == "Q":
            break
        user_queue.append(name)
    
    # 2.放了3张票
    for i in range(3):
        username = user_queue.pop(0)
        message = "恭喜{},购买成功".format(username)
        print(message)
    
    # 3.通知其他人,无票,请选择其他出行方式
    others = ",".join(user_queue)
    data = "票已售罄,请以下人员选择其他出行方式:{}".format(others)
    print(data)
    
  5. 清空列表

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    user_list.clear()//list.clear()
    
    print(user_list) # []
    
  6. 列表元素排序

    num_list = [11, 22, 8, 12, 99, 231, 1]
    
    num_list.sort()//排序,默认从小到大
    
    print(num_list)  # [1, 8, 11, 12, 22, 99, 231]
    
    num_list = [11, 22, 8, 12, 99, 231, 1]
    
    num_list.sort(reverse=True)//从大到小
    
    print(num_list)  # [231, 99, 22, 12, 11, 8, 1]
    

    中文排序的规则:unicode(了解)

    user_list = ["页子", "青青", "韦神", ]
    
    user_list.sort()
    
    print(user_list)  # ['青青', '韦神', '页子']
    

2.3 公共功能

  1. 长度//列表长度

    data_list = [11,22,33,44]
    
    res = len(data_list)
    print(res) # 4
    
  2. 索引

    #              0       1      2       3     4     5        6      7
    #                                                ...     -2      -1
    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 获取值
    user_list[0]
    user_list[2]
    user_list[  len(user_list)-1   ]
    user_list[-1]
    
    # 修改//列表可以修改,所以利用索引可以修改
    user_list[1] = "马冬梅"
    print(user_list) # ["李柔","马冬梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 删除
    del user_list[5]
    print(user_list) #  ["李柔","周雪梅","卢慧","孟东珏","陈清",马其坤","刘东"]
    
  3. 切片

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 读取一部分
    user_list[0:4]  #  ["李柔","周雪梅","卢慧","孟东珏"]
    user_list[0:-1]  #  ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤"]
    user_list[2:]  # ["卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    user_list[:]  # ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    # 修改一部分
    user_list = ["李柔", "周雪梅", "卢慧", "孟东珏", "陈清", "李阳金", "马其坤", "刘东"]
    user_list[0:2] = [11, 22, 33, 44]//二换四
    # [11, 22, 33, 44, '卢慧', '孟东珏', '陈清', '李阳金', '马其坤', '刘东']
    print(user_list)
    
    # 删除
    user_list = ["李柔", "周雪梅", "卢慧", "孟东珏", "陈清", "李阳金", "马其坤", "刘东"]
    del user_list[2:4]
    # ['李柔', '周雪梅', '陈清', '李阳金', '马其坤', '刘东']
    print(user_list)
    
  4. for循环

    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    for item in user_list:
        print(item)
    
    user_list = ["李柔","周雪梅","卢慧","孟东珏","陈清","李阳金","马其坤","刘东"]
    
    for i in range(len(user_list)):
        print(i)
        print( user_list[i]  )
    
    user_list = ["李柔", "周雪梅", "卢慧", "孟东珏", "陈清", "李阳金", "马其坤", "刘东"]
    
    for i in range(len(user_list)):
        data = "{}-{}".format(i, user_list[i])
        print(data)
    

2.4 嵌套

列表是一个 ”容器“,容器中可以放很多东西。

data_list = [11,22,"武沛齐",["中国联通","中国移动"],666, True]
data_list = [
    "梁吉宁",
    "赵建先",
    'root',
    [999,888,777,666],
    'admin',
    666,
	["周杰伦","刘欢","林俊杰","王一博"],
    ["刘翔","周琦",["姚明","王治郅","巴蒂尔"],"赵继伟"],
]

res = data_list[2].upper()//生成新的值赋给res
print(data_list) # 中的root是小写的。
print(res) # ROOT


# 取值
data_list[1] 			"赵建先"
data_list[1][-1]   		"先"
data_list[-1][2][-2]	"王治郅"

# 操作
data_list[0] = "李柔"
data_list[3][-1] = "666"

data_list[4][0] = "A"  # 报错?  admin-> Admin//报错,字符串无法修改
print(data_list)

# 操作
data_list.append(123)
data_list[-1].append("大侄子")//不会报错,把元素加在"赵继伟"后面
data_list[-1][2].append("大侄子")//"巴蒂尔"后面
# 列表是一个可变类型,列表中的常见功能是对列表本身进行操作。

练习题

  1. 用户注册,循环提示用户输入用户名和密码,如果输入用户名时 Q、q则终止。

    user_list = [ ["用户名A","密码A"] , ["用户名A","密码A"], ["用户名A","密码A"]  ]
    
    user_list = []
    
    while True:
        user = input(">>>")
        if user.uppper() == 'Q':
            break
    	pwd = input(">>>")
        
        item = [ user, pwd ]
        user_list.append(item)
    
  2. 循环输出商品信息

    goods = [
        ["飞机",3000],
        ["迫击炮",1000],
        ["AK47",300],
        ["m6",600],
    ]
    
    for i in range(len(goods)):
        message = "{} {}".format(i, goods[i][0] )
        print(message)
    
    # 输出
    0 飞机
    1 迫击炮
    2 AK47
    3 m6
    
  3. 循环输出商品信息,用户去输入:序号,根据用户输入的序号获取商品信息,并输出,格式如下:

    您选择的商品是xx,价格是xx。
    
    goods = [
        ["飞机", 3000],
        ["迫击炮", 1000],
        ["AK47", 300],
        ["m6", 600],
    ]
    
    # 1.展示商品信息
    for i in range(len(goods)):
        message = "{} {}".format(i, goods[i][0])
        print(message)
    
    # 2.用户选择
    choice = input("请选择:")
    if choice.isdecimal():
        # 整型
        choice = int(choice)
        # 范围
        if choice >= 0 and choice < len(goods):
            data_info = goods[choice]
            message = "您选择的商品是{},价格是{}。".format(data_info[0], data_info[1])
            print(message)
        else:
            print("序号输入不合法")
    else:
        print("输入必须是整数")
    
    
    goods = [
        ["飞机", 3000],
        ["迫击炮", 1000],
        ["AK47", 300],
        ["m6", 600],
    ]
    
    # 1.展示商品信息
    for i in range(len(goods)):
        message = "{} {}".format(i, goods[i][0])
        print(message)
    
    # 2.用户选择
    choice = input("请选择:")
    if choice.isdecimal():
        # 整型
        choice = int(choice)
        # 范围
        if 0 <= choice < len(goods):
            data_info = goods[choice]
            message = "您选择的商品是{},价格是{}。".format(data_info[0], data_info[1])
            print(message)
        else:
            print("序号输入不合法")
    else:
        print("输入必须是整数")
    
  4. 现提供给大家一些敏感词

key_list = ["日本","台湾","美国","新疆"]

text = input("请输入评论:")

# 将评论的内容中出现的关键字全部替换成 **
key_list = ["日本","台湾","美国","新疆"]
text = input("请输入评论:") # "你美国和日本人的混血"
for key in key_list:
    text = text.replace(key,"**")//替换,replace
print(text)

3.元组

列表,是一个有序且可变的容器,元素可以是多种不同的数据类型。

元组,是一个有序且不可变的容器,元素可以是多种不同的数据类型。

data = []
data.append(11)
data.append(234)
# 定义了一个元组,元组中有三个元素。不能删,不能改,不能添加
data = (11,22,33)

3.1 定义

v1 = (11,22,33)
v2 = (11,22,True,"武沛齐")
v3 = (11,22,True,(55,66), "武沛齐",[11,22,33,44])

元组的个数不能修改;元组的元素也不能被替换成其他的值。

注意:元组中的易错点。

v1 = (11,22)   # 正确,元组
v2 = (33,44,)  # 正确,元组,逗号可有可无
v3 = (666)    # v3 = 666
v4 = (666,)   # v4 = 元组,只有一个元素666

如果元组中只有一个元素,如果尾部没有逗号,则他不是元组,而是去除括号后的那个值。

1. 比较一下三个值的区别:
	v1 = (1)
    v2 = 1 
    v3 = (1,)
    
2.比较一下三个值的区别:
	v1 = ( (1),(2),(3) )
	v2 = ( 1, 2, 3 )
	v3 = ( (1,), (2,), (3,) )

3.2 独有功能

3.3 公共功能

  1. 长度

    v1 = (11,22,True,"武沛齐")
    
    res = len(v1)
    print(res) # 4
    
  2. 索引(只能读取)

    v1 = (11,22,True,"武沛齐")
    
    v1[0]
    v1[2]
    v1[-1]
    
  3. 切片//一点是拷贝了一份新的值

    v1 = (11,22,True,"武沛齐")
    
    v2 = v1[1:3] 
    print(v2) # (22,True)
    
    v3 = v1[1:] 
    print(v3) # (22,True,"武沛齐")
    
  4. for循环

    v1 = (11,22,True,"武沛齐")
    for item in v1:
        print(item)
    
    v1 = (11,22,True,"武沛齐")
    for i in range(len(v1)):
        print(i)
        print( v1[i] )
    

3.4 嵌套

data = (
	11,
    22,
    True,
    ("陆梅","吴国锋",[1,2,3,4])
    "武沛齐",
    ["陈清","马其坤","李冉"]
)

data[-2]   # ""武沛齐""
data[-3][0] # "陆梅"
data[-3][-1][0] # 1

# 元组的元素不可以被替换,元素个数也不允许修改。
data[0] = 123  # 报错
data[-1] = 666 # 报错

data[-1][0] = "张电摩"  # 正确,整体未被替换

在这里插入图片描述

练习题

  1. 先有一个元组,里面存放了了一些数据,例如:

    data = ("京A99110","沪B88776","黑A88776",...)
    
    # 1.获取所有京牌的车牌并放到一个列表中。
    
    # 2.输出列表;再输出京牌的个数。
    
    data = ("京A99110", "沪B88776", "黑A88776", "京A11111","京A111331")
    result = []
    for item in data:
        if item.startswith("京"):
            result.append(item)
    
    print(result)
    print(len(result))
    
  2. 创建一副扑克牌(不含大小王)

    color_list = ["红桃","黑桃","方片","梅花"]
    
    # num_list = range(1,14)
    num_list = [1,2,3,4,5,6,7,8,9,10,11,12,13]
    
    # 获取一副扑克牌
    # result = [ ("红桃",1),("红桃",2)....,("黑桃",1)..("梅花",13)  ]
    
    color_list = ["红桃", "黑桃", "方片", "梅花"]
    
    num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
    
    result = []
    for color in color_list:
        # print(color)  # color="黑桃"
        for num in num_list:
            item = (color, num)
            result.append(item)
    
    print(result)
    

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

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

相关文章

Postman使用总结--关联

当接口和接口之间&#xff0c;有依赖关系时&#xff0c;需要借助 postman 关联技术来实现

【算法与数据结构】LeetCode55、45、跳跃游戏 I 、II

文章目录 一、跳跃游戏I二、跳跃游戏II三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、跳跃游戏I 思路分析&#xff1a;本题目标是根据跳跃数组的元素&#xff0c;判断最终能够到达数组末端。我们引入了一个跳跃范围…

后端低代码平台探索总结

业务需求快速变化的背景 我们在对业务需求进行梳理后&#xff0c;在进行程序设计时&#xff0c;对于将来可能发生变化的常量、变量、阀值、开关、条件、公式等等&#xff0c;可能会配置在环境变量或数字字典来支持可配置。但是需求变化往往会更加复杂、更加不可预测&#xff0…

Java中Exception的使用方法

Exception介绍异常处理机制的优缺点常见的Exception异常处理的常见错误优雅的处理异常异常处理中存在的性能问题Java自定义异常示例 Exception介绍 在Java中&#xff0c;异常&#xff08;Exception&#xff09;是一种特殊类型的对象&#xff0c;表示程序运行过程中发生的意外或…

智慧养老:创新科技让老年生活更美好

智慧养老&#xff1a;创新科技让老年生活更美好 随着人口老龄化的加剧&#xff0c;智慧养老成为了关注焦点。智慧养老以创新科技为核心&#xff0c;旨在改善老年人的生活品质、促进健康、增强安全感和社会融入感。本文将详细介绍智慧养老的关键技术和应用场景&#xff0c;带您了…

iPhone16:首款AI iPhone?

随着科技水平的不断发展&#xff0c;智能手机逐渐成为人们最依赖的电子产品之一。为能够满足用户需求&#xff0c;手机的硬件、外观设计与性能飞速提升&#xff0c;这也导致智能手机市场快速进入到瓶颈期。 为了能够带来更优秀的表现&#xff0c;苹果可能会为iPhone 16系列带来…

黑马React:基础拓展

黑马React: D10-基础拓展 Date: December 18, 2023 useReducer 基础使用 作用: 让 React 管理多个相对关联的状态数据 补充&#xff1a;和useState的作用类似&#xff0c;用来管理相对复杂的状态数据 **特点&#xff1a;**useReducer返回值为一个数组, 可以解构处数值stat…

【具身智能评估9】Open X-Embodiment: Robotic Learning Datasets and RT-X Models

论文标题&#xff1a;Open X-Embodiment: Robotic Learning Datasets and RT-X Models 论文作者&#xff1a;– 论文原文&#xff1a;https://arxiv.org/abs/2310.08864 论文出处&#xff1a;– 论文被引&#xff1a;–&#xff08;12/18/2023&#xff09; 论文代码&#xff1a…

力扣日记12.18-【二叉树篇】合并二叉树

力扣日记&#xff1a;【二叉树篇】合并二叉树 日期&#xff1a;2023.12.18 参考&#xff1a;代码随想录、力扣 617. 合并二叉树 题目描述 难度&#xff1a;简单 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xf…

公共字段自动填充——后端

场景&#xff1a;当处理一些请求时&#xff0c;会重复的对数据库的某些字段进行赋值&#xff08;如&#xff1a;在插入和更新某个物品时&#xff0c;需要更新该物品的更新时间和更新者的信息&#xff09;&#xff0c;这样会导致代码冗余。 如&#xff1a; 思路&#xff1a; 自…

Arma3/武装突袭3东风战役最后一关游戏无法保存的解决办法

Arma3这个游戏玩进去还是非常有可玩性的&#xff0c;可是在玩过了它本体自带的东风系列战役后&#xff0c;在最精髓的最后一关——game over这个关卡&#xff0c;却有个非常头疼的问题。 逃跑其实是非常简单的&#xff0c;但是想要无伤环游全岛确十分困难&#xff0c;因为这关卡…

探索人工智能中的语言模型:原理、应用与未来发展

导言 语言模型在人工智能领域中扮演着重要的角色&#xff0c;它不仅是自然语言处理的基础&#xff0c;也是许多智能系统的核心。本文将深入研究语言模型的原理、广泛应用以及未来发展趋势。 1. 语言模型的原理 统计语言模型&#xff1a; 基于概率统计的传统语言模型&…

云原生之深入解析如何在K8S环境中使用Prometheus来监控CoreDNS指标

一、什么是 Kubernetes CoreDNS&#xff1f; CoreDNS 是 Kubernetes 环境的DNS add-on 组件&#xff0c;它是在控制平面节点中运行的组件之一&#xff0c;使其正常运行和响应是 Kubernetes 集群正常运行的关键。DNS 是每个体系结构中最敏感和最重要的服务之一。应用程序、微服…

redis:六、数据过期删除策略(惰性删除、定期删除)和基于redisson实现的分布式锁(看门狗机制、主从一致性)和面试模板

数据过期删除策略 Redis的过期删除策略&#xff1a;惰性删除 定期删除两种策略进行配合使用 惰性删除 惰性删除&#xff1a;设置该key过期时间后&#xff0c;我们不去管它&#xff0c;当需要该key时&#xff0c;我们在检查其是否过期&#xff0c;如果过期&#xff0c;我们就…

转载: iOS 优雅的处理网络数据

转载&#xff1a; iOS 优雅的处理网络数据 原文链接&#xff1a;https://juejin.cn/post/6952682593372340237 相信大家平时在用 App 的时候, 往往有过这样的体验&#xff0c;那就是加载网络数据等待的时间过于漫长&#xff0c;滚动浏览时伴随着卡顿&#xff0c;甚至在没有网…

NLP论文阅读记录-ACL 2023 | 10 Best-k Search Algorithm for Neural Text Generation

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1优势2.2 挑战 三.本文方法3.1 并行探索3.2 时间衰变3.3堆修剪3.4 模型得分 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果 五 总结 前言 用于神经文本生成…

【Transformer】Transformer and BERT(1)

文章目录 TransformerBERT 太…完整了&#xff01;同济大佬唐宇迪博士终于把【Transformer】入门到精通全套课程分享出来了&#xff0c;最新前沿方向 学习笔记 Transformer 无法并行&#xff0c;层数比较少 词向量生成之后&#xff0c;不会变&#xff0c;没有结合语境信息的情…

Transformer Decoder的输入

大部分引用参考了既安的https://www.zhihu.com/question/337886108/answer/893002189这篇文章&#xff0c;个人认为写的很清晰&#xff0c;此外补充了一些自己的笔记。 弄清楚Decoder的输入输出&#xff0c;关键在于图示三个箭头的位置&#xff1a; 以翻译为例&#xff1a; 输…

支持向量机(SVM):高效分类的强大工具

文章目录 前言1. SVM的基本原理1.1 核心思想1.2 支持向量1.3 最大化建模1.4 松弛变量1.5 核函数 2. SVM与逻辑回归的区别和联系2.1 区别2.2 联系 3. SVM的应用领域3.1 图像分类3.2 文本分类3.3 生物信息学3.4 金融领域3.5 医学诊断 4. SVM的优势与挑战4.1 优势4.1.1 非线性分类…

分布式理论 | RPC | Spring Boot 整合 Dubbo + ZooKeeper

一、基础 分布式理论 什么是分布式系统&#xff1f; 在《分布式系统原理与范型》一书中有如下定义&#xff1a;“分布式系统是若干独立计算机的集合&#xff0c;这些计算机对于用户来说就像单个相关系统”&#xff1b; 分布式系统是由一组通过网络进行通信、为了完成共同的…