沐枫凌-python 新手教学(4)--字符串

上一节我讲到了python的数学运算,这一节我们来了解了解python的字符串。

作为社团的python领导人,总有些玩了python两三天的学弟还问我"字符串是什么?"

下面的东西就是字符串

'hello world!'            #这就是字符串
"hello world!"            #这也是字符串
'123'                     #这还是字符串
'124+asd;z,].x,./cas'     #这种东西也是字符串
''                        #就连这个都是字符串

好了,言归正传(- _ -)

字符串的官方解释

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

简单来说 单引号'  ' 或 双引号"  " 包括起来的东西就是字符串(包括引号本身)

我们可以将字符串赋值给一个变量,例

a = 'hello world!'
b = "hello world!"

接下来有两种显示的方式

(1)直接打a或b,然后按回车,下面是输出结果

'hello world!'    #a的输出结果
"hello world!"    #b的输出结果

(2)通过print()来打印a或b,下面是输出结果

hello world!    #print(a)的结果
hello world!    #print(b)的结果
可以看到使用print()打印出来的字符串少了引号,这是因为直接输入a或b,反应的是a或b的具体赋值内容(因为是字符串,所以文字边要带有引号),使用print()是反应了变量所被赋值的字符串的文字内容,所以只输出了里面的文字内容

字符串的特殊运算方式

不要惊讶,字符串可以进行数学运算!我直接上例子:

print('hello'+'world'+'!')        
print('hello'*2)

下面是输出结果:

helloworld!        #print('hello'+'world'+'!')的结果
hellohello         #print('hello'*2)的结果

!!但是!!==>字符串有不可以这样操作!

'hello'*'hello'        #错的
'hello'**2             #错的
'hello'+123            #错的
'hellow'-'w'           #错的
'hellohello'/2         #错的

如果将一段字符串视为一个苹果,苹果*2 = 两个苹果,苹果*苹果 = ?

所以大家只要记得字符串之间可以进行加法运算,可以使一个字符串乘以一个数,

然后在加法运算的时候字符串不能加上数字(下面我特地演示一下)

'hello'+'2'  #可以
'hello'+2    #不可以

'2'是字符串,2是数字,字符串和数字之间是不能进行加法运算的,但能进行乘法运算!!

!!!最重要的是这里的'',""是英文键盘下的引号,不是中文键盘下的‘’,“”,应该说所有的中文符号在python中不支持!!!

字符串中的特殊符号

'\'    #反斜杠——转义字符    '\n'    #换行字符标志    '\r'    #回车    '\t'    #水平制表(HT) (跳到下一个TAB位置)

'\0'    #空格        

下面给出代码示例

反斜杠的使用

print('i don't like you')

你看到了里面有三个单引号,但是每两个引号之间构成一段字符串(从左到右),也就是说在'i don'后面的东西就不是字符串了,读者可以吧上面的代码赋值到交互编辑内按回车,你会发现python会给你报错,那么我们在第二个单引号前面添加\(反斜杠)会解决这个问题

print('i don\'t like you')

有时还会有这样的代码

print('this is \')

要是想让反斜杠也作为普通的字符串的话可以这样

print('this is \\string')    #这里使用前面的反斜杠把后面的反斜杠给普通意义化了
print(r'this is \string')    #直接在整段字符串前加r,让字符串内的所有特殊字符普通意义化

其他特殊字符的使用

\n的使用

print('hello\nworld!')

结果

hello
world

\r的使用

print('hello\rworld')

结果(因为相当于你在打了hello之后按了一个回车)

world

\t的使用

print('\thello!')

结果(相当于你在hello前按了个TAB)

        hello

\0的使用

print('hello\0world!')

结果

hello world!
字符串的编码问题

所有的字符都有编码,在python的文件中通常使用的是UTF-8,编码错误的话会导致出现一些火星语让你看不懂

具体的情况我会分到一个特殊的节选来讲

字符串的切片

有学弟问我字符串的切片是什么?


简单来讲就像是切分寿司,下面我将把字符串(寿司)切成三份

<我是长条寿司>==>'oasjdoasjdsoasdsassncczxhzsad'

<我是短条寿司>==>'oasjdoasjd','soasdsass','ncczxhzsad'

这就是字符串的切片,但是python中的切片通常是这样执行的

"我是字符串"[3] ==> "符","我是字符串"[0:2] ==> "我是"

通式就是"xxxxx"[x,y]        #提取该字符串的第x个位置到第y-1个位置的字符(即[x,y),左闭右开)

!!!有一个很重要的细节是字符串中的第一个字符的位置是0号!!!

!!!还有一个细节是特殊字符如(\n)不是两个字符,\n等特殊字符算作一个字符!!!

也就是说"你好啊","你"的位置是该字符串的第0号位置,然后依次后退,下面展示代码

print('我喜欢使用python'[4])
print("我喜欢使用python"[0:4])
print("我喜欢使用python"[4:])
print("我喜欢使用python"[-1])
print("我喜欢使用python"[-3:-1])
print("这里有特殊字符\n哦"[7])

下面是上面依次的结果

用        #print('我喜欢使用python'[4])的结果
我喜欢使用 #print("我喜欢使用python"[0:4])的结果
用python  #print("我喜欢使用python"[4:])的结果
n         #print("我喜欢使用python"[-1])的结果
ho        #print("我喜欢使用python"[-3:-1])的结果
          #这是一个换了行的空行
          #print("这里有特殊字符\n哦"[7])的结果

字符串的特殊使用方式

#以下的x代指字符串
x.capitalize()#将字符串第一个字母大写

x.center(y)#将原始字符串居中,返回一个共y个字符的字符串(其他的地方使用空格填充)

x.count(m,n=0,z=len(x))#返回原始字符串中m出现的次数,x为字符串,n是检索的字符串的起始位置,z是结束位置(n,z可以不写,就默认为全部)

x.encode(y)#以指定形式编码,y可以是utf-8或ANSI

x.decode(y)#以指定形式编码,y可以是utf-8或ANSI

x.find(y)#返回第一个y在str中的位置,如果没有则返回-1,x是字符串

x.format()#格式化字符串

x.index(y)#返回第一个y在str中的位置,如果没有则报错,x是字符串

x.isalnum()#如果str内至少有一个字符,且这些字符是字母或者是数字的话就返回True,否则False

x.isalpha()#如果str至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

x.isdecimal()#如果str只包含十进制数字则返回 True 否则返回 False.

x.isdigit()#如果str只包含数字则返回 True 否则返回 False.

讲的差不多了,感觉讲了好多得意

但是听的多远远不及练的多好,作为程序员要有一个长练手的心才能强大起来!

下一节我将会讲python的条件判断,条件判断符号,条件判断的示例代码,希望你们能有所收获哦!

沐枫凌-python 新手教学(5)--条件判断













猜你喜欢

转载自blog.csdn.net/weixin_42582160/article/details/80873756