Python | String Practice

Basic Python: Strings

1). str

Textual data in Python is handled with str objects, or strings. Strings are immutable sequences of Unicode code points.

Written in:

  • Single quotes: ‘allows embedded “double” quotes’
  • Double quotes: “allows embedded ‘single’ quotes”.
  • Triple quoted: ‘’’Three single quotes’’’, “””Three double quotes”””

2). Basic

Basic manipulate

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> s1 = 'string1'
>>> s2 = 'string2'
>>> len(s1)
7
>>> s1 + s2
'string1string2'
>>> s1 * 13
'string1string1string1string1string1string1string1string1string1string1string1string1string1'
>>> s1[0] in s2
True
>>> s1[0:5] in s2
True
>>> s1[0:5]
'strin'
>>> s1[5:1:-1]
'gnir'
>>> s1.replace('s', 'S')
'String1

Type Transfer

1
2
3
4
5
6
7
8
9
10
11
12
13

>>> str(43)
'43'
>>> str(43.124)
'43.124'
>>> int('43.124')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '43.124'
>>> int('43')
43
>>> float('43.124')
43.124

‘List’ String

1
2
3
4
5
6
7
8
9
10
11

>>> s_list = list('hello lroolle')
>>> s_list
['h', 'e', 'l', 'l', 'o', ' ', 'l', 'r', 'o', 'o', 'l', 'l', 'e']
>>> ''.join(s_list)
'hello lroolle'
>>> s_list.sort()
>>> ''.join(s_list)
' eehlllllooor'
>>> '~'.join(s_list)
' ~e~e~h~l~l~l~l~l~o~o~o~r'

Formatting

1
2
3
4
5
6
7
8
9
10
11

>>> str = "so %s a day!"
>>> str % 'beautiful'
'so beautiful a day!'

>>> '{0} is {1}'.format('a','b')
'a is b'

>>> template = "{0}, {1} and {2}"
>>> template.format('a', 'b', 'c')
'a, b and c'

3). Practice

Reverse Words

Given a sentence, reverse the words one by one, keeping the blank.

For example:

s = 'Hello Lroolle'

return olleH elloorL

1
2
3
4


def reverse_words(s):
return ' '.join(x[::-1] for x in s.split(' '))

##

4). Methods

string.capitalize()
字符串第一个字符大写

string.center(width,[,fill])
原字符居中,空格填充至width长度

string.count(str,beg=0,end=len(string))
获得字符串中某一个子串的数目,计算出现次数,可指定范围

string.decode(encoding=’UTF-8’,errors=’strict’)
解码字符串,出错默认报ValueError,除非errors是ignore或replace

string.encode(encoding=’UTF-8’,errors=’strict’)

string.endswith(suffix,beg=0,end=len(string)) / startswith
是否以**结尾

string.expandtabs(tabsize=8)
把字符串中tab转为空格,默认8个

string.find(str,beg=0,end=len(stirng))
检测是否包含str,存在返回开始索引,否则返回-1

string.index(str,begin=0,end=len(string))
同find,不存在报异常,ValueError

string.isalnum()
至少一个字符,且所有字符均为字母或数字,True. 检测字符串是否只包含0-9A-Za-z

string.isalpha()
至少一个字符,所有字符都是字母,True. 检测字符串是否只包含字母

string.isdecimal()
只包含十进制数,True

stirng.isdigit()
只包含数字,True. 检测字符串是否仅包含数字

string.islower()
至少一个区分大小写字符且所有字符小写,True. 检测字符串是否均为小写字母

string.isnumeric()
只含数字字符,True

string.isspace()
只包含空格,True. 检测字符串是否均为空白字符

string.istitle()
标题化字符,True. 检测字符串中的单词是否为首字母大写

string.isupper()
至少一个区分大小写字符且所有字符大写,True. 检测字符串是否均为大写字母

string.join(seq)
以string作为分隔符,seq中所有元素合并为新的字符串. 将原字符串插入参数字符串中的每两个字符之间

string.ljust(width)
返回一个原字符串左对齐,空格补充至长度width

string.lower()
转小写. 将字符串全部转为小写

string.lstrip()
截掉左侧的空格

string.partition(str)
= find+split,从str出现第一个位置,截断为pre_str,str,after_str元组,不含str则pre_str=str string.replace(str1,str2,num=string.count(str1)) 替换,指定不超过num次,可作为模板实现

string.rfind(str,beg=0,end=len(string))
同find,右边开始

string.rindex(str,beg=0,end=len(string))
同index,右边开始

string.rjust(width)
右对齐,空格补齐

string.rpartition(str)
同partition,右边开始

string.rstrip([chars])
清理右侧空白,包括换行符,返回处理后字符串

string.split(str=””, maxsplit =string.count(str))
以str切片,可指定分割次数, 分割字符串,返回列表,默认分隔符空格

string.splitlines(num=string.count(‘\n’))
s.splitlines([keepends]) 按行分隔,可指定分割次数

string.startswith(obj,beg=0,end=len(string))
以str开头,True. 检测字符串是否以某一子串开头

string.strip([obj])
在string上执行lstrip和rstrip

string.swapcase
反转string中大小写. 字符串中小写转大写,大写转小写

string.title()
标题花,单词首字母大写,其余小写

string.translate(str,del=””)
s.translate(table) 根据str给出表转换string字符,要过滤的字符放在del参数中

string.upper()
转大写. 将字符串全部转为大写

string.zfill(width)
返回长度width的字符串,原字符串右对齐,前面填充0