Python(19)-字符串、Unicode字符串

高级数据类型--字符串、Unicode字符串

  • 1.字符串的定义
  • 2.字符串的长度、计数、Index
  • 3.字符串常用方法
    • 3.1判断类型
    • 3.2查找和替换
    • 3.3文本对齐
    • 3.4去除空白字符.strip()
  • 4.字符串的拆分和拼接
  • 5.字符串的切片
  • 6.跨行字符串
  • 7.包含转义字符r
  • 8.字符串的分割与连接
  • 9.Unicode字符串

字符串-不变性,不能通过索引对其做任何修改

1.字符串的定义

字符串用于存储多个字符,可以用单引号双引号来定义字符串,大多数编程语言都是使用双引号,为了和其他语言接轨,建议使用双引号进行字符串定义。

str1=“python”

使用单引号定义字符串的情形:字符串中带双引号,那么字符串用单引号定义

Str2='我的名字是"大西瓜" ’

字符串元素访问:[]+索引。
循环遍历,对其中元素进行相同的操作

2.字符串的长度、计数、Index

子字符串:字符串中的一部分元素组成的字符串

hello_str=“hello hello”

1.计算字符串包含的字符数,即字符串的长度。

print(len(hello_str))

2.计算字符串中包含的子字符串的数目。如果子串不存在,计数结果为0。

print(hello_str.count(“llo”))

3.输出子字符串出现的位置(第一个字符的位置),子串不存在会报错。

print(hello_str.index(“abc”))

3.字符串常用方法

字符串有四类常用的方法:判断类型、查找和替换、文本对齐、去除空白字符
在平常应用需求中,明确方法类别,查找方法,查看参数,使用方法,不用死记硬背,编写测试方法。

3.1判断类型

判断方法返回一个True或者False.

1判断是不是只有空白字符,空白字符包括:空格,\t, \n ,\r。回车\r回到本行的开始,Linux:\n换行,win:\r+\n 实现换行。

space_str=" \n \t"
print(space_str.isspace())
输出:True

2.判断是否只包含数字

num_str="\u00b2"
print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())

以上三个方法都不能判断小数,能判断的范围越来越大

print(num_str.isdecimal()),能力最小,只能判断一般的数字

print(num_str.isdigit())能判断unicode字符串(不能直接在键盘中输出的数字(1)) (这个版本的好像还是不行Python2.7)

print(num_str.isnumeric())能判断中文数字一、二、等,这个版本的好像还是不行Python2.7)

3.Isalpha()是不是只有字母组成
Istitle()是否首字母大写
Isup()是否全部都大写
Islow()是否全部都小写

3.2查找和替换

hello_str=“hello world”

1.判断以指定字符串开头(区分大小写哦)

print(hello_str.startswith(“Hello”))
输出:False

2.判断以指定字符串结尾(区分大小写哦)

print(hello_str.endswith(“world”))
输出:True

3.查找是否存在某一个子串;如果存在,输出对应索引;如果不存在,输出-1。与index方法很相似,区别:如果子串不在原来字符串中,find方法返回-1,并不会报错。

print(hello_str.find(“llo”))
输出:2
print(hello_str.find(“123”))
输出:-1

4.替换:用指定的子串替换原串内容,执行完成后返回一个新的字符串,不会修改原来的字符串。

print(hello_str.replace(“world”,“pyhton”))
输出hello pyhton
print(hello_str)
输出hello world

3.3文本对齐

支持输出字符串左对齐,右对齐,居中对齐

poem=["草","白居易","离开原上草"
]for poem_str in poem:print("|%s|"%poem_str.center(30,"*"))

所有的字符串有一个固定的内容,输出就能够居中了
居中的数值也是需要调整的(本例子中用30),默认使用英文的空格进行居中处理,但是效果不太好,filchar中填入一个全角中文空格,即可实现完全对齐,(Python2.7版本的没有实现对齐呢)
在这里插入图片描述

左对齐:

print(poem_str.ljust(30))

右对齐:

print(poem_str.rjust(30))

3.4去除空白字符.strip()

.strip()方法可以去除空白符,包括换行符号。

poem=["\t\n草","白居易","\t离开原上草"
]
for poem_str in poem:#输出原来字符串,有空白符,很不整齐print("|%s|"%poem_str)

在这里插入图片描述

for poem_str in poem:#直接居中输出print("|%s|"%poem_str.center(30,"*"))

没去除空白符在居中输出的结果(原谅我居中效果不是很好)
在这里插入图片描述

for poem_str in poem:#先使用strip方法去除前后两边的空白字符,再居中输出print("|%s|"%poem_str.strip().center(30,"*"))

去除空白符后的输出结果:
在这里插入图片描述

4.字符串的拆分和拼接

poem_str="\t\n草 白居易,\n离开原上草\t一岁一枯荣"
print(poem_str)poem_list=poem_str.split()for poem_list_str in poem_list:print(poem_list_str)result=" ".join(poem_list)print(result)

1.poem_str.split()方法去拆分一个字符串,如果不指定分隔符,方法默认以空白符作为分隔符;也就是说,有空白符的地方都会被分隔;拆分后返回一个字符串列表

2." ".join(poem_list) 方法使用“ “作为分隔符拼接一个整齐的字符串,方法执行完成后返回一个字符串
在这里插入图片描述

5.字符串的切片

切片操作适用于字符串,列表,元组

语法:字符串[开始索引:结束索引:步长] ,不包含结束索引对应的内容

步长:有间隔的进行切片。

结束索引不指定,就可以切到最后一个元素。

顺序索引:第一个元素对应的索引为0,其后依次递增
倒序索引:最后一个元素的索引为-1,其前依次是-2,-3,-4

原序列:
在这里插入图片描述
步长为负可以从右向左进行切片,对应的索引顺序也应该由大到小。
在这里插入图片描述
正序索引的例子:
在这里插入图片描述
在这里插入图片描述

温馨提示:只有精通,才会思变,因为,简便是驱动力,截图工具的更换

6.跨行字符串

# 跨行字符串用三引号定义,(且别python的多行注视)
# 行尾添加\去除换行符号
s1 = '''你好
明天'''
s2 = '''你好\
明天'''
print(s1)
print(s2)

输出

你好
明天
你好明天

7.包含转义字符r

# 字符串包含转义字符,用r表示不转义的字符
print('E:\note\Python')
print(r'E:\note\Python')

输出

E:
ote\Python
E:\note\Python

8.字符串的分割与连接

str1 = "Zootopia"
print(str1.find("to"))  # 返回第一个to的索引
str2 = "Z o o t o p i a"
print(str2.split(" "))  # 以" "分割原字符串,返回一个list,['Z', 'o', 'o', 't', 'o', 'p', 'i', 'a']
print("".join(str2.split(" ")))  # 将字符串,List,元组中的元素以指定的字符连接一起。
str3 = ">".join(str1)   # Z>o>o>t>o>p>i>a

9.Unicode字符串

# Unicode 更多了是一种编码规则
# 优点是:为现代和古代每一个字符提供了一个统一的序号
# 创建:在字符串前面加u
unicode_str = u'\u4f60\u597d'
print(unicode_str)     # 输出:你好

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

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

相关文章

机器学习中的距离和损失函数

文章目录13.1 距离度量13.2 损失函数13.1 距离度量 距离函数种类:欧式距离、曼哈顿距离、明式距离(闵可夫斯基距离)、马氏距离、切比雪夫距离、标准化欧式距离、汉明距离、夹角余弦等常用距离函数:欧式距离、马氏距离、曼哈顿距离…

Python(20)-高级数据类型的公共方法

高级数据类型的公共方法1内置函数2高级数据类型切片3运算符,*,in4完整的for循环公共方法是列表,元组,字典,字符串都能使用的方法1内置函数 内置函数:不需要import导入模块,就可以直接使用的函数…

redis——为什么选择了跳表而不是红黑树?

跳表是个啥东西请看这个文章。 我们知道,节点插入时随机出一个层数,仅仅依靠一个简单的随机数操作而构建出来的多层链表结构,能保证它有一个良好的查找性能吗?为了回答这个疑问,我们需要分析skiplist的统计性能。 在…

机器学习公式推导

文章目录线性回归逻辑回归线性判别分析PCAk-means决策树svm随机深林GBDTxgboost强化学习MapReduce线性回归 逻辑回归 对于分类问题:输出0/1,超过[0,1]没有意义,使用sigmoid函数 **代价函数:**使用L2平方差,由于模型函…

Python综合应用(1)--名片管理系统开发

第一个综合应用-名片管理系统1框架搭建2完善功能综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程…

springboot1——spring相关入门

spring 随着我们开发,发现了一个问题: A---->B---->C---->D 在A中创建B的对象调用B的资源 在B中创建C的对象调用C的资源 在C中创建D的对象调用…

大数据学习(06)-- 云数据库

文章目录目录1.什么是云数据库?1.1 云计算和云数据库的关系1.2 云数据库的概念1.3 云数据库的特性1.4 云数据库应用场景1.5 云数据库和其他数据的关系2.云数据库产品有哪些?2.1 云数据库厂商概述2.2 亚马逊云数据库产品2.3 Google云数据库产品2.4 微软云…

Python(21)--变量进阶

变量的进阶使用1变量引用2可变、不可变数据类型3局部变量和全局变量4.Tips本系列博文来自学习《Python基础视频教程》笔记整理,视屏教程连接地址:http://yun.itheima.com/course/273.html在博文:https://blog.csdn.net/sinat_40624829/articl…

机器学习知识总结系列-机器学习中的数学-矩阵(1-3-2)

矩阵 SVD 矩阵的乘法状态转移矩阵状态转移矩阵特征值和特征向量 对称阵 正交阵 正定阵数据白化矩阵求导 向量对向量求导 标量对向量求导 标量对矩阵求导一.矩阵1.1 SVD奇异值分解(Singular Value Decomposition),假设A是一个mn阶矩阵&#xf…

面试中海量数据处理总结

教你如何迅速秒杀掉:99%的海量数据处理面试题 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获&…

redis——旧版复制

Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致…

Linux(3)-网-ifconfig,ping,ssh

终端命令网-ping,ssh1. ifconfig -a2. ping3. ssh3.1安装3.2 连接3.3 配置登入别名防火墙端口号,todo1. ifconfig -a 查看IP地址, 还可以用于配置网口。 ifconfig -a 2. ping ping命令: 检测到IP地址的连接是否正常。命令开始后由本机发送数据包a&…

redis——相关问题汇总

什么是redis? Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理…

一文搞定面试中的二叉树问题

一文搞定面试中的二叉树问题 版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点…

无数踩坑系列(1)--Brightness Controller

Brightness Controller1.尝试找回系统自带亮度调节条1.1 配置grub文件,无效1.2 使用命令调节屏幕亮度,无效2.安装应用程序Brightness Controller2.1许多博文都写出了如下方案,无效:2.2 github 手动安装https://github.com/LordAmi…

springboot2——MyBatis入门

原生缺陷: 数据库dao层操作缺陷: ①jdbc的增删改查代码的冗余过大,查询的时候需要遍历。 ②Sql语句和数据库相关参数和代码的耦合性过高。 解决:使用Mybatis 业务层缺陷: ①业务层和数据…

Linux(4)-资源-du,top,free,gnome

Linux终端命令1.磁盘资源1.1 df -hl1.2 du1.3 统计文件数量2.缓存资源2.1 top2.2 free -m3.Gnome3.1系统监视器-gnome-system-monitor3.2 截屏--screenshot查看文件系统资源的一些命令1.磁盘资源 1.1 df -hl 查看分区磁盘使情况 硬盘空间不够时,跑程序会报错&…

redis——Java整合

redis官网 微软写的windows下的redis 我们下载第一个 额案后基本一路默认就行了 安装后&#xff0c;服务自动启动&#xff0c;以后也不用自动启动。 出现这个表示我们连接上了。 redis命令参考链接 Spring整合Redis 引入依赖 - spring-boot-starter-data-redis <depend…

一文理解KMP算法

一文理解KMP算法 作者&#xff1a;July 时间&#xff1a;最初写于2011年12月&#xff0c;2014年7月21日晚10点 全部删除重写成此文&#xff0c;随后的半个多月不断反复改进。后收录于新书《编程之法&#xff1a;面试和算法心得》第4.4节中。 1. 引言 本KMP原文最初写于2年多前的…

小猫的java基础知识点汇总(下)

1、线程和进程有什么区别&#xff1f; 进程是操作系统资源分配的基本单位&#xff0c;而线程是任务调度和执行的基本单位 线程是进程的子集&#xff0c;一个进程可以有很多线程&#xff0c;每条线程并行执行不同的任务。 不同的进程使用不同的内存空间&#xff0c;而所有的线…