吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1058|回复: 0
收起左侧

[学习记录] Python学习——非数据类型变量:列表和字符串

[复制链接]
126xy 发表于 2022-10-6 13:01
目录:
一.列表
1.列表的定义
(1)空列表
(2)索引
2.list的操作方法
(1)下标操作
  • 索引->值:列表[索引]
  • 值->索引:列表.index(值)

(2)增加数据
  • 列表.append(数据)
  • 列表.insert(索引,数据)
  • 列表.extend(列表二)——等价于 +=

(3)删除数据
  • 列表.remove(值)
  • 列表.pop(索引) 默认删除列表最后一个元素
  • 列表.clear() 清空列表,但列表仍存在
  • del关键字
  • 删列表元素:del 列表[索引]
  • 删列表:del 列表

(4)统计
  • len(列表) 统计列表的元素——字符串、元组、字典、集合也适用
  • 列表.count(数据) 统计数据在列表中出现了几次

(5)排序
  • 列表.sort() 升序排序
  • 列表.sort(reverse = True) 降序排序
  • 列表.reverse() 逆序

(6)循环 for in
二.字符串
1.定义
2.操作
(1)切片操作——也适用于列表和元组,不适用于字典
(2)大小写相关的操作
  • 字符串.captitalize() 字符串的第一个字符变大写
  • 字符串.title() 返回 每个单词的首字母大写的 字符串
  • 字符串.upper() 全部大写
  • 字符串.lower() 全部小写
  • 字符串.istitle() 若所有单词首字母大写,其余小写,则返回真

(3)大小写操作练习——验证码
(4)查找 find和rfind
(5)替换 replace
(6)编码和解码 encode()和decode()
(7)查找练习——判断上传文件的格式
(8)join(合并)strip(去掉空格)split(切割)count(出现次数)


一.列表
1.定义
[Python] 纯文本查看 复制代码
list_1 = [] # 空列表
list_2 = list() # 空列表

print(type(list_1), type(list_2))   # <class 'list'> <class 'list'>

name_list = ["张三", "李四", "王五"]

# 索引
print(name_list[0])
# 超出索引范围,会报错 IndexError:list index out of range
# print(name_list[3])

# 查看每个元素的索引值
print(id(name_list), id(name_list[0]), id(name_list[1]))


2.list的操作方法
(1)下标操作
  • 索引->值:列表[索引]
  • 值->索引:列表.index(值)
[Python] 纯文本查看 复制代码
# 列表的下标操作
name_list = ["zhangsan", "wangwu", "lisi"]
name_list[2] = '王五'
print(name_list)
print(name_list.index('zhangsan'))


(2)增加数据
  • 列表.append(数据)
  • 列表.insert(索引,数据)
  • 列表.extend(列表二)——等价于 +=
[Python] 纯文本查看 复制代码
# 增加数据
name_list.append('alex')    # 在列表最后增加元素
print(name_list)

# 通过下标,插入元素
name_list.insert(2, 'Bob')  # 原本之后的元素,往后移
print(name_list)

# extend 等价于 +=
name_list1 = ['小猫', '小狗', 'zhangsan']
name_list.extend(name_list1)
print(name_list)

# name_list += name_list1


(3)删除数据
  • 列表.remove(值)
  • 列表.pop(索引) 默认删除列表最后一个元素
  • 列表.clear() 清空列表,但列表仍存在
  • del关键字
  • 删列表元素:del 列表[索引]
  • 删列表:del 列表
[Python] 纯文本查看 复制代码
# 删除元素
name_list.remove('alex')    # 前提是列表里面有这个元素
print(name_list)

# .pop
name_list.pop()     # 默认删除列表的最后一个元素
print(name_list)

name_list.pop(1)    # .pop(index)
print(name_list)

# .clear 清空列表,但列表还在
#name_list.clear()
print(name_list)

# del 关键字
del name_list[1]    # 将 name_list[index] 从内存中删除
print(name_list)
# del name_list   # 将 name_list 从内存中删除


(4)统计
  • len(列表) 统计列表的元素——字符串、元组、字典、集合也适用
  • 列表.count(数据) 统计数据在列表中出现了几次
[Python] 纯文本查看 复制代码
# .len(列表) 统计列表的元素
# len Return the number of items in a container
# 字符串、列表、元组、字典、集合也适用
num = len(name_list)
print(num)

# .count(数据) 统计数据出现了几次
name_list.count("zhangsan")


(5)排序
  • 列表.sort() 升序排序
  • 列表.sort(reverse = True) 降序排序
  • 列表.reverse() 逆序
[Python] 纯文本查看 复制代码
# 排序
num_list = [3,2,7,6,8,5,1,4]
# .sort()升序排序
num_list.sort()
#num_list.sort(reverse=True) # 降序排序,true代表reverse生效,false代表不生效
print(num_list)
# .reverse() 逆序
num_list.reverse()
print(num_list)


(6)循环 for in
[Python] 纯文本查看 复制代码
list_1 = ["lala", "miaomiao", "kk", "dd", "lv"]

for item in list_1:
    print(item + ".docx")




二.字符串
1.定义
[Python] 纯文本查看 复制代码
# 值和id都一样
s1 = "abc"
s2 = 'abc'
s3 = """abc"""
s4 = '''abc'''
print(s1 is s2) # 比较id
print(s1 is s3)
print(s1 is s4)
print(id(s1), id(s2), id(s3))
print(s1 == s2)
print(s1 == s3)
print(s1 == s4)

# in 成员运算符
name = 'steven'
result = 'st' in name  # 返回值是bool 类型 True False
print(result)
result = 'tev' not in name
print(result)


2.操作
(1)切片操作——也适用于列表和元组,不适用于字典
[Python] 纯文本查看 复制代码
# 不仅适用于字符串,也适用于列表和元组,不适用于字典
filename = 'picture.png'
print(filename[6])

# 切片操作
# str[start:end:方向(+/-)/步长]        +和 1都是默认的
print(filename[0:7:+1])
print(filename[:7:+1])  # 起始值0可以省略
print(filename[:7])
print(filename[:7:2])

# 取负数值: 负数表示倒数第几个
print(filename[2:-1])  # 从第二个开始取值,取到倒数第一个之前
# [::]的用法:
print(filename[::])     # 正序输出
print(filename[::-1])   # 从右往左取值,即倒序输出
print(filename[-1:-5:-1])   # 不包含 -5


str1 = "hello world"
# 逆序输出 world
print(str1[-1:-6:-1])
# 正向输出 hello
print(str1[:5:])
# 逆序输出 hello world
print(str1[::-1])
# 打印 llo wo
print(str1[2:8:])


(2)大小写相关的操作
  • 字符串.captitalize() 字符串的第一个字符变大写
  • 字符串.title() 返回 每个单词的首字母大写的 字符串
  • 字符串.upper() 全部大写
  • 字符串.lower() 全部小写
  • 字符串.istitle() 若所有单词首字母大写,其余小写,则返回真

[Python] 纯文本查看 复制代码
# 大小写相关
# capitalize() 字符串第一个字符变大写
message = "andy is a beautiful girl !"
message1 = message.capitalize()
print(message1)
# title()   返回 每个单词的首字母大写 的字符串
message2 = message.title()
print(message2)
# upper()   全部大写
message3 = message.upper()
print(message3)
# lower()   全部小写
message4 = message.lower()
print(message4)
# 如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
message5 = message.istitle()
print(message5)


(3)大小写操作练习——验证码
[Python] 纯文本查看 复制代码
"""
根据系统提示输入验证码,不用考虑大小写
"""
# 产生一组验证码(5个字母或数字)
import random   # 随机

codes = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
auth_code = ""
# print(len(codes))
for i in range(5):                      # range(12) 生成12位随机密码
    rand = random.randint(0, len(codes) - 1)
    auth_code += codes[rand]

print(auth_code)

# 根据验证码,自己输入,不用判断大小写
user_code = input("请输入五位验证码:")

if auth_code.lower() == user_code.lower():
    print("输入正确")
else:
    print("验证码输入错误")


4)查找 find和rfind
[Python] 纯文本查看 复制代码
# 查找: find 和 rfind
# find(要查找的字符, start, end)

# 获取链接中的文件名
url = "http://www.baidu.com/img/bd_logo.png"
# 获取最右边“\” 的位置
a = url.rfind('/')
# 获取最右边“\” 的文件名
filename = url[a+1::]
print(filename)
# 去掉扩展名
b = filename.rfind('.')
filename2 = filename[:b:]
print(filename2)

5)替换 replace
[Python] 纯文本查看 复制代码
# 替换:replace
s1 = "index lucy lucky goods"
s2 = s1.replace('l','L')        # 把 l 替换成 L
print(s2)
s3 = s1.replace('l','L',1)      # 最多替换 1 次
print(s3)
s4 = s1.replace(' ', '')
print(s4)

6)编码和解码 encode()和decode()
[Python] 纯文本查看 复制代码
# 编码    encode()
# 将文本类型的数据转换成二进制
# msg = "http://www.baidu.com/img/bd_logo1.png"
msg = "床前明月光"
msg1 = msg.encode(encoding='utf-8')
print(msg1)

# 解码     decode()          用于人机交互
msg2 = msg1.decode()
print(msg2)

7)查找练习——判断上传文件的格式
[Python] 纯文本查看 复制代码
"""
练习:
给定一个路径,上传文件(记事本txt或者是图片.jpg,png)
如果不是对应格式的,允许重新执行上传文件
如果符合上传的规定则提示上传成功
"""
while True:
    # 分析步骤
    # 要上传的文件的路径 ---》文件名---》通过文件名再判断是否是图片类型
    path = input("请输入文件:")  # C:\Users\karl_\Desktop\text.txt

    p = path.rfind(".")
    # print(p)
    suffix = path[p+1:]
    # print(suffix)

    if suffix in ['txt', 'jpg', 'png']:
        print('输入的格式正确')
        break
    else:
        print("格式不正确")

8)join(合并)strip(去掉空格)split(切割)count(出现次数)
[Python] 纯文本查看 复制代码
# join strip split count
# join 合并
str1 = 'abc'
str2 = '_'.join(str1)
print(str2)

# strip 去掉空格
str3 = '    abcd  '
print(str3)
str4 = str3.strip()
print(str4)

# 去掉前面(lstrip)或后面(rstrip)的 whitspace(空格、tab)
str5 = str3.lstrip()
str6 = str3.rstrip()
print(str5, str6)

# split 切割,切割后放到列表中
s = "hello world hello kitty"
result = s.split(" ")
print(result)

result1 = s.split(" ", 2)    # 最多切两次
print(result1)

# count 出现次数
print(s.count('o'))


练习代码下载地址:https://wwt.lanzoul.com/i9HS80dacxla

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
sushaka + 1 + 1 谢谢@Thanks!
gunanyi + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表