python基础—字符串操作

2023-11-17

(1)字符串:

Python内置了一系列的数据类型,其中最主要的内置类型是数值类型、文本序列(字符串)类型、序列(列表、元组和range)类型、集合类型、映射(字典)类型。本章在介绍字符串、列表、元组和range类型共有的通用序列操作方法的基础上,详细讲解字符串类型的创建、表示、字符串遍历、字符串操作、字符串处理方法和格式化等内容。并以random库的一些应用为例讲授字符串的实际应用,同时进一步加强流程控制语句的相关知识的应用训练。

(2)字符串通用操作

字符串使用一对单引号(’ ‘)、双引号(" ")或三引号
(’‘’ ‘’'或"“” “”")包围起来的0个或多个字符

s0= 'Hello World!'
Hello World!
Hello World!'
s1= "Hello World!"
s2= ''# 空字符串,长度为0
s3= ''# 空格字符串,长度为1
print(len('Hello world'))  # 11
字符串的长度len()
print(len(''))             # 0

字符串包含的全部字符的数量
空字符串的长度为0

print(max('Hello,2021!'))  # o

字符串的最大值max()和min()

返回字符串中Unicode编码值最大的字符

print(min('Hello,2021!'))  # !

字符串称为字符序列
Hello Python!'长度13
每个字符有正向和逆向两种序号

在这里插入图片描述

(3)索引

在这里插入图片描述

s = 'Hello Python!'
print(s[0])  # H
print(s[4])  # o
print(s[-1])  # !
print(s[-7])  # P

索引s[i]通过序号获取对应的字符

在这里插入图片描述

s = 'Hello Python!'
print(s[13])  #IndexError: string index out of range
索引值超出序号范围时,将会产生“索引超出范围”的错误
空字符串索引也会产生“索引超出范围”的错误
print(''[0])  #IndexError: string index out of range

索引s[i]通过序号获取对应的字符

在这里插入图片描述

s = 'Hello Python!'
TypeError: string indices must be integers
索引值为浮点数时,将会产生“字符串索引必须为整数”的错误
print(s[10 / 5])          
# 10/5=2.0
print(s[10.0 // 5])       
# 10.0//5 = 2.0
print(s[int(10.0 // 5)])  # l
(4)切片

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

s = 'Hello Python!'
print(s[6:12])   # 从序号6到12(不包括12)的字符串'Python'

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

s = 'Hello Python!'
print(s[-3:-1])  # 从序号-3-1(不包括-1)的字符串'on'
可用逆向序号切片

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

s = 'Hello Python!'
print(s[6:-1])   #从序号6-1(不包括-1)的字符串'Python'
可以正向和逆向序号混用切片

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

start 省略时从序号0 开始
print(s[:5])     
# 从序号0到5(不包括5)的字符串'Hello'
s = 'Hello Python!'

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

print(s[6:])     
# 从序号6向后到字符串结束的字符串'Python!'
end 省略时,到最后一个字符结束,包括最后一个字符
s = 'Hello Python!'

切片: s[start: end]返回序号在start和end之间的字符串

在这里插入图片描述

print(s[:])     
# 从字符串开始到结束进行切片'Hello Python!'
start和end 都省略时,获得整个字符串的一个拷贝
s = 'Hello Python!'

切片: s[start: end: step]每step个字符切取一个字符拼接为字符串

在这里插入图片描述

print(s[0::2])    
# 步长为2,序号为偶数的字符'HloPto!'
正数表示正向切片
s = 'Hello Python!'

切片: s[start: end: step]每step个字符切取一个字符拼接为字符串

在这里插入图片描述

print(s[-1::-1])   # 步长为-1'!nohtyP olleH'
负数表示逆向切片
s = 'Hello Python!'
print(s[::-1])   
# 步长为-1'!nohtyP olleH'
字符串逆序

切片: s[start: end: step]每step个字符切取一个字符拼接为字符串

在这里插入图片描述

print(s[-1::-2])    # 步长为-2,逆向序号为奇数的字符'!otPolH'
负数表示逆向切片
s = 'Hello Python!'
(5)字符串的拼接

字符串的拼接s +t

'2021年7月'
print('2021' + '年' + '7' + '月')

将输入的电话号码中间4位用*代替输出

phone = input()     
# 13297966288
private = phone[:3] + '****' + phone[7:]
print(private)      
# 132****6288

字符串的重复s * n 或n * s

print('=' * 10)
# '='重复10print('欢迎' * 3)# n 为正整数
print('=' * 10)
# n为负数时结果为空字符串
==========
欢迎欢迎欢迎
==========
print('=' * 10.5)
# n为浮点数时触发异常
TypeError: can't multiply sequence by non-int of type 'float'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python基础—字符串操作 的相关文章

  • Python OpenCV:检测大体运动方向?

    我仍在编写一个书籍扫描脚本 现在 我所需要的只是能够自动检测翻页 这本书占据了 90 的屏幕 我使用一个粗糙的网络摄像头进行运动检测 所以当我翻页时 运动方向基本上是同一个方向 我修改了一个运动跟踪脚本 但导数却无济于事 usr bin e
  • 安装 mariadb 包时找不到 mariadb_config [重复]

    这个问题在这里已经有答案了 我尝试在 ubuntu 20 04 上安装 mariadb 软件包 并收到以下消息 Collecting mariadb Using cached mariadb 1 1 3 tar gz 80 kB Prepa
  • Python Flask 将基于经纬度的半径过滤器计算转换为 SQLalchemy

    我目前正在尝试实现半径的计算 我有一个带有房间的数据库 每个房间都有不同的地址以及纬度和经度 用户可以在搜索表单中输入城市名称来搜索该城市的房间 这里我想显示一个结果页面 其中包含搜索城市的房间 搜索城市半径60公里内其他城市的所有房间 H
  • 多个 aiohttp Application() 在同一进程中运行?

    Can two aiohttp web Application 对象在同一进程中运行 例如在不同的端口上 我看到了一堆 aiohttp 代码的示例 例如 from aiohttp import web app web Application
  • 如何将 Pandas DataFrame 中加载的嵌入转换为 Gensim 模型?

    我有一个 DataFrame 其中索引是单词 并且有 100 个带有浮点数的列 这样对于每个单词 我将其嵌入为 100d 向量 我想将我的 DataFrame 对象转换为gensim 模型对象 https radimrehurek com
  • 从多个 csv 文件中提取行和文件名

    我的文件夹中有多个以日期为文件名的 csv 文件 20080101 csv 到 20111031 csv csv 文件具有共同的标题 csv 文件如下所示 20080101 csv X Y Z 1 1 3 1 2 6 1 3 24 2 1
  • 如何将 datetime64 数组转换为 int?

    有了这个 pd Timestamp 31 12 1999 23 59 12 value gt gt 946684752000000000 我可以获得日期时间基本值的整数值 如何对日期时间值数组完成此操作 df pd DataFrame a
  • python 中的 fiona 导入问题

    我已经使用whl发行版安装了fiona 但是在导入时我收到以下错误 ImportError Traceback most recent call last
  • 在不同的 PC 之间传输 Python 设置

    我的情况是我有两台笔记本电脑fresh installation of windows 现在我用它们来编程 所以 假设我在一台笔记本电脑上安装了各种 python 模块 包 那么我有什么办法可以clone我的另一台笔记本电脑上的完整 pyt
  • 将多嵌套 dict/json 加载到 pandas 中

    我正在尝试加载一个非常令人困惑的多重嵌套JSON变成熊猫 我已经在使用了json 规范化 http pandas pydata org pandas docs stable reference api pandas io json json
  • 如何通过 Python 的请求使用 FTP

    是否可以使用requests与 FTP 站点交互的模块 requests获取 HTTP 页面非常方便 但当我尝试使用 FTP 站点时 我似乎遇到架构错误 我有什么遗漏的吗requests允许我执行 FTP 请求 还是不支持 对于像我一样得到
  • 使用 python 为 Qt Designer 定制 Qt 小部件

    我正在尝试仅使用 Python 为 Qt Designer 编写自定义小部件 我正在遵循在网上找到的几个教程 但它们都不起作用 也没有任何接近我所说的最低工作示例的东西 所以我的问题是 使自定义小部件出现在 Qt Designer 的小部件
  • 在 Pandas 中计算滚动回归并存储斜率

    我有一些时间序列数据 我想计算 Pandas 中最后 n 天的分组滚动回归 并将该回归的斜率存储在新列中 我搜索了较旧的问题 它们要么没有得到解答 要么使用了 Pandas OLS 我听说它已被弃用 我想我可能可以使用df rolling
  • python 求数组中正数之和的函数

    我需要编写一个函数 它接受一个数字数组并找到所有数字的最大和 换句话说 我需要找到正数的总和 我写了这个 我收到 列表超出范围 想法 def maximum sub A x 0 i 0 for i in A while A i gt 0 x
  • 如何在 Vim 中转置文件中的行和列的内容?

    我知道我可以使用 Awk 但我使用的是 Windows 机器 并且我正在为可能没有 Awk 的其他人创建一个函数 我也知道我可以编写 C 程序 但我不希望我正在制作的 Vim 实用程序需要编译和维护 原始文件可能是 THE DAY WAS
  • 从列表中删除元素的最佳方法

    我想知道从列表中删除元素的最佳方法 有效方法是什么 有功能很少 https docs python org 3 tutorial datastructures html more on lists由Python提供 some list re
  • Django 查询集权限

    我正在构建一个相当复杂的Django在电子邮件扫描服务之上使用的应用程序 这Django应用程序是使用 Python 3 5 编写的 该应用程序主要使用Django Rest Framework处理与浏览器前端的通信 我目前遇到的问题是我尝
  • Pandas - 使用其他列值作为列名选择列

    我有一个包含一列的数据框 我们称之为 名称 names 具有其他列的名称 我想添加一个新列 该列的每一行都有基于 名称 列中包含的列名称的值 Example 输入数据框 pd DataFrame from dict a 1 2 3 4 b
  • SymPy 无法对产品进行羔羊化

    我正在使用 SymPy 1 0 和 Python 2 7 我想计算前 100 个整数的总和 此代码运行成功 import sympy as sy from sympy tensor import IndexedBase Idx import
  • 如何阻止诱变剂自动更新 ID3 版本?

    当我尝试在 MP3 中嵌入专辑封面时 诱变剂将 ID3 标签更新为版本 2 4 我不希望这样做 因为在 ID3v2 4 中 我的手机 运行 Windows Phone 8 和我的计算机无法识别标签 显然 只需更改mutagen id3 ve

随机推荐

  • C++ 把引用作为返回值

    C 把引用作为返回值 C 引用 C 引用 通过使用引用来替代指针 会使 C 程序更容易阅读和维护 C 函数可以返回一个引用 方式与返回一个指针类似 当函数返回一个引用时 则返回一个指向返回值的隐式指针 这样 函数就可以放在赋值语句的左边 例
  • Deep Java Library(五)DJLServing java client demo

    1 工具类HttpUtils package com lihao client import java io IOException import java net URI import java net URLEncoder import
  • python,xlsxwriter.workbook(‘demo.xlsx‘),module‘ object is not callable

    使用python3 9 创建Excel表格时 出现错误 Traceback most recent call last File C pycharm project files pythonProject py excel py line
  • vue自定义指令之手写v-loading指令

    先看效果 自定义加载效果的loading指令 为什么不创建一个组件来加载loading效果 麻烦你得先引入组件 注册挂载组件 然后在通过v if在空子显示隐藏 为什么要用自定义loading指令 由于项目中很多地方需要用到 在哪个元素或者组
  • 2022年第十四届电工杯赛题分析

    作为2022年上半年最后一场建模比赛的电工杯 为期72个小时 在众多建模比赛中 电工杯属于难度大 比赛时间短 知名度大的比赛 在我个人看来 电工杯可以作为美赛国赛之下第二梯队建模比赛里的头号比赛 因此 为了更好选题比赛 本次比赛我将在本篇文
  • Android 之 PopupWindow(悬浮框) 的基本使用

    本节引言 本节给大家带来的是最后一个用于显示信息的UI控件 PopupWindow 悬浮框 如果你想知道 他长什么样子 你可以打开你手机的QQ 长按列表中的某项 这个时候后弹出一个黑色的小 对话框 这种就是PopupWindow了 和Ale
  • Latex安装以及作业笔记

    Latex安装 参考 怎么安装LaTex 半句多的文章 知乎 https zhuanlan zhihu com p 56982388 作业 1 文档相关说明 2 公式写法 https blog csdn net weixin 3089203
  • sudo: unable to resolve host [hostname](已解决)

    在阿里云服务器上安装Java时报错 于是修改文件 etc hosts解决 PS 此时sudo依然可以继续运行 etc hosts原文件如下 127 0 0 1 localhost The following lines are desira
  • MySQL数据库——DDL基本操作

    文章目录 前言 数据库操作 查看已存在的所有数据库 创建数据库 选中数据库 删除数据库 修改数据库编码 表操作 创建表 显示创建表时的语句 显示表结构 删除表 修改表的结构 增加列 修改列 删除列 修改表名 前言 DDL 操作是与数据库结构
  • Makefile执行报错——CONFIG_X86_X32 enabled but no binutils support

    错误描述 在学习Linux驱动的时候 编写完一个demo 执行make的时候 报了如标题所示的错误 使用的makefile如下 KERNELDIR lib modules uname r build hello world objs hel
  • ESP8266_MQTT协议

    1 了解下MQTT协议 虽然上一篇用起来了MQTT 但是并不十分了解 基本就局限于 发布主题是发送数据 订阅主题是接收数据 今天就再好好了解一下吧 分享下网页版的 MQTT协议中文版 链接 Introduction MQTT协议中文版 1
  • HTTP 字体跨域问题

    一 背景介绍 最近在做公用菜单时 由于除了提供给子应用系统html代码外还需要提供样式 脚本 样式中涉及到了字体 跨域的情况下 样式脚本都可以正常访问 但是字体访问就会出现跨域问题了 二 问题描述 问 什么是字体跨域 答 就是你所引用css
  • unity和VS2019联调问题解决

    以前使用VS2015和17的时候联调的时候是可以附加到unity进行联调的 今天用的2019发现不可以了 研究了一下是少装了一个插件 装上插件就解决了 过程如下 当前使用VS版本2019企业版 如图 更多内容请关注微信公众号 unity风雨
  • 《Android面试题及解析》分享,一文带你搞懂Android多线程Handler

    网易游戏 严格来说我投的是网易互娱 区别于雷火 盘古 后面再说更多区别 走的内推 网易游戏以其笔试难度大著名 这次也不例外 所有的内推都要求参加统一笔试 我记得笔试有几场 我是在第一场 内推的岗位是网易游戏最核心的 游戏研发工程师 地点是杭
  • Call to localhost/127.0.0.1:9000 failed on connection exception错误。

    解决方案 1 首先查看hdfs site xml配置文件 如下面所示
  • nginx+tomcat实现代理访问java web项目

    最近由于部署考试系统 遇到一系列问题 由于Ubuntu上软件安装的混乱 参考的博客过于坑爹 所以环境配置的乱七八糟 在一个午夜 把一根烟抽的透透的 然后开始重装了一次系统 使用的Ubuntu 16 04LTS 由于时间原因一直没有吧我的这个
  • 用acme.sh申请免费ssl证书-let‘s encrypt

    这个是申请泛域名证书 移动端和电脑端直接用这个就可以了 不需要分开申请 安装脚本 curl https get acme sh sh 进入 cd acme sh 看下目录有什么 root csdn ls adl acme sh drwx 8
  • CO_XT_COMPONENTS_DELETE 删除工单组件

    REPORT zdtest6 判断是否有原始组件 如有全删 DATA ls return TYPE coxt bapireturn DATA lt resbkeys TYPE coxt t resbdel lt return TYPE ST
  • RabbitMQ--扩展--03--日志文件,故障恢复,集群迁移,集群监控

    RabbitMQ 扩展 03 日志文件 故障恢复 集群迁移 集群监控 1 RabbitMQ日志查看 如果在使用RabbitMQ 的过程中出现了异常情况 通过查看RabbitMQ 的服务日志可以让你在处理异常的过程中事半功倍 RabbitMQ
  • python基础—字符串操作

    1 字符串 Python内置了一系列的数据类型 其中最主要的内置类型是数值类型 文本序列 字符串 类型 序列 列表 元组和range 类型 集合类型 映射 字典 类型 本章在介绍字符串 列表 元组和range类型共有的通用序列操作方法的基础