字符串

  字符串是不可变类型,就是说改变一个字符串的元素需要新建一个新的字符串.字符串是由 独立的字符组成的,并且这些字符可以通过切片操作顺序地访问。 双引号或者单引号中的数据,就是字符串

【1】字符串的定义

  定义变量aString,存储的是字符串类型的值

aString = "pyhton"
或者
aString = 'python'

【2】字符串输出

name = 'hugo'
position = 'webFont'

print('--------------------------------------------------')
print("姓名:%s" % name)
print("职位:%s" % position)
print('--------------------------------------------------')

结果如下;
--------------------------------------------------
姓名:hugo
职位:webFont
--------------------------------------------------

【3】字符串输入

  input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

userName = input('请输入用户名:')
print("用户名为:%s"%userName)
password = input('请输入密码:')
print("密码为:%s"%password)

  根据输入的内容显示该内容

【4】下标

  下面以字符串'abcd'为例子.表里面分别列出了使用正索引和负索引来定位字符的情况. 可以用长度操作符来确认该字符串的长度是 4: 

 
aString = 'abcde'
aString[0]
#a
aString[1]
#b
aString[4]
#e
aString[-1]
#e

【5】切片

  切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

  语法:

 [起始:结束:步长]

  注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

>>> name = 'abcdef'
#取下标0~2 的字符
>>> name[0:3]
'abc'

# 取下标为0~4 的字符
>>> name[0:5]
'abcde'

#取下标为3、4 的字符
>>> name[3:5]
'de'

#取下标为3、4 的字符
>>> name[2:]
'cdef'

#取下标为1开始到最后第2个之间的字符
>>> name[1:-1]
'bcde'

#取从0开始到第二个之前的字符
>>> name[:3]
'abc'

#取从第一个到最后一个,步长为2
>>> name[::2]
'ace'


>>> name[5:1:2]
''

#取第一个到第四个之间的字符串,步长为2
>>> name[1:5:2]
'bd'

#开始到结束,步长为-2
>>> name[::-2]
'fdb'

#取第五个到第一个,步长为-2
>>> name[5:1:-2]
'fd'

 【6】Python字符串运算符

  下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符描述实例
+ 字符串连接
>>>a + b 'HelloPython'
* 重复输出字符串
>>>a * 2 'HelloHello'
[] 通过索引获取字符串中字符
>>>a[1] 'e'
[ : ] 截取字符串中的一部分
>>>a[1:4] 'ell'
in 成员运算符 - 如果字符串中包含给定的字符返回 True
>>>"H" in a True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
>>>"M" not in a True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
>>>print r'\n' \n >>> print R'\n' \n

【7】python的字符串内建函数

  • find()  检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

    语法:str.find(str, start=0, end=len(str))

>>> str = "hello world"
>>> str.find("world")
6
>>> str.find("world",0,5)
-1
  • index()  跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

       语法:str.index(str, start=0, end=len(str)) 

>>>str = "hello world"
>>> str.index("world",0,5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
  • count() 返回 str在start和end之间 在 mystr里面出现的次数

       语法:str.count(str, start=0, end=len(str))    

str = "hello world"
>>> str.count("l")
3
  • replace() 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

    语法: str.replace(str1, str2, str.count(str1))

>>> str = "hello world hw hw"
>>> str.replace("hw","HW")
'hello world HW HW'
>>> str.replace("hw","HW",1)
'hello world HW hw'
>>>
  • split()  切片

>>> str='hello world hw hw'
>>> str.split(" ")
['hello', 'world', 'hw', 'hw']
>>> str.split(" ",2)
['hello', 'world', 'hw hw']
  • capitalize()  把字符串的第一个字符大写
>>>str = "hello"
>>>str.capitalize()
Hello
  • title()  把字符串的每个单词首字母大写
>>> a = "hello world"
>>> a.title()
'Hello World'
  • startswith()   检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
>>>str = "hello world"
>>>str.startswith("hello")
True
>>>str.startswith("Hello")
False
  • endswith()   检查字符串是否以obj结束,如果是返回True,否则返回 False.

>>>str = "hello world"
>>>str.endswith("world")
True
>>>str.endswith("World")
False
  • lower()  将字符串中所有大写字符为小写

>>>str = "HeLLo World"
>>>str.lower()
hello world
  • upper()  将字符串中所有小写字符为大写

>>>str = "hello World"
>>>str.upper()
HELLO WORLD
  • ljust()  返回一个原字符串左对齐,并使用空格填充至长度width

>>>str = "hello World"
>>>str.upper()
HELLO WORLD
  • rjust()  返回一个原字符串右对齐,并使用空格填充至长度width

>>> str = "hello"
>>> str.rjust(10)
'     hello'
  • center()  返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 

>>> str = "hello"
>>> str.center(30)
'            hello             '
  • lstrip()  删除字符串左边的空白字符
>>> str = "    hello    "
>>> str.lstrip()
'hello    '
  •  rstrip()  删除字符串右边的空白字符

>>> str = "    hello    "
>>> str.rstrip()
'    hello'
  • strip()  删除mystr字符串两端的空白字符 

>>> str = "    hello    "
>>> str.strip()
'hello'
  • rfind()  类似于 find()函数,不过是从右边开始查找.

    语法:str.rfind(str, start=0,end=len(str) )

 

>>> str = "    hello    "
>>> str.strip()
'hello'
  • rindex() 类似于 index(),不过是从右边开始.

  • partition() 把mystr以str分割成三部分,str前,str和str后

>>> str = "hello world hello world"
>>> str.partition("world")
('hello ', 'world', ' hello world') 
  • rpartition()  类似于 partition()函数,不过是从右边开始.
>>> str = "hello world hello world"
>>> str.partition("world")
('hello ', 'world', ' hello world') 
  • splitlines()  按照行分隔,返回一个包含各行作为元素的列表
>>> str = "hello world hello world"
>>> str.partition("world")
('hello ', 'world', ' hello world') 
  • isalpha()  如果字符串所有字符都是字母 则返回 True,否则返回 False

>>> str.splitlines()
['hello', 'world']
>>> str = 'python'
>>> str.isalpha()
True
>>> str2 = '12abc'
>>> str2.isalpha()
False
  • isdigit() 如果字符串所有字符都是数字 则返回 True,否则返回 False

 

>>> str = "123"
>>> str.isdigit()
True
>>> str2 = "123abc"
>>> str2.isdigit()
False

 

  • isalnum()  如果字符串所有字符都是字母或数字则返回 True,否则返回 False
>>> str = "123"
>>> str.isalnum()
True
>>> str2 = "abc"
>>> str2.isalnum()
True
>>> str3 = "123abc"
>>> str3.isalnum()
True
>>> str4 ="abc 123"
>>> str4.isalnum()
False
  • isspace() 如果字符串中只包含空格,则返回 True,否则返回 False.

>>> str = ""
>>> str.isspace()
False
>>> str2 =" "
>>> str2.isspace()
True
>>> str3 = "     "
>>> str3.isspace()
True
>>> str4 = "abc 123"
>>> str4.isspace()
False
  • join() 字符串 中每个字符后面插入字符串 ,构造出一个新的字符串 

>>> str = ""
>>> str.isspace()
False
>>> str2 =" "
>>> str2.isspace()
True
>>> str3 = "     "
>>> str3.isspace()
True
>>> str4 = "abc 123"
>>> str4.isspace()
False

 

其他:

字符串反转

>>> str = "hello world"
>>> str[::-1]
'dlrow olleh' 

 分割字符串:

  

>>> str = "hello world \t heihei \t this is a test \t ni hao \npython"
>>> str.split()
['hello', 'world', 'heihei', 'this', 'is', 'a', 'test', 'ni', 'hao', 'python']

 

 

有道词典
>>> str = "hello"
详细X
> > > str = "你好"

 

 

有道词典
>>> str = " ...
详细X
  > > > str = "你好"   > > > str.rstrip()   “你好”

posted @ 2018-02-27 14:20  今晚打老虎i2016  阅读(270)  评论(0编辑  收藏  举报