新手总结:Python中的数据序列1

一、字符串

1、字符串的定义

字符串是 Python 中最常用的数据类型。我们⼀般使用引号来创建字符串。创建字符串很简单,只要为变量分配⼀个值即可。

①.使用单引号(' ')或使用双引号(" "):

my_string1 = '你好, 杨某'
my_string2 = "你好, 杨某, 吃了没"

②.使用三引号(''' ''' 或 """ """):

单行三引号:

my_string3 = '''兄弟, 你变了'''

多行三引号,允许字符串跨越多行:

my_string4 = """
不是, 
哥们?
"""

③.使用反斜杠(\)进行转义,以包含特殊字符或引号:

my_string5 = '吃了没, 兄弟'  # 包含单引号
my_string6 = "杨某, 你好"  # 包含双引号

 2、字符串的输入

在Python中,获取用户输入的字符串通常使用内置函数 input()。这个函数会暂停程序的执行,等待用户在控制台输入文本,直到用户按下回车键(Enter)。用户输入的内容会被当作字符串处理,并返回给程序。

# 提示用户输入
user_input = input("请输入您的文本:")

# 输出用户输入的内容
print("您输入的内容是:" + user_input)

在这个例子中,程序会显示提示信息 "请输入一些文本:",然后等待用户输入。用户输入的文本在按下回车键后会被赋值给变量 user_input,并且随后被打印出来。

3、字符串的输出

到目前为止我们已遇到过两种写入值的方式: 表达式语句和 print() 函数。对输出格式的控制不只是打印空格分隔的值,还需要更多方式。格式化输出包括以下几种方法。

基本输出:

# 输出一个简单的字符串
print("你好,杨某!")

使用 格式化字符串字面值 ,要在字符串开头的引号/三引号前添加 f 或 F 。在这种字符串中,可以在 { 和 } 字符之间输入引用的变量,或字面值的 Python 表达式。

例如:

name = "杨某"
age = 20
print(f"我的名字是{name},我今年{age}岁。")

str.format() 方法是Python中一个非常强大的字符串格式化工具,它允许你构造字符串,并在其中嵌入值。这个方法提供了一种灵活的方式来替换字符串中的占位符(大括号 {})为变量的值。

例如:

print('你好我是{}今年"{}!"'.format('杨某', 20))

% 运算符 (求余) 也可被用于字符串格式化。 给定 format % values (其中 format 是一个字符串),则 format 中的 % 转换占位符将以 values 中的零个或多个元素来替换。 此操作通常称为字符串插值。

例如:

name = "杨某"
age = 20
print("我的名字是%s,我今年%d岁。" % (name, age))

 二、字符串切片

所谓的切片是指对操作的对象 截取 其中⼀部分的操作。字符串、列表、元组都支持切片操作

1、基本语法

string[start:end:step]
序列名称[开始位置下标:结束位置下标:步⻓(步阶)]
numstr = '0123456789'
numstr[0:3:1] # 012 => range⽅法⾮常类似,步⻓:每次前进1步
numstr[0:3:2] # 02 => 每次前进2步
步⻓可以为负数,正数代表从左向右截取,负数代表从右向左截取

① 不包含结束位置下标对应的数据, 正负整数均可;

② 步长是选取间隔,正负整数均可,正数从左向右,负数从右向左。默认步长为1。  

字符串切片索引
正索引0123456789
负索引-10-9-8-7-6-5-4-3-2-1
0123456789

 案例1:

numstr = '0123456789'
# 1、从2到5开始切⽚,步⻓为1
print(numstr[2:5:1])
print(numstr[2:5])
# 2、只有结尾的字符串切⽚:代表从索引为0开始,截取到索引为5的位置(不包含索引为5的数据)
print(numstr[:5])
# 3、只有开头的字符串切⽚:代表从起始位置开始,已知截取到字符串的结尾
print(numstr[1:])
# 4、获取或拷⻉整个字符串
print(numstr[:])
# 5、调整步阶:类似求偶数
print(numstr[::2])
# 6、把步阶设置为负整数:类似字符串翻转
print(numstr[::-1])
# 7、起始位置与结束位置都是负数
print(numstr[-4:-1])
# 8、结束字符为负数,如截取012345678
print(numstr[:-1])

 案例2:给定⼀个图片的名称为"headerImg.png",使用Python方法获取这个图片的名称(headerImg)以 及这个图片的后缀(.png)。

分析:

① 建议先获取点号的位置

② 从开头切片到点号位置,得到的就是文件的名称

③ 从点号开始切片,一直到文件的结尾,则得到的就是文件的后缀

filename = 'headerImg'
# 获取点号的索引下标
index = 8
# 使⽤切⽚截取⽂件的⽂件
name = filename[:index]
print(f'上传⽂件的名称:{name}')
# 使⽤切⽚截取⽂件的后缀
postfix = filename[index:]
print(f'上传⽂件的后缀:{postfix}')

2、字符串的操作方法(内置)

字符串的查找方法

方法名作用
in检查字符串是否包含指定子字符串,返回布尔值(True/False)。
not in检查字符串是否不包含指定子字符串,返回布尔值(True/False)。
find()查找子字符串在字符串中第一次出现的索引,未找到返回-1。
index()查找子字符串在字符串中第一次出现的索引,未找到抛出ValueError

in 和 not in 操作符:

s = "Hello, World!"
# 检查子字符串是否在s中
if "World" in s:
    print("找到子字符串")
else:
    print("未找到子字符串")

# 检查子字符串是否不在s中
if "Python" not in s:
    print("未找到子字符串")

find() 方法:

s = "Hello, World!"
index = s.find("World")
if index != -1:
    print(f"子字符串 'World' 在索引 {index} 处找到")
else:
    print("未找到子字符串")

index() 方法:

s = "Hello, World!"
try:
    index = s.index("World")
    print(f"子字符串 'World' 在索引 {index} 处找到")
except ValueError:
    print("未找到子字符串")

 字符串的修改方法

方法名作用
replace()替换字符串中的某些子字符串。
split()按照指定的分隔符分割字符串,返回一个列表。
title()将字符串的每个单词首字母转换为大写。
upper()与lower()返回全部大写或小写的字符串。

replace()方法:

str1 = 'hello linux and hello linux'
# 把字符串中所有linux字符替换为python
print(str1.replace('linux', 'python'))
# 把字符串中的第⼀个linux进⾏替换为python
print(str1.replace('linux', 'python', 1))
# 把and字符串替换为&&
print(str1.replace('and', '&&'))

 split()方法:

s = "Hello, World!"
parts = s.split(", ")  # ["Hello", "World!"]
modified_string = parts[0] + ", " + parts[1].upper()  # 输出"Hello, WORLD!"

 title()方法:

s = "hello, world!"
modified_string = s.title()  # 输出"Hello, World!"

 三、列表

为什么需要列表?

1、列表允许你存储有序的数据集合,这意味着元素添加到列表中的顺序会被保留。

2、列表支持通过索引进行快速随机访问,这意味着你可以在常数时间内访问列表中的任何元素。

3、列表可以包含不同类型的元素,这意味着一个列表中可以同时存储整数、字符串、甚至其他列表。

4、列表允许元素重复,这在处理某些类型的数据时非常有用,例如计数或存储具有多个相同项的集合。

5、列表是可变的,这意味着你可以修改列表的内容,这在很多情况下是非常有用的,比如当你需要根据程序逻辑更新数据时。

列表的定义

列表序列名称 = [列表中的元素1, 列表中的元素2, 列表中的元素3, ...]

list1 = ['apple', 'banana', 'pineapple']
# list列表类型⽀持直接打印
print(list1)
# 打印列表的数据类型
print(type(list1)) # <class 'list'>

列表的操作

根据列表的的特点,我们可以对列表进行的操作有:增、删、改、查。

增操作

方法名作用
append()增加指定数据到列表中
extend()列表结尾追加数据,如果数据是⼀个序列, 则将这个序列的数据逐⼀添加到列表
insert()指定位置新增数据
append()方法

代码示例

names = ['孙悟空', '唐僧', '猪⼋戒']
# 在列表的尾部追加⼀个元素"沙僧"
names.append('沙僧')
# 打印列表
print(names)

注意:列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型 数据。 

extend()方法

代码示例

list1 = ['Tom', 'Rose', 'Jack']
# 1、使⽤extend⽅法追加元素"Jennify"
names.extend("Jennify")
print(names)
# 2、建议:使⽤extend⽅法两个列表进⾏合并
list2 = ['Hack', 'Jennify']
list1.extend(list2)
print(list1)

总结:extend方法比较适合于两个列表进行元素的合并操作。

insert()方法

代码示例

names = ['薛宝钗', '林黛⽟']
# 在薛宝钗和林黛⽟之间,插⼊⼀个新元素"贾宝⽟"
names.insert(1, '贾宝⽟')
print(names)

 注意:使用insert()方法时需要注意列表中元素的下标

删操作

方法名作用
del 列表[索引]删除列表中的某个元素
pop()删除指定下标的数据(默认为最后⼀个),并返回该数据
remove()移除列表中某个数据的第⼀个匹配项。
del 列表[索引](指定删除列表中的元素)

代码示例

names = ['Tom', 'Rose', 'Jack', 'Jennify']
# 删除Rose
del names[1]
# 打印列表
print(names)
 pop()方法

代码示例

names = ['貂蝉', '吕布', '董卓']
del_name = names.pop()
# 或
# del_name = names.pop(1)
print(del_name)
print(names)

作用:删除指定下标的元素,如果不填写下标,默认删除最后一个。其返回结果:就是删除的这个元素。

remove()方法

代码示例

fruit = ['apple', 'banana', 'pineapple']
fruit.remove('banana')
print(fruit)

作用:删除匹配的元素

改操作

方法名作用
列表[索引] = 修改后的值修改列表中的某个元素
reverse()将数据序列进行倒叙排列

代码示例

list1 = ['貂蝉', '⼤乔', '⼩乔', '⼋戒']
# 修改列表中的元素
list1[3] = '周瑜'
print(list1)
list2 = [1, 2, 3, 4, 5, 6]
list2.reverse()
print(list2)

查操作

方法名作用
index()指定数据所在位置的下标
count()统计指定数据在当前列表中出现的次数
in判断指定数据在某个列表序列,如果在返回True,否则返回False
not in判断指定数据不在某个列表序列, 如果不在返回True,否则返回 False

代码示例

# 1、查找某个元素在列表中出现的位置(索引下标)
list1 = ['apple', 'banana', 'pineapple']
print(list1.index('apple')) # 0
# print(list1.index('peach')) # 报错
# 2、count()⽅法:统计元素在列表中出现的次数
list2 = ['刘备', '关⽻', '张⻜', '关⽻', '赵云']
# 统计⼀下关⽻这个元素在列表中出现的次数
print(list2.count('关⽻'))
# 3、in⽅法和not in⽅法(⿊名单系统)
list3 = ['192.168.1.15', '10.1.1.100', '172.35.46.128']
if '10.1.1.100' in list3:
 print('⿊名单IP,禁⽌访问')
else:
 print('正常IP,访问站点信息')

列表的循环遍历

while循环

list1 = ['貂蝉', '⼤乔', '⼩乔']
# 定义计数器
i = 0
# 编写循环条件
while i < len(list1):
 print(list1[i])
 # 更新计数器
 i += 1

for循环

list1 = ['貂蝉', '⼤乔', '⼩乔']
for i in list1:
 print(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值