Python基础——字符串

一、Python的字符串简介

        Python中的字符串是一种计算机程序中常用的数据类型【可将字符串看作是一个由字母、数字、符号组成的序列容器】,字符串可以用来表示文本数据。

        通常使用一对英文的单引号(')或者双引号(")包含起来;其中Python还支持使用一对三引号来表示多行字符串;如下图所示:

# 方式1
str1= "你好 牛奶咖啡!"
print(str1)

# 方式2
str2 = '你好 测试字符串!'
print(str2)

# 方式3
str3 = """这是一个Python课程
讲解的字符串类型
可以多行表示
 """
print(str3)
str4 = '''
    1.  购买道具
    2.  攻击
    3.  逃跑
    4.  退出
'''
print(str4)

二、Python字符串的操作

2.1、Python转义符

Python转义符
序号 Python转义符 说明
1 \' 表示单引号【'】
2 \" 表示双引号【"】
3 \\ 表示反斜杠【\】
4 \n 表示换行
5 \t 表示水平制表符【代表着四个空格,也就是一个tab,它的主要作用是对齐表格数据的各列,使得输出更易于阅读和理解】
6 \r 表示将光标的位置回退到本行的开头位置
# 转义符 \
# 1、将某些普通符号给于特殊的功能
# 2、将一些特殊功能的符号普通化
import time

# \":表示双引号【"】
str1 = "He's my teacher!\"测试\""
print(str1)

# \':表示单引号【'】
str2 = 'He\'s my teacher!'
print(str2)

# \\表示反斜杠【\】
str3 = "F:\\LearnProjects\\Python\\getRandom.py"
print(str3)

# \n:表示换行
str4 = "\nI am CoffeeMilk\nmy age is 26\n"
print(str4)

# \t:表示水平制表符【代表着四个空格,也就是一个tab,它的主要作用是对齐表格数据的各列,使得输出更易于阅读和理解】
str5 = "序号\t姓名\t年龄\t性别"
print(str5)
str6 = '''132\t张三\t\t23\t男
133\t杨新宇\t24\t男
134\t魏思思\t23\t女
'''
print(str6)

# \r 表示将光标的位置回退到本行的开头位置
str7 = "\r字符串\r测试回车符"
print(str7)

# \r实现一个进度效果
for i in range(1,11):
    str71 = '\r' + '#' * i+f'{i*10}%'
    time.sleep(0.26)
    print(str71, sep="", end="")
print("\n打印结束")


# \r实现删除效果
str72 = "等闲识得东风面,万紫千红总是春。"
strLen = len(str72)
for i in range(strLen):
    print("\r" + str72[:strLen-1-i] + "|", end="")
    time.sleep(0.36)

# \r实现本地时间实时显示
while True:
    curTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    time.sleep(0.1)
    print(f"\r当前时间为:{curTime}", end="")

2.2、Python字符串格式化和输入输出

Python字符串的格式化和输入输出
序号 Python字符串格式化和输入输出 说明
1

字符串格式化【占位符】

(%占位符 、str.format())

  • %s:字符串类型

  • %d:十进制整数类型

  • %f:浮点数类型

  • %x:十六进制整数类型

  • %o:八进制整数类型

  • %r:原始字符串类型(带引号)

2 字符串格式化【f-string变量插入】 是Python3.6新引入的一种字符串格式化方法;主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
3 字符串输入【input】 使用input()函数来获取输入内容
4 字符串输出【print】 使用print()函数来展示输出内容
name = "牛奶咖啡"
age = 26
height = 180

# 方法1:%占位符
print("我的名字是%s,年龄%d,身高是%dcm" % (name, age, height))

# 方法2:str.format()
print("我的名字是{},年龄{},身高是{}cm".format(name, age, height))

# 方法3:f-string
print(f"我的名字是{name},年龄{age},身高是{height}cm")

运行结果如下:

 

# 使用input()函数来获取输入内容
name=input("请输入你的名字:")
print(name)
age=input("请输入你的年龄:")
print(age)
print(f"姓名:{name} 年龄:{age}")

# 输入的内容转为数字 int(需转换的值)
num1 = input("请输入数字1:")
num2 = input("请输入数字2:")
result=num1+num2
print(f"{num1}类型是{type(num1)} {num2}类型是{type(num2)} {num1}+{num2}={result}")
num1_Int = int(num1)
num2_Int = int(num2)
result2 = num1_Int + num2_Int
print(f"{num1_Int}类型是{type(num1_Int)} {num2_Int}类型是{type(num2_Int)} {num1_Int}+{num2_Int}={result2}")

# 输出的时候可以指定内容分割符号
x = 1000
print(100, "你好", x)
print(100, "你好", x, sep="_")

# 输出的时候可以指定是否换行(不换行)
print(100, "你好", x, end="\t")
print(100, "你好", x, end="\t")
print(100, "你好", x, end="\t")

 运行结果如下:

2.3、Python字符串序列操作

         字符串属于序列类型(序列是指:一块可以存放多个值的连续内存空间,且这些值按照一定顺序排列,可以通过每个值所在的位置编号访问)。

Python字符串的序列操作
序号 Python字符串的序列操作名称 说明
1 索引
2 切片
3 长度(len())
4 判断(in)
5 拼接(+、*)

 

str = "你好,欢迎来到Pyhton世界"

# 1、索引操作:字符串[索引],查询字符
print(str[1])
print(str[-1])
print(str[6]+"\n")

# 2、切片操作:字符串[开始索引:结束索引] 顾头不顾尾
print(str[3:4])
print(str[3:5])
print(str[3:-1])
print(str[3:])
print(str[:3])
print("获取所有字符串内容:", str[:])
print("负索引切片:", str[-8:])
print("从左向右切:", str[0::1])
print("从左向右切:", str[4:16:2])
print("从右向左切(翻转):", str[9::-1])
print("从右向左切(完全翻转):", str[::-1], "\n")

# 3、字符串拼接
name = "咖啡"
age = "26"
result = "我的名字是:"+name+" 我的年龄是:"+age
print(result)
result2 = f"我的名字是:{name} 我的年龄是:{age}\n"
print(result2)

# 4、字符串的乘法
print("***")
print("*"*10)
print("欢迎"*3, "\n")

# 5、字符串的长度
str12 = "Hello world"
print(f"【{str12}】字符串的长度是:{len(str12)}")
str13 = "你好,中国!"
print(f"【{str13}】字符串的长度是:{len(str13)}\n")

# 6、针对容器类型:in 判断,判断某个内容是否存在
str14 = "你好,世界"
print(f"【世】属于【{str14}】", "世" in str14)
print(f"【你好】属于【{str14}】", "你好" in str14)
print(f"【测试】属于【{str14}】", "测试" in str14)

运行结果如下:

三、Python字符串的内置方法

Python字符串内置方法
序号 Python字符串的内置方法名称 内置方法说明 示例 结果
1 upper()

全部大写

"Hello World".upper() "HELLO WORLD"
2 lower()

全部小写

"Hello World".lower() "hello world"
3 startswith()

是否以指定内容开头

"张三".startswith("张") True
4 endswith() 是否以指定内容结尾 "a.mp3".endswith(".jpg") False
5 isdigit()

是否是数字字符串

"36".isdigit() True
6 strip() 去除字符串首尾的空格或换行符号
" hi,Milk  \n".strip()
"hi,Milk"
7 join() 将多个字符串连接在一起
";".join(['哈尔滨', '深圳', '内蒙古'])
"哈尔滨;深圳;内蒙古"
8 split() 将字符串按照某个字符分割;默认按照空格分割
"哈尔滨-深圳-内蒙古".split("-")
['哈尔滨', '深圳', '内蒙古']
9 find()

搜索指定字符串存在在返回搜索内容所在位置的开始索引,没有找到则返回-1

"你好,张三中国欢迎你!".find("张三")
3
10 index() 搜索指定字符串存在在返回搜索内容所在位置的开始索引,没有找到则直接报错
"你好,张三中国欢迎你!".index("张三")
3
11 count()

统计指定字符串出现的次数

"张三 李四 王五 赵六 张三".count("张三")
2
12 replace() 将需要替换的内容替换为新的内容
"I am coffeemilk".replace("coffee", "tea")
"I am teamilk"
# 数据类型的内置方法:数据类型对象.方法名(参数)

# 1、字符串全部转为大写或小写方法
str1 = "Hello World"
str1_upper = str1.upper()
print(f"{str1} 全部转为大写是:{str1_upper}")
print(f"{str1} 全部转为小写是:{str1.lower()}\n")

# 2、startswith_表示字符串是否以什么开头 endwith_表示字符串是否以什么结尾 方法
str2 = "apple banana peach orange"
startStyle = "apple"
startStyle2 = "ap"
startStyle3 = "bana"
print(f"【{str2}】字符串是否以【{startStyle}】开头:{str2.startswith(startStyle)}")
print(f"【{str2}】字符串是否以【{startStyle2}】开头:{str2.startswith(startStyle2)}")
print(f"【{str2}】字符串是否以【{startStyle3}】开头:{str2.startswith(startStyle3)}\n")
str21 = "张三"
startStyle22 = "张"
startStyle23 = "杨"
print(f"【{str21}】字符串是否以【{startStyle22}】开头:{str21.startswith(startStyle22)}")
print(f"【{str21}】字符串是否以【{startStyle23}】开头:{str21.startswith(startStyle23)}\n")

url1 = "http://www.baidu.com/test/image/a.jpg"
endStyle = ".jpg"
endStyle2 = ".mp3"
print(f"【{url1}】地址内容是否以{endStyle}格式结尾:{url1.endswith(endStyle)}")
print(f"【{url1}】地址内容是否以{endStyle2}格式结尾:{url1.endswith(endStyle2)}")

运行结果如下:

# 1、isdigit:判断输入的内容是否是数字字符串
str = input("请输入数字:")
if str.isdigit():
    print(f"{str} 是数字")
    num = int(str)*2
    print(f"{str}的2倍是:{num}")
else:
    print(f"当前输入的{str}不是数字,请检查后重试")

# 2、strip:去除字符串首尾的空格或换行符
user = input("请输入用户名:")
print(f"【{user}】字符串的长度是:{len(user)}")
user = user.strip()
print(f"剔除【{user}】字符串前后的空格或换行符后的长度是:{len(user)}")

运行结果如下:

 

# 1、split:字符串分割
citys = "北京 上海 广州 重庆 哈尔滨 深圳 内蒙古"
result = citys.split(" ")
print(f"【{citys}】字符串共包含的城市为:{result}\n")

# 2、join:拼接内容
result2 = ";".join(result)
print(f"【{result}】内容拼接后的结果是:{result2}\n")

# 3、find:查找内容存在字符串的开始索引(没有找到返回-1)
str = "你好,张三中国欢迎你!"
needFindStr = "张三"
result_find = str.find(needFindStr)
print(f"【{str}】字符串中查找【{needFindStr}】结果是:{result_find}")
needFindStr2 = "李四"
print(f"【{str}】字符串中查找【{needFindStr2}】结果是:{str.find(needFindStr2)}")

# 4、index:查找内容是否存在(存在则返回对应的开始索引位置,查找不到则直接报错)
reslult_index = str.index(needFindStr)
print(f"【{str}】字符串中查找【{needFindStr}】结果是:{reslult_index}\n")
# print(f"【{str}】字符串中查找【{needFindStr2}】结果是:{str.index(needFindStr2)}")

# 5、count:计数
names="张三 李四 王五 李四 赵六 张三"
find_str="张三"
print(f"【{names} 】字符串中的【{find_str}】共出现了【{names.count(find_str)}】次")

# 6、replace:替换
info = "I am coffeemilk"
old = "coffee"
new = "tea"
result_info = info.replace("coffee","tea")
# info = info.replace("coffee","tea")
print(info)
print(f"【{info}】字符串替换【{old}】为【{new}】后是:{result_info}")
# print(f"【{info}】替换【{old}】为【{new}】后是:{info}")


运行结果如下:

相关推荐

  1. Python基础-字符串

    2024-06-10 01:28:05       36 阅读
  2. python爬虫基础----字符串高级

    2024-06-10 01:28:05       15 阅读
  3. Python 千题 —— 基础篇】字符串拼接

    2024-06-10 01:28:05       39 阅读
  4. python字符串编码解码基础知识

    2024-06-10 01:28:05       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 01:28:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 01:28:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 01:28:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 01:28:05       18 阅读

热门阅读

  1. 1731. 每位经理的下属员工数量

    2024-06-10 01:28:05       9 阅读
  2. btstack协议栈实战篇--GAP LE Advertisements Scanner

    2024-06-10 01:28:05       11 阅读
  3. WooYun-2016-199433 -phpmyadmin-反序列化RCE-getshell

    2024-06-10 01:28:05       10 阅读
  4. Vue2事件处理

    2024-06-10 01:28:05       11 阅读
  5. JVM内存分析之JVM分区与介绍

    2024-06-10 01:28:05       8 阅读
  6. 重写mybatisPlus自定义ID生成策略

    2024-06-10 01:28:05       11 阅读
  7. 【架构分析】GPU执行GEMM矩阵运算实例演示

    2024-06-10 01:28:05       9 阅读
  8. RoLabelImg下载及旋转目标检测数据标注

    2024-06-10 01:28:05       8 阅读