Python字符串

本文详细介绍了Python中的字符串基础特性,包括切片、索引、加法、乘法和成员关系操作。接着讲解了字符串操作,如访问子串、替换、拼接等,并探讨了find、index、join、大小写转换等方法。此外,还介绍了字典的基本概念、创建、操作及遍历方法,包括键值对的存取、删除和转换。最后,讨论了遍历字符串、列表和字典的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1 基础特性

字符串也是序列,因此也支持序列类型的所有基础操作

  • 切片

  • 索引

  • 加法

  • 乘法

  • 成员关系

    • in/not in

定义字符串:

  • str = "xxxx"

    str = "abcdefghigklmn"    # 定义字符串
    
    str1 = str[3:7]           # 切片
    print(str1)
    
    str2 = str[4]             # 索引
    print(str2)
    
    s1 = "hello "
    s2 = "boys"
    s = s1 + s2               # 加法
    print(s)
    
    print(s1 * 5)  
    s = "abc"
    print(type(s))         # 输出类型是str,表示是字符串
    
    l = ["abc"]
    print(type(l))         # 输出类型是list,表示是列表
    
    t = ("abc",)          
    print(type(t))         # 输出类型是tuple,表示是元组
    
    d = {"name":"tom","age":18}
    print(type(d))          # 输出类型是dict,表示是字典

4.2 字符串操作

1)访问字符串的子串

  • 通过切片

案例:打印字符串的倒数第二个字符

s = "abcdefghijklnm"
# 方法1
print(s[-2])

# 方法2
num = len(s)
print(s[num-2])

2)字符串替换

方法:

  • str.replace("目标","替换结果",[替换几个])

案例:将字符串中的c替换成1234

s = "abcdefghcjclnmc"
s = s.replace("c","1234")      # 将全部的c都替换成123
print(s)

s = s.replace("c","1234",2)    # 将前两个c替换成123
print(s)

3)字符串拼接

方法1:用 + 进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
s = s1 + s2 + s3
print(s)

方法2:在输出的时候,用占位符进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
print("%s%s%s"%(s1,s2,s3)

方法3:结合列表的和join方法进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
s = "".join([s1,s2,s3])

方法4:格式化

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"

print("{}{}{}".format(s1,s2,s3))

print("{str1}{str2}{str3}".format(str1=s1,str2=s2,str3=s3))

4.3 字符串方法

方法1:find

  • 返回指定的字符在字符串中的索引值

  • 如果字符串中没有这个字符,会返回-1

  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止

  • 也可以指定从哪个字符开始查找

  • 格式:str.find("目标",[start])

案例:让用户随意输入一个字符串,字符串中必须有两个c,打印输出这两个字符的索引值

userInput = input("please enter something: ")
num1 = userInput.find("c")
num2 = userInput.find("c",num1+1)
print(num1,num2)

方法2index

  • 返回指定的字符在字符串中的索引值

  • 如果字符串中没有这个字符,会抛出异常

  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止

  • 也可以指定从哪个字符开始查找

  • 格式:str.index("目标",[start])

方法3:join方法

案例:

  • l = ["1","a","qq","d"]
    s = "".join(l)
    print(s)

方法4:大小写转换

  • lower:将内容全部转换为小写

  • upper:将内容全部转换为大写

  • title:将自带一个字母转换为大写,其他全部都自动转换为小写

方法5:split方法

  • 作用:将字符串转换为列表

  • split方法可以指定用哪个字符对字符串进行切割

str = "i love linux and pyhon"
li1 = list(str)
print(li1)

li2 = str.split(" ")
print(li2)

li3 = str.split("o")
print(li3)

方法7:判断

isinstance(变量名,变量类型)   # 如果变量和类型一致,则返回真;否则返回假

五、字典

5.1 字典简介

  • 定义字典:{key:value} 键值对

  • 不可变类型

  • 可以嵌套

  • 键一般都是字符串,值可以是字符串、列表、字典

创建字典

  • li = [] # 空列表

  • str = "" # 空字符串

  • t = () # 空元组

  • d = {} # 空字典

类型转换

  • list() # 将字符串类型转换为列表、将元组类型直接原样转换为列表

  • str() # 将整数、浮点是转换为字符串类型

  • int() # 将字符串类型转换为整数【字符串中仅仅有数字,不能有字母】

  • float() # 将字符串类型转换为浮点数【字符串中仅仅有数字,不能有字母】

  • tuple() # 将列表类型转换为元组

  • dict() # 将对象转换为字典类型

创建字典的两种方法

#方法1:
d1 = {"name": "tom", "age": 18, "addr":"hebei"}
print(type(d1))
print(d1)

#方法2:
d2 = dict(name="tom", age=18, addr="hebei")
print(type(d2))
print(d2)

5.2 字典的操作

  • len( ) 返回对象中键值对的数量

  • 字典名[key] 返回字典中指定的key所对应 的值

  • 字典名[key] = value 修改字典的中的某个键的值或者在字典中添加值

  • del 字典名[key] 删除字典中的值

  • clear 方法 删除字典中的数据

  • key in 字典名 检查字典中是否有这个指定的key【has_keys】

  • pop 方法 从字典中弹出一个键值对

  • copy方法 从字典中复制全部的键值对给一个新的变量

  • item方法 将字典中的键值对转换成元组/列表的一个一个的元素

  • keys 将字典的全部的键构成一个列表/元素

  • values 将字典的全部的值构成一个列表/元素

案例:让用户输入个人基本信息,包括 姓名、电话、住址、年龄,通过字典保存用户的数据信息,当用户输入q的时候,结束输入

结束输入后,打印显示全部的用户名,并要求选择一个名称

然后打印输出这个用户的全部信息,输出信息的格式:用户 xxx,电话是xxx,地址是xxx,年龄是xxx

{
	"tom":{"tel":"136555","addr":"hebei","age":"25"},
	"jerry":{"tel":"136555","addr":"hebei","age":"25"},
	"jack":{"tel":"136555","addr":"hebei","age":"25"}
}

答案

import sys
d1 = {}
li = []
while True:
    name = input("请输入姓名或者按Q退出:")
    name = name.lower()
    if name == "q":
        break

    phoneNum = input("请输入电话: ")
    userAge = input("请输入年龄: ")
    homeAddr = input("请输入地址: ")

    d1[name] = {"tel":phoneNum, "addr":homeAddr ,"age":userAge}
    li.append(name)

n = 1
print("================请根据菜单选择姓名=====================")
for uname in li:
    print("%d %s"%(n,uname))
    n += 1

print("输入q退出:")
userInput = input("请选择:")

if userInput == "q":
    sys.exit(0)

userInput = int(userInput)

uname = li[userInput - 1]

age = d1[uname]["age"]
addr = d1[uname]["addr"]
tel = d1[uname]["tel"]

print("用户%s,电话是%s,地址是%s,年龄是%s"%(uname,tel,addr,age))

六、遍历序列对象

6.1 遍历字符串方法

# type1
str = "abcd hallo world"
for var in str:
    print(var)

# type2
str = "abcd hallo world"
num_len = len(str)
for num in range(num_len):
    print(str[num])

6.2 遍历列表方法

# type1
str = [1,2,8,11,7,3]
for var in str:
    print(var)

# type2
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str[num])

# type3
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str.pop())

# type4
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str[num])
    del str[num]

6.4 遍历字典的方法

1)遍历字典的key

# 方法1
d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
for var in d1:             # 每次循环是将将键赋值给var
    print(var,end=" ")
    print(d1[var])
    
# 方法2
d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.keys()
for var in v:
    print(var)

2)遍历字典的value

d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.values()
for var in v:
    print(var)

3)遍历字典的键值对

d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.items()
for var in v:
    print(var

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值