本文主要记录字符串的相关知识,包括字符串的定义特点,常用方法和

请知悉:

计算机中,一切皆为对象
世界万物,皆为对象,一切对象皆可分类

1.什么是字符串?

类似"hello world"就是一个字符串

定义:是一个有序的字符的集合,用于存储和表示基本的文字信息,一对单双或三引号中间包含的内容成为字符串

注意:变量声明中,不加引号的字符串表示变量,name=jack 会出错

2.字符串特点:

有序,不可变
字符串是特殊的元组,可以切片

3.字符串的格式化输出

字符串是 %s,整数 %d,浮点数%f

name = "Jack"
print ("I am %s,how are you?" %name)
--->I am Jack,how are you?

4.字符串的拼接和重复输出:

1) 字符串拼接("万恶的加号 +")

a = 'Helllo '
b = 'world '
print(a + b)
--->'Hello world'

注意:
python中的字符串在C语言中体现为一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,一旦需要修改字符串,就需要再次开辟空间,会占用过多内存空间

原理:

使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去。如果是n个字符串相连 那么会开辟n-1次内存,是非常耗费资源的。

2) 重复输出字符串(*)

name='jack '
print(name*5)
-->jack jack jack jack jack

注意:“+”和“*”只能在字符串之间进行操作,不能跨数据类型

3)str.join()

连接2个字符串,可指定连接符号,常用

a='hello '
b='####'
print(a.join(b))
--->#hello #hello #hello #

5.字符串常用方法:

1) str.count()  # 字符数统计

字符串统计

s = 'Hello World'
print(s.count('o'))
--->2

2) str.strip()   # 格式化输出

删除字符串两边的指定字符,默认为空格,\t为tab,\n为换行符

s = 'Hello World    '
s.strip()
--->'Hello World'

3) str.lstrip()   # 格式化输出

删除字符串左边的指定字符,默认为空格

s = '    hello    '
s.lstrip()
--->'hello '

4) str.rstrip()  # 格式化输出

删除字符串右边指定字符,默认为空格

s='    hello    '
s.rstrip()
--->' hello'

5) str.index 和str.find    # 查找索引

功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。
一般用find!=-1或者find>-1来作为判断条件。
str.find:检测字符串中是否包含子字符串str,可指定范围

s='hello world'
print(s.find('l')) # 第一个索引为2
--->2
print(s.find('x')) # 找不到返回-1
--->-1

str.index:检测字符串中是否包含子字符串str,可指定范围

s='hello world'
print(s.index('l'))
-->2
print(s.index('x'))
-----返回------
Traceback (most recent call last):
File "D:/PyProjects/1.svndata/test.py", line 32, in <module>
print(s.index('x'))
ValueError: substring not found

6) str.len()   #字符串长度

s = 'hello world'
print(len(s))
--->11

7) "str" in | "str" not in    # 测试是否包含

是否包含指定字符串

s = 'hello world'
print('hello' in s)
--->True
print('' not in s)
--->True

8) 字符串中字母大小写转换

8.1) str.lower()   # 转换为小写

s = 'Hello World'
print(s.lower())
--->hello world

8.2) str.upper()   # 转换为大写

s = 'Hello World'
print(s.upper())
--->HELLO WORLD

8.3) str.swapcase()   # 大小写互换

s = 'Hello World'
print(s.swapcase())
--->hELLO wORLD

9) str.center()   # 将字符串居中

可指定字符串长度以及两边填充的字符

s = 'hello world'
print(s.center(40, '*'))
--->**************hello world***************

10) 字符串的测试、判断函数

这类函数在string模块中没有,且返回的都是布尔值

str.isdigit()                  # 是否全是数字,并至少有一个字符
str.isalpha() # 是否全是字母,并至少有一个字符
str.isspace() # 是否全是空白字符,并至少有一个字符
str.isalnum() # 是否全是字母和数字,并至少有一个字符
str.islower() # Str中的字母是否全是小写
str.isupper() # Str中的字母是否全是大写
str.istitle() # Str是否是首字母大写的
str.startswith("hehe") # 是否以hehe开头
str.endswith("haha")    # 是否以haha结尾

6. 字符串切片

str = ''
print(str[0:3])     # 截取第一位到第三位的字符
print(str[:])   # 截取字符串的全部字符
print(str[6:])     # 截取第七个字符到结尾
print(str[:-3])    # 截取从头开始到倒数第三个字符之前
print(str[2])     # 截取第三个字符
print(str[-1])     # 截取倒数第一个字符
print(str[::-1])    # 创造一个与原字符串顺序相反的字符串
print(str[-3:-1])   # 截取倒数第三位与倒数第一位之前的字符
--->78
print(str[-3:])    # 截取倒数第三位到结尾
print(str[:-5:-3]) # 逆序截取,截取倒数第五位数与倒数第三位数之间
--->96

注意:
1)字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。
2)任何上面的函数改变了字符串后,都会返回一个新的字符串,但是原字串并没有变。
3)字符串是可以通过下标来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值(形式如字符串[下标])
4)下标(索引值)从左边,从0开始,最大下标值是字符串长度减1,即len(string) - 1

拓展:什么是可变和不可变的数据类型:

1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)

---------- 完毕,呵呵呵呵 -----------

Python数据类型-02.字符串的更多相关文章

  1. Python数据类型之字符串

    一:概述 Python中的字符串的一些概念 可以看作是字符的集合,在数据类型里没有单个字符的数据类型,可以用单个字符表示的一个字符串数据类型 字符串是一种不可变的序列类型,单个字符从左到右按照顺序排列 ...

  2. Python数据类型(字符串)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 字符串 字符串是 Python 中 ...

  3. python基础【2】——python数据类型之字符串

    python数据类型-字符串 一. 字符串的表示方法(str) 作用: 记录文本信息 表示方法:' ' 单引号 " "双引号 ''' '''三单引号 ""&qu ...

  4. Python数据类型之字符串类型

    字符串的表示 字符串是Python中最常用的数据类型之一,必须使用成对的引号包围来表示字符串,引号可以是单引号 ' .双引号 " .三引号''' """,格式如 ...

  5. Python 数据类型:字符串

    一.字符串介绍 字符串是由单引号/双引号/三引号引起来的,由字母 .数字或符号等构成的一串字符 In [1]: name = "Tom" # 定义字符串 In [2]: type( ...

  6. python数据类型和字符串(三)

    一.变量 变量声明变量 #!/usr/bin/env python age= gender1='male' gender2='female' 变量作用:保存状态(程序的运行本质是一系列状态的变化,变量 ...

  7. Python数据类型-----数字&字符串

    Python数字类型 int类型表示的范围:-2147483648至2147483648之间,超出这个范围的数字即视为long(长整形) 在Python中不需要事先声明数据类型,它是根据具体的赋值来进 ...

  8. Python基础-python数据类型之字符串(四)

    字符串 字符串是python中常用的数据类型,使用('或")来创建. 创建字符串: 下标索引 字符串实际上是字符的数组,所以也支持索引. str1 = 'abcdef' 切片 定义:切片是指 ...

  9. python数据类型(数字\字符串\列表)

    一.基本数据类型——数字 1.布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. (1)布尔值是False的各种情况 ...

随机推荐

  1. 用Python实现的数据结构与算法:堆栈

    一.概述 堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行. 二.ADT 堆栈ADT(抽象数据类型)一般提供以下接口: Stack() 创建 ...

  2. ubuntu update-alternatives

    update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun ...

  3. 《Clean Code》一书回顾

    <Clean Code>一书从翻开至今,已经差不多两个月的时间了,尽管刨去其中的假期,算下来实在是读得有点慢.阅读期间,断断续续的做了不少笔记.之前,每每在读完了一本技术书籍之后,其中的诸 ...

  4. SpringData_JpaRepository接口

    该接口提供了JPA的相关功能 List<T> findAll(); //查找所有实体 List<T> findAll(Sort sort); //排序.查找所有实体 List& ...

  5. wkhtmtopdf--高分辨率HTML转PDF(三)

    代码篇 浏览了很多实例,总找不到既能把HTML保存为PDF,同时实现流抛出的,所以自己琢磨了许久,终于实现了这样两个需求的结合体,下面来贡献一下吧~~ 下面我们来选择一个网页打印下,保存为PDF,而且 ...

  6. Centos75下samba搭建配置

    工作中,很经常需要把Linux服务器上的文件共享到windows上面,这时候需要在Linux服务器上安装samba套件. samba服务很好的实现了windows和linux之间的文件共享. 下面配置 ...

  7. bzoj1623 / P2909 [USACO08OPEN]牛的车Cow Cars

    P2909 [USACO08OPEN]牛的车Cow Cars 显然的贪心. 按速度从小到大排序.然后找车最少的车道,查询是否能填充进去. #include<iostream> #inclu ...

  8. 彻底搞懂JavaScript中的继承

    你应该知道,JavaScript是一门基于原型链的语言,而我们今天的主题 -- "继承"就和"原型链"这一概念息息相关.甚至可以说,所谓的"原型链&q ...

  9. Linux服务器使用tar加密压缩文件

    使用tar命令进行加密压缩时需要和OpenSSL进行结合 加密压缩命令如下: tar -zcf - filename |openssl des3 -salt -k passwd | dd of=fil ...

  10. Spring Boot从Controller层进行单元测试

    单元测试是程序员对代码的自测,一般公司都会严格要求单元测试,这是对自己代码的负责,也是对代码的敬畏. 一般单元测试都是测试Service层,下面我将演示从Controller层进行单元测试. 无参Co ...