本文共 4611 字,大约阅读时间需要 15 分钟。
# 创建- 单引号引起来: `name = 'westos'`- 双引号引起来: `name = "westos"`- 三引号引起来: 注意点: 三引号代表字符串, 也可以作为代码的块注释# 基本特性- 连接(+)重复(*)- 成员(in, not in)- 索引: 正向索引和反向索引- 切片:s[start:end:step]```pythons = '012345'print(s[:3]) # s[:n]获取前n个字符print(s[2:]) # s[n:]获取除了qiann个字符的字符串信息print(s[::-1]) # 字符串倒序# 常用方法- 判断类型(isdigit, isupper, islower, isalpha, isalnum)- 转换类型:(lower, upper, title)- 开头和结尾的判断(startswith, endswith)- 数据清洗(strip, lstrip, rstrip, replace)- 分割和拼接(split, `'172.25.254.100'.split(".")`, join)- 位置调整(center)
li = []print(li, type(li))li1 = [1]print(li1, type(li1))
# 1. 连接操作符和重复操作符print([1, 2] + [2, 3]) # [1, 2, 2, 3]print([1, 2] * 3) # [1, 2, 1, 2, 1, 2]# 2. 成员操作符(in, not in)print(1 in [1, 2, 3]) # True"""布尔类型: True: 1 False:0"""print(1 in ["a", True, [1, 2]]) # Trueprint(1 in ["a", False, [1, 2]]) # False# 3. 索引li = [1, 2, 3, [1, 'b', 3]]print(li[0]) # 1print(li[-1]) # [1, 'b', 3]print(li[-1][0]) # 1print(li[3][-1]) # 3# 4. 切片li = ['172', '25', '254', '100']print(li[:2])print(li[1:])print(li[::-1])# 需求: 已知['172', '25', '254', '100'], 输出: "100-254-25"li = ['172', '25', '254', '100']print("-".join(li[1:][::-1]))# 5. for循环names = ["粉丝", '粉条', '粉带']for name in names: print(f"西部开源猫大佬的姓名是:{name}")
# 1. 增加# 1-1). 追加li = [1, 2, 3]li.append(4)print(li)# 1-2). 在列表开头添加li = [1, 2, 3]li.insert(0, 'cat')print(li)# 1-2). 在索引2前面添加元素catli = [1, 2, 3]li.insert(2, 'cat')print(li)# 1-3). 一次追加多个元素li = [1, 2, 3] # 添加4, 5, 6li.extend([4, 5, 6])print(li)# 2. 修改: 通过索引和切片重新赋值的方式。li = [1, 2, 3]li[0] = 'cat'li[-1] = 'westos'print(li)li = [1, 2, 3]li[:2] = ['cat', 'westos']print(li)# 3. 查看: 通过索引和切片查看元素。 查看索引值和出现次数。li = [1, 2, 3, 1, 1, 3]print(li.count(1)) # 3print(li.index(3)) # 2# 4. 删除# 4-1). 根据索引删除li = [1, 2, 3]# 将pop方法的结果存储到delete_num变量中。delete_num = li.pop(-1)print(li)print("删除的元素是:", delete_num)# 4-2). 根据value值删除li = [1, 2, 3]li.remove(1)print(li)# 4-3). 全部清空li = [1, 2, 3]li.clear()print(li)# 5. 其他操作li = [18, 6, 99, 56]li.reverse() # 类似于li[::-1]print(li)# sort排序默认由小到大。 如果想由大到小排序,设置reverse=Trueli.sort(reverse=True)print(li)li1 = li.copy()print(id(li), id(li1))print(li, li1)
特性: 连接&重复操作符、成员操作符、索引&切片
注意: 元组是不可变数据类型,不能对元组的值任意更改
# 元组tuple(戴了紧箍咒的列表, 不能修改元素)# 1. 元组的创建t1 = () # 空元组print(t1, type(t1))t2 = (1,) # 重要(易错点):元组只有一个元素时一定要加逗号print(t2, type(t2))t3 = (1, 1.2, True, [1, 2, 3])print(t3, type(t3))# 2. 特性print((1, 2, 3) + (3,))print((1, 2, 3) * 2)print(1 in (1, 2, 3))t = (1, 2, 3)print(t[0])print(t[-1])print(t[:2])print(t[1:])print(t[::-1])# 3. 常用方法: 元组是不可变数据类型(不能增删改)# 查看: 通过索引和切片查看元素。 查看索引值和出现次数。t = (1, 2, 3, 1, 1, 3)print(t.count(1)) # 3print(t.index(3)) # 2
tuple = ("westos", 18, "西安")print(tuple[0], tuple[1], tuple[2])# 从collections模块中导入namedtuple工具。from collections import namedtuple# 1. 创建命名元组对象UserUser = namedtuple('User', ('name', 'age', 'city'))# 2. 给命名元组传值user1 = User("westos", 18, "西安")# 3. 打印命名元组print(user1)# 4. 获取命名元组指定的信息print(user1.name)print(user1.age)print(user1.city)
"""python语言: ==: 类型和值是否相等 is: 类型和值是否相等, 内存地址是否相等"""print(1 == '1') # Falseli = [1, 2, 3]li1 = li.copy()print(li == li1) # True# 查看内存地址print(id(li), id(li1))print(li is li1) # False
编写一个云主机管理系统:
from collections import namedtuplemenu = """ 云主机管理系统 1). 添加云主机 2). 搜索云主机(IP搜索) 3). 删除云主机 4). 云主机列表 5). 退出系统 请输入你的选择: """# 思考1. 所有的云主机信息如何存储?选择哪种数据类型存储呢? 选择列表# 思考2: 每个云主机信息该如何存储?IP, hostname,IDC 选择命名元组hosts = []Host = namedtuple('Host', ('ip', 'hostname', 'idc'))while True: choice = input(menu) if choice == '1': print('添加云主机'.center(50, '*')) ip = input("ip:") hostname = input("hostname:") idc = input('idc(eg:ali,huawei..):') host1 = Host(ip, hostname, idc) hosts.append(host1) print(f"添加{idc}的云主机成功.IP地址为{ip}") elif choice == '2': print('搜索云主机'.center(50, '*')) # 今天的作业: for循环(for...else),判断, break elif choice == '3': print('删除云主机'.center(50, '*')) # 今天的作业:(选做) elif choice == '4': print('云主机列表'.center(50, '*')) print("IP\t\t\thostname\tidc") count = 0 for host in hosts: count += 1 print(f'{host.ip}\t{host.hostname}\t{host.idc}') print('云主机总个数为', count) elif choice == '5': print("系统正在退出,欢迎下次使用......") exit() else: print("请输入正确的选项")
习题待完善。。
转载地址:http://bihzi.baihongyu.com/