数据类型之字符串

字符串操作

字符串的定义

​ 被引号引起来的数据

​ 不可变

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("不合法")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值