3总 字符串

print('abc')
  • 1.计算机的储存形式:

计算机在存储数据的时候,都是以二进制的形式存在计算机中。
1.原码:数据的二进制形式
'''
正数的原码:符号位是0,后面是数值大小
负数的原码:符号位的值是1,后面去掉符号的数值大小
'''
10-->1010 原码:00001010
-10-->原码 :10001010
2.反码:
'''
正数的反码:反码和原码一样
负数的反码:符号不变,后面每一位取反
'''
10-->反码:00001010
-10-->反码:11110101

3.补码:
'''
正数的补码:补码和原码一样
负数的补码:反码+1
'''
10--> 补码:00001010
-10--> 补码:11110110
加法器:计算机只有加法码,没有办法做减法
2+(-3)-->00000010+10000011+10000101(-5)原码相加的结果
2+(-3)-->000000010+111111101=11111101=11111111(补码)=10000001(-1)补码相加

  • 2. 什么是字符串:

什么是字符串

"""
a.用单引号或者双引号括起来的字符集就算是字符串
例如:'faadi&7*^%%$#3栓伤口就会受到'
b.字符串中每个独立的单元我们叫字符:例如:字符串'abc123'中的'a','b'
'c','1','2','3'就是字符

"""
name = '黄峰'
poem ='床前明月光'

2.转义字符:

'''
说明:python中没有字符类型,如果要表示字符,就是用一个长度是1的字符串表示,例如;'a','1'
例如:值得就是字符串中字符的个数,例如:'abc'-长度是3,'abc123,
你好'-长度是:10

通过\将一些特殊字符转换成一个具有特殊功能或者特殊意义的字符,就是转义字符。
常见的转义字符:
\n---换行
\t---指标建(相当于tab键)
\---
'---'
"---"
在计算字符串长度的时候,转义字符的长度是1
'''
poem ='床前明月光,\n疑是地上霜'
print(poem)
str1 = 'abc\bcd'
print(str1)

str2='abc'123'
print(str2)

str3="abc"123"
print(str3)

3.Unicode编码

'''
python中字符的编码采用的是Unicode编码
将字符转换成指定的数值,这个过程就是编码。(编码的目的是方便计算机存储)
将数值转换成对应的符号的过程就是反编码(解码)
Unicode是采用两个字节对一个字符进行编码(2^15),能够将世界上所有的符号进行编码
Unicode编码中包含了ascii码

0-->0
'0'-->48
'abc'
100
'''

1).将Unicode码转换成字符: chr(编码)

print(chr(0xA001))
print(chr(0xAC00))
print(chr(0x4e60))

将字符转换成Unicode编码:ord(字符)

code1 = ord('黄')
code2 = ord('峰')
print((code1),(code2))

  • 3.获取字符

字符串实质可以是一个不可变的序列,序列内容是字符。
一旦字符串确定,那么里面的字符和字符的位置就不变了,例如:'abc'
1.怎么获取单个字符
'''
python中的字符串,可以通过下标(索引)来获取指定位置上的字符:(字符串索引)
说明:
a.字符串可以是字符串值,也可以是字符串变量。
b.[]中使用固定语法
c.索引:从0开始到字符串长度减1(0对应的是第一个字符);
字符串实质可以是一个不可变的序列,序列内容是字符。
一旦字符串确定,那么里面的字符和字符的位置就不变了,例如:'abc'
1.怎么获取单个字符
'''
python中的字符串,可以通过下标(索引)来获取指定位置上的字符:(字符串索引)
说明:
'''
a.字符串可以是字符串值,也可以是字符串变量。
b.[]中使用固定语法
c.索引:从0开始到字符串长度减1(0对应的是第一个字符);
-1~长度:(-1对应最后一个字符,-2对应倒数第二个字符)

 注意:索引不能越界否则会报错(产生异常)。
 '''

str1='acbd'# a->0,c->1,b->2,d->3
print(str1[0])

print(str1[4]),# IndexError:string index out of range

name = '王海飞'
print (name[-1], name[-2],name[-3])
print ('abc'[2])

print(name[-4]) #IndexError:string index out of range

2.获取部分字符(获取子串)--切片
字符串【下标1:下标2】:从下标1开始,获取下标2前的所有字符
(从下标1开始,每次下标值加1,一直加到下标2前)
注意:下标1对应的位置,一定要在下标2对应的位置之前

str2 = 'hello world'
print(str2[0:4]) # hell
print(str2[2:7]) # llo w
print(str2[2:-1]) # llo worl
print(str2[3:12]) # lo word
print(str2[-5:-2]) # wor
print(str2[-5:9]) # wor

字符串[下标注1:下标注2:步进]
'''
从下标1开始获取,每次下标值增加步进值,每增加一次取一个字符,直到取到下标2为止
a.步进如果是正数,那么下标1对应的字符位置一定要在下标2对应位置的前面;
步进是负数的,那么下标1对应的位置一定要在下标2对应的位置后面
b.下标2对应的字符是取不到的

'''
str3 = 'hellopython'
print(str3[0:5:2]) #hlo 步进 3 hl
print(str3[-1:5:-1]) # nohty

下标的省略:

'''
切片的时候下标1和下标2可以省略的
下标1省略:默认从开头开始获取(开头可以是字符串的第一个字符,也可能是字符串最后一个字符)

'''
str4 = 'good good study,day day up'
print(str4[:4]) # good
print(str4[:4:-1]) # pu yad yad,yduts doog

'''
下标2省略:从下标1开始获取,获取到结束(结束可能是字符串的最后一个字符,也可能是字符串的最后一个字符)

'''
print(str4[1:]) # ood good study,day day up
print(str4[3::-1]) # doog

print(str4[:]) # good good study,day day up
print(str4[::-1]) # pu yad yad,yduts doog doog

练习:要求将一个字符串中所有下标是奇数位的字符获取出来
str5 = 'abcdefg'
print(str5[1::2]) # bdf

  • 4.字符串的相关运算:

1.+ 运算符
'''
字符串1+字符串2:
python 支持两个字符串相加,其效果是将两个字符串拼接在一起形成一个新的字符串

注意:如果+一边是字符串,那另外一边也必须是字符串

'''
print('abc'+'123')
str1 = 'world'
newstr1 = 'hello'+' '+ str1
print(newstr1)
print(10+'abc') # TypeError:unsupported operand type(s) for +:'int' and 'str'

2.* 运算符:
'''
字符串1*整数:字符串重复多次

'''
print('abc'*3)

3.所有的比较运算符
str1 = 'abc'
print('abc'== str1)
print(str1 != 'ab')

比较大小:
'''
str1 > str2;str1 < str2
让str1中的每一位字符分别与str2中的每一位字符进行比较。
直到不同为止,再看不同字符中水的编码值大或者小

'''
print('abcde'>'abcde') # False
print('二'>'余') # False
print(ord('二'),ord('余')) # 20108 20313

in和 not in:
'''
str1 in str2 :判断str1是否在str2中(str2是否包含str1/str1是否是str2的子串)

结果是布尔值
'''
print('abc' in 'abcdef') # True
print('abc' in 'a1b2c3' ) # False
print('f' in 'python') # False

5.获取字符串的长度:字符串的长度指的是字符串中字符的个数。
len()内置函数
str3='project'
print(len(str3),len('123 abc/n')) # 7, 9

补充: 空串
str4 =''
str5 = ""
print(len(str4)) # 0

print(str3[-1],str3[len(str3)-1])# t t,-1 = len(str3)-1

6.阻止转义:
在字符串的最前面添加r/R可以阻止转义
print('a\nb','a\nb\')
print(len('a\nb\')) # 4

print(r'a\nb\',R'a\nb') # a\nb\ a\nb
print(len(r'a\nb\')) # 6

print('a\nb\\') # a\nb\
print('\\n\') # \换行
print(r'\\n\') # \\n\

练习 :
str1 = r'\nabc123' 求:str1[3]: b
str2 = 'abc123\123' 求:str2[-5]:3

-# 5.字符串相关的方法:
python为字符串提供很多内建函数
字符串.函数()
注意:这些所有函数的所有功能都不会影响原来的字符串,而是产生新的字符串

str1 = 'hello python'

  1. capitalize() 将字符串的第一个字符转换成大写
    newstr1 = str1.capitalize()

print(newstr1, str1) # Hello python /hello python
print('abc'.capitalize())

2.center(width,fillchar)
让字符串变成width的长度,原内容居中,剩余的部分用fillchar来填充
width--整数;fillchar--任意字符
print('abc'.center(10,'*')) # ***abc****

3.rjust(width,fillchar)
让字符串变成width的长度,原内容靠右,剩余的部分使用fillchar来填充.
1 2 3 10 11 12 --->001 002 003 010 011 012
1-->0001 11-->0011 123-->0123
number ='12'
new_id = number.rjust(4, '0')
print(new_id) # 0012

4.原字符串.count(str)
判断str值在原字符串中出现的次数
str-->字符串
print('abccabaa'.count('ab')) # 2

print('贰1壹二2一'.isnumeric())

5.str1.join(str2)
在str2中的每个字符串之间插入一个str1
print('-+'.join('abc'))

6.str1.replace(old,new)
将str1中old全部替换成new
new_str = 'abcdahulapuyeahj'.replace('a','+')
print(new_str) # +bcd+hul+puye+hj

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容