Python基础篇06-python基本数据类型-string

############
# 字符串
############

# 字符串是 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))
posted @ 2019-08-14 17:54  为你编程  阅读(224)  评论(0)    收藏  举报