美文网首页
数据类型 -- String(字符串)

数据类型 -- String(字符串)

作者: __深蓝__ | 来源:发表于2019-01-01 11:46 被阅读0次

Python中字符串用单引号 ' 或双引号 " 括起来,使用反斜杠 \ 转义特殊字符。
Python不支持单字符类型,单个字符就是长度为1的字符串。
Python3中,所有的字符串都是Unicode字符串。

创建字符串
var1 = 'Hello World!'
var2 = "Neuedu"
使用字符串
  • 访问单个字符,使用 变量 [ 索引值 ]
  • 截取子串,使用 变量 [ 头下标 : 尾下标 ]
  • 重复字符串,使用 变量 * 次数
  • 连接字符串,使用 变量 + 变量 [ + 变量 ... ]

说明:

  • 使用索引值可以访问字符串中的单个字符,索引值从0 ~ length-1,超出范围会报错。
  • 使用头下标和尾下标可以截取部分字符串,范围是头下标 ~ 尾下标-1,超出范围返回空串。
str = 'Neuedu'

>>> print (str)          # 所有字符串
Neuedu
>>> print (str[:])       # 所有字符串
Neuedu
>>> print (str[0])       # 第1个字符
N
>>> print (str[-1])       # 倒数第1个字符
u
>>> print (str[2:5])     # 第3个 ~ 第5个字符
ued
>>> print (str[2:])      # 第3个 ~ 所有字符
uedu
>>> print (str[:3])      # 第1个 ~ 第3个字符
Neu
>>> print (str[0:-1])    # 第1个 ~ 倒数第2个字符
Neued
>>> print (str[-1:-2])    # 空字符

>>> print (str[-4:-2])    # 倒数第4个 ~ 倒数第3个字符
ue
>>> print (str * 2)      # 字符串重复两次
NeueduNeuedu
>>> print (str + "TEST") # 连接字符串
NeueduTEST

使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串

>>> print('XXX\nYYY')
XXX
YYY
>>> print(r'XXX\nYYY')
XXX\nYYY
>>> 

注意:

  • 字符串不能改变,向一个索引位置赋值,比如str[2] = 'U'会导致错误
>>> str = 'Neuedu'
>>> str[2] = 'U'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
字符串运算符

a = 'Hello'       b = 'Python'

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
in 成员运算符
字符串中包含给定的字符返回 True
'H' in a 输出结果 True
not in 成员运算符
字符串中不包含给定的字符返回 True
'M' not in a 输出结果 True
字符串格式化
print("格式串" % 变量1)
print("格式串" % (变量1, 变量2...))

带有占位符的字符串称为 格式串

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
%e 科学计数法表示浮点数
%% 输出 %
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

在占位符中使用数字限制位宽,位数不足时用空格(默认)或 0 进行填充

>>> "我的学号是 %06d" % 9527
'我的学号是 009527'
>>> "苹果单价 %.02f 元/斤" % 5.123
'苹果单价 5.12 元/斤'
>>> "购买 %.03f 斤" % 4.5
'购买 4.500 斤'
>>> "数据比例是 %.02f%%" % 10
'数据比例是 10.00%'
>>> "数据比例是 %5.2f" % 1.2345
'数据比例是  1.23'
>>> "数据比例是 %05.2f" % 1.2345
'数据比例是 01.23'

使用三引号 ''' 允许一个字符串跨行、包含换行符、制表符以及其他特殊字符。

>>> para_str = """这是一个多行字符串的实例
... 多行字符串可以使用制表符TAB ( \t )。
... 也可以使用换行符 [ \n ]。
... """
>>> print (para_str)

这是一个多行字符串的实例
多行字符串可以使用制表符TAB (    )。
也可以使用换行符 [
 ]。
  • 三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
  • 一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')
字符串内置函数
  • len(string) 返回字符串长度
>>> len('abcdef')
6
>>> len('中文')
2
字符串对象方法
  • upper() 转换字符串中的小写字母为大写
  • lower() 转换字符串中所有大写字符为小写
  • isdigit()如果字符串只包含数字则返回 True 否则返回 False
  • join(str) 以指定字符分隔str字符串
  • split(str) 用str指定的字符来产生一个列表
>>> 'abcdef'.upper()
'ABCDEF'
>>> 'ABCDEF'.lower()
'abcdef'
>>> '12345'.isdigit()
True

>>> '-'.join('abcde')
'a-b-c-d-e'

>>> "this is string example".split(' ')
['this', 'is', 'string', 'example']
字符编码
  • 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。
  • 由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122
  • 之后,为处理各自国家的文字,产生了不同的编码,中国制定了GB2312编码,日本用Shift_JIS编码,韩国用Euc-kr编码等,各种标准的冲突,使得在多语言混合的文本中经常出现乱码。
  • 因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
  • ASCII编码是1个字节,而Unicode编码通常是2个字节。
  • 为了节省空间,出现了UTF-8编码。UTF-8根据不同字符编码成1-6个字节,英文字母占1个字节,汉字通常占3个字节,生僻字符占4-6个字节。
字符 ASCII Unicode UTF-8
A 01000001 00000000 01000001 01000001
x 01001110 00101101 11100100 10111000 10101101




- end -

相关文章

  • 数据类型

    简单(基本)数据类型 字符串 String 详情请戳数据类型-字符串 String 数字 Number数字 详情...

  • 3 Redis数据类型

    3.1 Redis的五大数据类型 3.1.1 String(字符串) String(字符串) string是red...

  • 01【掌握】redis的数据类型

    1,概述 2,字符串类型Map 3,list数据类型Map

  • JS的数据类型

    七、数据类型 js的数据类型: 数据类型(number) 字符串(string) 布尔(...

  • redis学习系列(二)

    redis简单操作之string类型 Redis 数据类型 Redis支持五种数据类型:string(字符串),h...

  • Java基础语法-数据类型(转换)

    引用数据类型(1)类(class) String 字符串String是一个类,表示字符串(后面详讲),所谓字符串...

  • SpringBoot-Redis 入门

    SpringBoot-Redis 入门 Redis 的数据类型 String 字符串 string 是 redis...

  • JavaScript学习笔记(二)

    JavaScript数据类型 在 JavaScript 中的数据类型:string(字符串)、number(数字,...

  • Redis数据类型和操作

    本例为redis单实例模式 基本数据类型 String --最常用的数据类型 String 除了保存字符串之外,可...

  • JS 里的数据类型转换

    将其他的数据类型转换为String 字符串 ?.toString String(?) '' + ? 问号此处代表的...

网友评论

      本文标题:数据类型 -- String(字符串)

      本文链接:https://www.haomeiwen.com/subject/hqxwlqtx.html