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字符串的内置方法名称内置方法说明示例结果
1upper()

全部大写

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

全部小写

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

是否以指定内容开头

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

是否是数字字符串

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

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

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

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

"张三 李四 王五 赵六 张三".count("张三")
2
12replace()将需要替换的内容替换为新的内容
"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)*2print(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}")

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/345774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络ppt和课后题总结(下)

常用端口总结 计算机网络中,端口是TCP/IP协议的一部分,用于标识运行在同一台计算机上的不同服务。端口号是一个16位的数字,范围从0到65535。通常,0到1023的端口被称为“熟知端口”或“系统端口”,它们被保留给一些标准…

springboot高校运动会信息管理系统设计与实现-计算机毕业设计源码92968

摘 要 本论文介绍了一个高校运动会信息管理系统的设计和实现过程。首先是高校运动会的需求分析和可行性分析,通过比较运动会的各个工作流程,确定了系统的数据流程和数据库结构,然后介绍了高校运动会信息管理系统开发所使用的软件开发工具&…

Clo3D导出服装动画,使用Unity3D展示

1.前言 Clo3D是一款应用于时装行业的3D服装设计软件,其强大的布料模拟算法可在3D空间中实现设计、制版、试衣和走秀,大幅提升数字作品逼真度和制作效率。为了让服装动画效果展示在Unity3D上模拟效果,需要Clo3D模拟出逼着的衣服动画。总体流程为Clo3D - Mixamo -Blen…

【算法篇】求最长公共前缀JavaScript版本

题目描述 给你一个大小为 n 的字符串数组 strs &#xff0c;其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀&#xff0c;返回这个公共前缀。 数据范围&#xff1a; 数据范围:0<n<5000&#xff0c;0<len(strsi)< 5000 进阶:空间复杂度 O(1)&a…

金融数据中心能力建设指引

金融数据中心能力建设指引 金融数据中心能力建设指引旨在通过高标准的基础设施建设、完善的数据管理、强大的信息安全防护和业务连续性规划&#xff0c;确保数据中心具备高效、安全、可靠的运行能力&#xff0c;支持金融业务的稳定发展。该指引强调技术创新、标准化管理、人才…

【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、深度学习在医学影像诊断中的突破1. 技术原理2. 实际应用3. 性能表现 三、深度学习在医学影像诊断中的惊人表现1. 提高疾病诊断准确率2. 辅助制定治疗方案 四、深度学习对医疗行业的影响和推动作用 一、引言 随着…

Java加密体系结构参考指南-Java Cryptography Architecture

本文是从英文的官网摘了翻译的&#xff0c;用作自己的整理和记录。水平有限&#xff0c;欢迎指正。版本是&#xff1a;22 原文地址&#xff1a;https://docs.oracle.com/en/java/javase/22/security/java-cryptography-architecture-jca-reference-guide.html#GUID-815542FE-CF…

web入门(1)---6.10

总结&#xff1a; 多做一点NSSCTF的新手赛&#xff0c;了解基本题型&#xff0c;然后打牢基础知识 谢队讲解 攻防世界 Web入门题 讲解_哔哩哔哩_bilibili 题目来源&#xff1a;攻防世界新手区 1.view_source 查看源代码 2.get_post 收获&#xff1a; get方法是直接在url…

群体优化算法----火山爆发算法介绍以及离散优化Pareto最优解示例

介绍 火山爆发算法&#xff08;Volcano Eruption Algorithm&#xff0c;VEA&#xff09;是一种新兴的群智能优化算法&#xff0c;其灵感来源于火山爆发的自然现象。火山爆发算法模拟了火山爆发过程中熔岩流动和喷发的行为&#xff0c;以寻找全局最优解。这种算法利用了火山爆发…

Linux下打印封装_统计函数执行时间_线程号时间戳打印

统计函数执行时间&#xff08;多线程环境下统计结果不准&#xff09; // 无返回值 #define FUNC_EXEC_TIME_NORET(fun,promote) ({ \ unsigned long long timeDelta 0; \ struct timespec t1 {0}; \ struct timespec t2 {0}; \ clock_gettime(CLOCK_MONOTONIC, &t1); \ …

度小满金融大模型的应用创新

XuanYuan/README.md at main Duxiaoman-DI/XuanYuan GitHub

【MySQL】(基础篇四) —— 检索数据

检索数据 检索数据是我们使用数据库时进行最多的操作&#xff0c;其中包括了检索条件、排序、过滤、分组等等。我会在后续的多篇博客中为你进行详细地介绍它们。 这次先让我们来粗略的了解一下SELECT&#xff0c;为了使用SELECT检索表数据&#xff0c;必须至少明确两点信息—…

汇编:结构体

在32位汇编中&#xff0c;结构体&#xff08;structures&#xff09;用于组织和管理复杂的数据类型&#xff0c;结构体可以包含多个不同类型的数据项&#xff08;成员&#xff09;&#xff1b;在MASM&#xff08;Microsoft Macro Assembler&#xff09;中&#xff0c;使用结构体…

Linux入门学习(2)

1.相关复习新的指令学习 &#xff08;1&#xff09;我们需要自己创建一个用户&#xff0c;这个用户前期可以是一个root用户&#xff0c;后期使用创建的普通用户 &#xff08;2&#xff09;文件等于文件内容加上文件属性,对于文件的操作就包括对于文件内容的操作和文件属性&…

Polar Web【困难】上传

Polar Web【困难】上传 Contents Polar Web【困难】上传探索&思路&效果进入环境绕过过程Webshell连接 EXPPayload 总结 探索&思路&效果 本题的主题可见为文件上传&#xff0c;详情在破解的过程中逐步发掘&#xff1a; 进入环境&#xff0c;为一个文件上传功界面…

html5实现个人网站源码

文章目录 1.设计来源1.1 网站首页页面1.2 个人工具页面1.3 个人日志页面1.4 个人相册页面1.5 给我留言页面 2.效果和源码2.1 动态效果2.2 目录结构 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/139564407 ht…

HCIP-Datacom-ARST自选题库_10_其他判断【23道题】

1.端到端时延等于路径上所有处理时延与队列时延之和。 2.部署PPP Multilink之后&#xff0c;数据将根据源地址和目的地址均匀的分配在各条成员链路上。 3.流镜像分为本地流镜像和远程流镜像两种方式。√ 4.IP报文中用Tos字段进行Q0S标记&#xff0c;Tos字段中是使用前6bit来…

【数据结构】排序(上)

个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序&#xff08;1&#xff09;基本思想&#xff08;2&#xff09;代码实现&#xff08;3&#xff09;时间复杂度&#xff08;4&#xff09;空间复杂度 2…

基于小波样条框架的一维时间序列信号降噪方法(MATLAB R2018A)

1952年&#xff0c;DUFFIN在研究非调和Fourier级数时引入了Hilbert空间中框架的概念&#xff0c;然而并没有引起很大的反响。1986年&#xff0c;DAUBECHIES研究发现利用框架可以将L2(R)中的函数展开成类似标准正交基的级数&#xff0c;并且用框架研究函数时所需的条件要比用标准…

Vue 2看这篇就够了

Vue 2 技术文档 Vue.js 是一款用于构建用户界面的渐进式框架。与其他重量级框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。而 Vue.js 2&#xff08;以下简称 Vue…