python学习笔记5--常用数据类型「字符串」

字符串

1. 字符串的定义和遍历

字符串是 Python 中最常用的数据类型。我们可以使用引号 ’ 或 " 来创建字符串。

str1 = "hello python"
str2 = '你好啊!"python"'
print(str2)
print(str1[6])

for char in str2:
    print(char)

2. 字符串的统计

hello_str = "hello hello"

# (1)统计字符串长度
print(len(hello_str))

# (2)count(x,start,end)统计某一个小(子)字符串出现的次数
print(hello_str.count("llo"))
print(hello_str.count("abc"))
print(hello_str.count("llo",6,11))

# (3)index(x,start,end)某一个子字符串出现的位置
print(hello_str.index("llo"))
print(hello_str.index("llo",6,11))
# 注意:如果使用index方法传递的子字符串不存在,程序会报错 ValueError: substring not found
# print(hello_str.index("abc"))

3. 字符串的判断方法

# 1. 判断空白字符
space_str = "      "
str1 = "hahahah "
# 如果字符串中只包含空白,则返回 True,否则返回 False.
print(space_str.isspace())
print(str1.isspace())

# 2. 判断字符串中是否只包含数字
# 1> 都不能判断小数
# num_str = "1.1"
# 2> unicode 字符串

# (1)isdecimal方法检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。这种方法只存在于unicode对象。
# 注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可。
str1 = "runoob2016"
str2 = "23443434"
str3 = "1.1"
str4 = "\u00b2"
str5 = "一千零一"
print(str1.isdecimal())  #False
print(str2.isdecimal())  #True
print(str3.isdecimal())  #False
print(str4.isdecimal())  #False
print(str4.isdecimal())  #False

# (2)isdigit方法检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。
print(str1.isdigit())  #False
print(str2.isdigit())  #True
print(str3.isdigit())  #False
print(str4.isdigit())  #True
print(str5.isdigit())  #False

# (3)isnumeric方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
# 指数类似 ² 与分数类似 ½ 也属于数字。
print(str1.isnumeric())  #False
print(str2.isnumeric())  #True
print(str3.isnumeric())  #False
print(str4.isnumeric())  #True
print(str5.isnumeric())  #True

4. 字符串的查找和替换

hello_str = "hello world"

# (1)判断是否以指定字符串开始,是返回True,否则返回False
# 可以指定范围:如果beg 和 end 指定值,则在指定范围内检查。
print(hello_str.startswith("hello"))
print(hello_str.startswith("o",7,11))

# (2) 判断是否以指定字符串结束
print(hello_str.endswith("world"))
print(hello_str.endswith("w",4,7))

# (3) 查找指定字符串
# index同样可以查找指定的字符串在大字符串中的索引
print(hello_str.find("llo"))
print(hello_str.find("llo",1,4))
# index如果指定的字符串不存在,会报错
# find如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))

# (4) 替换字符串
# replace方法执行完成之后,会返回一个新的字符串.	replace(old, new [, max])
# 注意:不会修改原有字符串的内容
print(hello_str.replace("world", "python"))

print(hello_str)

5. 字符串文本对齐

# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐输出以下内容
poem = ["\t\n登鹳雀楼",
         "王之涣",
         "白日依山尽\t\n",
         "黄河入海流",
         "欲穷千里目",
         "更上一层楼"]
print(poem)
for poem_str in poem:
    # (1)strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
    # (2)再使用center方法居中显示文本 str.center(width[, fillchar])    center()方法返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。
    print("|%s|" % poem_str.strip().center(10, " "))

6. 字符串的拆分和拼接

# 假设:以下内容是从网络上抓取的
# 要求:
# 1. 将字符串中的空白字符全部去掉
# 2. 再使用 " " 作为分隔符,拼接成一个整齐的字符串
poem_str = "登鹳雀楼\t 王之涣 \t 白日依山尽 \t \n 黄河入海流 \t\t 欲穷千里目 \t\t\n更上一层楼"

print(poem_str)

# (1)拆分字符串   str.split(str="", num=string.count(str))
# str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
# num -- 分割次数。默认为 -1, 即分隔所有。如果第 num 有指定值,则分割为 num+1 个子字符串。
poem_list = poem_str.split()
print(poem_list)

# (2) 合并字符串 join方法用于将序列中的元素以指定的字符连接生成一个新的字符串
result = ",".join(poem_list)
print(result)

7. 转义字符

# 打印反斜杠符号
print('\\')

# 打印单引号
print('\'')
print("\'")
print("'")

# 打印双引号
print("\"")
print('\"')
print('"')

# 换行
print("123\n456")

# 
print('这是一串添加单引号的\'字符串\'')
print("这边是另一串添加了双引号的\"字符串\"")
上一篇:Python Turtle绘图[难度3星]:24节气倒计时(2.使用字典存储数据)


下一篇:Java_log_按日期滚动和按文件大小滚动