############
# 字符串
############
# 字符串是 Python 中最常用的数据类型。使用引号('或")括起来来创建字符串。
# 1、定义方式:
var1 = 'Hello World!'
var2 = "Hello World!"
# 2、字符串截取
# 字符串的截取的语法格式:变量[头下标:尾下标]
# 索引值以 0 为开始值,-1 为末尾字符。从头下标(包括索引值为头下标的字符)开始截取到尾下标(不包括索引值为尾下标的字符)
var = 'abcdefghijklnm'
print (var) # 输出字符串
print (var[4]) # 输出字符串第五个字符
print (var[-1]) # 输出最后一个字符
print (var[-2]) # 输出倒数第二个字符
print (var[0:-1]) # 输出第一个到最后一个(不包括最后一个)的所有字符
print (var[:4]) # 输出字符串第五个字符之前的所有字符
print (var[2:5]) # 输出从第三个开始到第五个(不包括第五个)的字符
print (var[2:]) # 输出从第三个开始的后的所有字符
print (var * 2) # 输出字符串两次
print (var + "TEST") # 连接字符串
# 3、字符串中的转义符
# Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串
print ("abcd\
efg") # \ (在行尾时)续行符
print("abcdef\\g") # \\ 反斜杠符号 == "\"
print("abcde\'f\'g") # \' 单引号
print("abcde\"f\"g") # \" 双引号
print("abcdef\bg") # \b 退格,删除\b的前一个字符
print("abcdef\000g") # \000 空
print("abcdef\ng") # \n
print("abcdef\tg") # \t 横向制表符
print(r"abcde\n\t\''\"") # 字符串前面添加一个 r,表示原始字符串,原样输出
# 4、字符串运算
var3 = "hello"
var4 = "python"
print("var1+var2的输出结果为:", var1 + var2) # + 字符串连接
print(var1 * 2) # * 重复输出字符串
print(var1[1]) # [] 通过索引获取字符串中字符
print(var1[1:3]) # [a:b] 截取字符串中的一部分
if "h" in var1: # in 成员运算符 - 如果字符串中包含给定的字符返回 True
print(" h 存在变量var1中")
else:
print(" h 不存在变量var1中")
if "o" not in var1: # not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
print(" o 不存在变量var1中")
else:
print(" o 存在变量var1中")
name = "Pythona"
print("*" * 20)
print(name.center(20, "*")) # 字符串居中,总长度为20,不够则补*
print("*" * 20)
print(name.ljust(20,"*")) # 指定长度,原字符串靠左,不够补指定字符
print(name.rjust(20,"*")) # 指定长度,原字符串靠右,不够补指定字符
print(name.zfill(20)) # 指定长度,不够在原字符串前面补0
# 查找统计
count = name.count("a") # 统计字符串中字符串a出现的次数
print(count)
index = name.index("a") # 字符串下标从0开始,查找字符串a在字符串中下标,找不到报错
print(index)
find = name.find("z") # 查找a在字符串中的下标,如果找不到,返回-1
print(find)
# 字符串常用方法
# name.strip() # 去掉字符串前后空白(中间空白不管),不修改原字符串,返回一个新字符串
print(" 张三 ")
print(" 张三 ".strip()) # 去掉首尾空白
print(" 张三 ".lstrip()) # 去左侧空白
print(" 张三 ".rsplit()) # 去右侧空白
# 扩展-去掉字符串中间的空白
name = "Hello World"
# 方式1:
print(name.replace(' ', ''))
# 方式2:
print(''.join(name.split()))
# 方式3:
import re
str_info = re.compile(' ')
print(str_info.sub('', name))
print("张三".replace("张","李")) # 将字符串中的"张"全部替换为"李"
print("我是中国人".startswith("我")) # 判断字符串是否以"我"开头
print("我是中国人".endswith("人")) # 判断字符串是否以"人"结尾
print("我是中国人".endswith("人",-1)) # 判断字符串是否以"人"结尾 起始位置最后一位,这样也能取到
print("我是中国人".endswith("人",0,5)) # 判断字符串是否以"人"结尾 从下标[0开始到下标5)结束
print("我是中国人".isdigit()) # 判断字符串是否为纯数字
print("hello world 20".isnumeric()) # 判断是否只包含数字字符
print("hello world".isalpha()) # 判断字符串是否全部为字母
print("hello world".isalnum()) # 判断字符串是否包含字母和数字,只要包含一种就返回true
print("hello world".capitalize()) # 首字母大写
print("hello world".upper()) # 字符串转大写
print("HELLO WORLD".lower()) # 字符串转小写
print("hello world".split(",")) # 以指定字符分隔字符串,并返回list列表
temp_list = ["a","b","c"]
print("-".join(temp_list)) # 用- 将list中每个元素连接成字符串
# 字符串模块
import string
print(string.ascii_lowercase) # 获取所有小写英文字母
print(string.ascii_uppercase) # 获取所有大写英文字母
print(string.digits) # 获取所有的数字0到9
print(string.ascii_letters) # 获取所有大小写字母
print(string.punctuation) # 获取所有的特殊字符
# 字符串内建函数
name = "hello world"
print(len(name)) # 获取字符串长度
name = "abcdefghi"
print(max(name))
print(min(name))