字符串操作
字符串的定义
被引号引起来的数据
不可变
data_01 = "10"
print(type(data_01))
ip_address = "192.168.183.10"
file_name = "/etc/fstab"
print(type(ip_address), type(file_name))
# 原始字符串, 避免特殊字符被转义的
win_file_name = r"d:\newdir\logo.jpg"
print(win_file_name)
字符串常规操作符
1、+ 拼接 * 重复
print("Python" + "Golang")
print("Python" * 3)
2、len( ) 获取字符串的长度
data_01 = "py thon"
print(len(data_01))
3、判断成员包含关系
in, not in
print("th" in "python")
print("th" not in "python")
print("o" in "python")
print("po" in "python")
4、索引操作
data_01 = "python"
print(data_01[2])
print(data_01[-3])
# 不可变数据类型
data_01[-3] = "K"
print(data_01)
5、切片操作
字符串[起始下标:终止下标]
data_01 = "python"
print(data_01[1:2])
print(data_01[1:3])
print(data_01[1:4])
print(data_01[2:])
print(data_01[-2:])
print(data_01[0:5:2])
print(data_01[::-1])
ip_adress = "192.168.183.1"
print(ip_adress[4:7])
print(type(ip_adress[4:7]))
data = "python"
data = data[0:3] + "K" + data[4:]
print(data)
字符串对象操作方法
1、转换大小写
data_01 = "aBcD"
print(data_01.capitalize())
print(data_01.upper())
print(data_01.lower())
2、判断字符串构成
print("123".isdigit())
print("KKKabc".isalpha())
print("abc1?23".isalnum())
print("ABC".isupper())
print("abc".islower())
3、判断字符串开头、结尾
data_01 = "python"
print(data_01.startswith("pyt"))
print(data_01.endswith("on"))
dir_name = input("目录名称: ")
if dir_name.endswith("/"):
print(dir_name)
else:
dir_name = dir_name + "/"
print(dir_name)
4、去除字符串左右指定的字符
data_01 = " python "
print(data_01.strip())
print(data_01.lstrip())
print(data_01.rstrip())
data_02 = "KpythonK"
print(data_02.strip("K"))
choice = input("确认(y/n)? ").strip().lower()
if choice == "y":
print("执行操作")
else:
print("取消执行")
5、分割字符串
data_01 = "linux mac windows unix"
# 默认按空白分割
print(data_01.split())
print(data_01.split()[-2])
ip_address = "192.168.183.10"
print(ip_address.split("."))
print(ip_address.split(".")[1])
6、字符串替换
file_name = "/opt/logo.png"
new_file_name = file_name.replace("png", "jpg")
print(new_file_name)
7、统计字符的次数
data_01 = "hello python"
print(data_01.count("o"))
遍历字符串
data_01 = "python"
for i in data_01:
print("---> %s" % i)
data_01 = "python"
for i in data_01:
print("%s0" % i, end="")
示例: 生成20位随机字符, 大小写字母、数字、特殊符号
import string
import random
all_char = string.ascii_letters + string.digits + string.punctuation
data = ""
for i in range(20):
data = data + random.choice(all_char)
print(data)
示例: 实现统计行数、单词数
data = """The Apache HTTP Server Project is an effort to develop and maintain
an open-source HTTP server for modern operating systems including UNIX and Windows.
The goal of this
project is to provide a secure, efficient and extensible
server that provides HTTP services in sync with the current HTTP standards."""
print("单词数: %s" % len(data.split()))
print("行数: %s" % len(data.split("\n")))
示例: 接收用户的输入, 判断用户输入是否为合法的变量名称
import string
import sys
first_valid_char = string.ascii_letters + "_"
valid_char = first_valid_char + string.digits
data = input("字符串: ").strip()
# 定义标志位, 1 合法 0 不合法
flag = 1
# 判断首字符不合法
first_char = data[0]
if first_char not in first_valid_char:
print("不合法")
sys.exit()
# 判断后续的字符
for i in data[1:]:
if i in valid_char:
flag = 1
else:
flag = 0
break
# 输出结果
if flag == 1:
print("合法")
elif flag == 0:
print("不合法")