字符串-基础

假设有一个初始字符串 s = "Hello, Python world!",进行下面的操作:

s = "Hello, Python world!"

1. 字符串长度计算

print(len(s))

2. 计算字符串中"o"字符的个数

print(s.count('o'))

3. 将字符串转换为大写

print(s.upper())

4. 将字符串转换为小写

print(s.lower())

5. 查找"Python"在字符串中的位置

print(s.find("Python")) #输出“P”的索引值

6. 替换字符串中的"world"为"universe"

print(s.replace("world","universe")) #Hello, Python universe!
print(s) #Hello, Python world!没有改变s
# replace 不会改变原 string 的内容。

7. 检查字符串是否以"Hello"开始

# 方法一:
print(s.find("Hello") == 0)
# 方法二:
result=s.startswith("Hello")
print(result)

8. 检查字符串是否以"!"结尾

result=s.endswith("!")
print(result)

9. 以","为分隔符,拆分字符串

# print(s.split(","))

10. 去除字符串首尾的"!"

# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
# 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
print(s.strip('!'))  #Hello, Python world
print(s)  #Hello, Python world!  s未改变

11. 字符串反转

result=s[::-1]
print(result)
print(s)

12. 字符串切片,获取"Python"

index=s.find("Python")
print(s[index:index+6])

13. 将字符串s中的"Hello,"删除

result=s.replace("Hello,","") #替换
print(result.lstrip()) #去除左侧空格

14. 拼接两个字符串 "Hello," 和 "World!"

str1="Hello,"
str2="World!"
str3=str1+str2
print(str3)

15. 使用f-string合并字符串和数字2021

print(f'{str3}2021')

16. 找出'o'第一次出现的位置

result=s.find('o')
print(result)

17. 找出'e'最后一次出现的位置

#我的写法
s1="sfs lekj rb fqie jdnkej"
result=s1[::-1].find('e')
print(result)   #1
# 正确答案
result=s1.rfind('e')
print(result)

18. 计算字符串中空格的数量

result=s1.count(" ")
print(result)

19. 使用循环遍历字符串中的每个字符

for x in s1:
    print(x,end="")

20. 将字符串转为"列表"形式,每个字符为一个列表元素

# 方法一:
# result=[]
# for x in s1:
#     if x != " ":
#         result.append(x)
# print(result)

#方法二
result=[x for x in s1 if x != " "]
print(result)

😢21. 字符串排序(提示:先转换为列表)

result.sort()
s2="".join(result)
print(s2)  #bdeeeffijjjkklnqrss
#Python 的 list.sort() 方法会直接修改列表,但返回值是 None,而不是排序后的列表。
# sorted() 函数(返回新列表,不修改原列表)
#😢s2="".join(result)什么意思
# s2="".join(result)
# print(s2)  #bdeeeffijjjkklnqrss
#
# s2=",".join(result)
# print(s2)  #b,d,e,e,e,f,f,i,j,j,j,k,k,l,n,q,r,s,s
# 每个字符串元素用指定的分隔符连接起来,形成一个新的字符串。

22. 判断字符串是否为数字

#❔判断字符串是否为纯数字
 s="wehiuh1dheirbehk"
 result=s.isdigit()
 print(result)
 如果 string 只包含数字则返回 True 否则返回 False.

#❔判断字符串是否包含数字
for x in s:
     result=x
     if result.isdigit()==True:
        print('字符串中有数字')
        break
     else:continue

# 进阶一下
s = "abc"
has_digit = False
for x in s:
    if x.isdigit():
        print('字符串中有数字')
        has_digit = True
        break
if not has_digit:
    print('字符串中没有数字')

23. 将列表 ['Hello,', 'Python', 'World!'] 使用空格连接为一个字符串

list1=['Hello,', 'Python', 'World!']
result=" ".join(list1)
print(result)

24. 使用%操作符格式化字符串

num = 100
formatted_str = "Number: %d" % num
print(formatted_str)  # 输出: "Number: 100"

25. 检查字符串是否全部为小写字母islower()

a=result.islower()
print(a)

26. 检查字符串是否全部为大写字母isupper()

a=result.isupper()
print(a)

27. 将数字列表 [1, 2, 3] 转换成字符串,元素之间用-连接

list3="-".join(str(x) for x  in [1,2,3])  #join()括号里面必须传入字符串
print(list3)

28. 找出字符串中所有的"o"的位置

s = "hello world"
positions = [i for i, char in enumerate(s) if char == 'o']
print(positions)  # 输出: [4, 7]

29. 替换字符串中的第一个"o"为"O"

#我的写法
index=s.find("o")
if index!= -1:
    s[index] = str(0)  # Python 中字符串是不可变对象,无法直接通过索引赋值来修改
    print(s)
#正确答案:
s = "hello world"
first_index = s.find('o')
if first_index != -1:
    s = s[:first_index] + 'O' + s[first_index+1:] 
#相当于字符串重新拼接
print(s)  # 输出: "hellO world"

30. 字符串插入操作

向字符串指定位置插入子字符串"amazing "

s = "Python is cool"
position = 10  # 在索引10的位置插入
new_s = s[:position] + "amazing " + s[position:]
print(new_s)  # 输出: "Python is amazing cool"

字符串-进阶

4. 检查回文: 检查字符串s2 = "A man, a plan, a canal, Panama!" 在忽略大小写、标点和空格的情况下是否为回文字符串。

#回文(Palindrome)是一种无论正向还是反向读取都相同的字符串
s2 = "A man, a plan, a canal, Panama!"
s1="".join(x for x in s2 if x.isalnum()).lower()
print(s1)
result=s1==s1[::-1]
print(result)

8. 切片与拼接: 将s 切分为两部分,其中第一部分包含前半部分的字符,第二部分包含后半部分的字符,然后将这两部分以相反顺序拼接起来。

length=len(s)
mid=length//2
# 切片:前半部分和后半部分
first_half = s[:mid]
second_half = s[mid:]
result = second_half + first_half
print(f"原始字符串: {s}")
print(f"处理后的字符串: {s}")
print(f"反转拼接结果: {result}")

9. 创建字符串列表: 使用列表生成式,根据字符串s 创建一个列表,其中包含s 的每个单词的首字母大写形式。

s = "Python is great great!"
result=[x.capitalize() for x in s.split(" ")]
print(result)

10. 字符替换加密: 编写一个函数encrypt,使用字典 a: m, b: n, ... z: l} 的对应规则加密字符串s3 = "encryption"

def encrypt(s):
    # 生成加密字典(a→m, b→n, ..., z→l)
    import string
    letters = string.ascii_lowercase
    encryption_dict = {letters[i]: letters[(i + 12) % 26] for i in range(26)}
    
    # 加密字符串
    encrypted = []
    for char in s:
        if char.islower():
            encrypted.append(encryption_dict[char])
        elif char.isupper():
            encrypted.append(encryption_dict[char.lower()].upper())
        else:
            encrypted.append(char)
    return ''.join(encrypted)

# 测试
s3 = "encryption"
print(encrypt(s3))  # 输出: "qibwxaqwl"
posted on 2025-07-17 13:59  MyLover_Jinsol  阅读(41)  评论(0)    收藏  举报