Compartilhamento de tecnologia

Capítulo 6 Objetos String e Operações de Fatiamento

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Índice

Capítulo 6 Objetos String e Operações de Fatiamento

6.1 Objeto String

6.2 Métodos comumente usados ​​em caracteres

6.3 Operação de fatiamento

Capítulo 6 Objetos String e Operações de Fatiamento

6.1 Objeto String

String: uma string que consiste em vários caracteres

Caracteres: símbolos visíveis a olho nu

Bytes: invisíveis a olho nu

Como python define strings:

aspas simples aspas duplas aspas triplas str()

6.2 Métodos comumente usados ​​em caracteres

 >>> dir(s)
 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

capitalizar ------- Coloque a primeira letra da string em maiúscula

 >>> s
 'this is a string'
 >>> s.capitalize()
 'This is a string'

center(width, fillchar=' ') ------ Centralize a string de acordo com o comprimento fornecido e alinhe-a no centro

apenas --------- alinhado à direita

apenas ------ alinhamento à esquerda

 >>> help(s.center)
 Help on built-in function center:
 ​
 center(width, fillchar=' ', /) method of builtins.str instance
     Return a centered string of length width.
 ​
     Padding is done using the specified fill character (default is a space).
 ​
 >>> s.center(40)
 '            this is a string            '
 >>> s.center(40,"*")
 '************this is a string************'
 >>> s.rjust(40)
 '                        this is a string'
 >>> s.ljust(40)
 'this is a string                        '
 >>> s.ljust(40,"*")
 'this is a string************************'
 >>> s.rjust(40,"*")
 '************************this is a string'

contagem --------- conta o número de vezes que um caractere aparece em uma string

 >>> s
 'this is a string'
 >>> s.count("s")
 3
 >>> s.count("is")
 2

termina com ------- Determine se a string termina com XXX

começa com ------- Determine se a string começa com XXX

 >>> s.endswith("g")
 True
 >>> s.endswith("ing")
 True
 >>> s.endswith("f")
 False
 >>> s.startswith("t")
 True
 >>> s.startswith("f")
 False

índice ------ A posição onde o caractere ou string pesquisado aparece pela primeira vez na string. Se não existir, uma exceção (relatório de erro) será lançada.

rindex ------- Pesquise da direita para a esquerda, a posição onde o caractere ou string que está sendo pesquisado aparece primeiro na string (equivalente à última ocorrência do caractere ou string pesquisando da esquerda para a direita na string) localização ), se não existir, lança uma exceção (relata um erro)

 >>> s
 'this is a string'
 >>> s.index("s")
 3
 >>> s.index("is")
 2
 >>> s.index("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found
 >>> s.index(" ")
 4
 >>> s.rindex("s")
 10
 >>> s.rindex("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found

find ------- A posição da primeira ocorrência do caractere ou string que está sendo pesquisado na string. Se não existir, -1 será retornado.

rfind----- Pesquise da direita para a esquerda, a posição da primeira ocorrência do caractere ou string que está sendo pesquisado na string (equivalente à posição da última ocorrência do caractere ou string na string encontrada da esquerda para certo), retorna -1 se não existir

 >>> s
 'this is a string'
 >>> s.find("s")
 3
 >>> s.find("f")
 -1
 >>> s.rfind("f")
 -1
 >>> s.rfind("s")
 10

encode ----- método para converter strings em bytes em python3, método decode() para converter bytes em strings (método em bytes)

 >>> s
 'this is a string'
 >>> s.encode()
 b'this is a string'
 >>> d = s.encode()
 >>> d
 b'this is a string'
 >>> type(d)
 <class 'bytes'>
 >>> d
 b'this is a string'
 >>> d.decode()
 'this is a string'
 >>> ss = d.decode()
 >>> ss
 'this is a string'
 >>> type(ss)
 <class 'str'>

formato ------ formatar string, concatenar strings

isupper ------ Determina se a string contém todas as letras maiúsculas

islower ----- ------ Determine se a string contém todas as letras minúsculas

>>> s.isupper()
False
>>> s.islower()
False

istitle ----- Determine se é um título

>>> s.istitle()
False
>>> ss = "This Is A Dog"
>>> ss.istitle()
True

isspace ----- Não é comumente usado para determinar se é um espaço.

>>> sss = "       "
>>> sss.isspace()
True
>>> ss
'This Is A Dog'
>>> ss.isspace()
False

isdigit ------ Determine se é um número

>>> sss = "123234344"
>>> sss.isdigit()
True
>>> ss
'This Is A Dog'
>>> ss.isdigit()
False
>>> sss = "1233443gggg"
>>> sss.isdigit()
False

isalnum ------ determina se são letras e números (alfanuméricos)

>>> help(s.isalnum)
Help on built-in function isalnum:

isalnum() method of builtins.str instance
    Return True if the string is an alpha-numeric string, False otherwise.

    A string is alpha-numeric if all characters in the string are alpha-numeric and
    there is at least one character in the string.

>>> sss
'1233443gggg'
>>> sss.isalnum()
True
>>> ss
'This Is A Dog'
>>> ss.isalnum()
False

isalpha ------ determina se é uma carta

título ----- Converter string para formato de título

>>> s
'This is a string'
>>> s.istitle()
False
>>> s.title()
'This Is A String'
>>> sss = s.title()
>>> sss
'This Is A String'
>>> sss.istitle()
True

superior ------- Converte string em maiúscula

lower ------- Converte string em minúsculas

>>> s
'This is a string'
>>> s.lower()
'this is a string'
>>> s.upper()
'THIS IS A STRING'

split ----- Divida a string de acordo com o símbolo especificado e o valor de retorno é uma lista

>>> s
'This is a string'
>>> s.split(" ")
['This', 'is', 'a', 'string']
>>> l = s.split(" ")
>>> l
['This', 'is', 'a', 'string']
>>> type(l)
<class 'list'>
>>> l = s.split("s")
>>> l
['Thi', ' i', ' a ', 'tring']

join ------ concatena um objeto iterável em uma string de acordo com o formato especificado

>>> ls = ["A","B","c","d"]
>>> type(ls)
<class 'list'>
>>> ss = " ".join(ls)
>>> ss
'A B c d'
>>> type(ss)
<class 'str'>
>>> ss = "*".join(ls)
>>> ss
'A*B*c*d'

tira ------- remova espaços em ambos os lados

rstrip ------ limpe os espaços à direita

lstrip -------- limpar espaços à esquerda

>>> ss = "                              hhhhhhh                                  "
>>> ss
'                              hhhhhhh                                  '
>>> ss.strip()
'hhhhhhh'
>>> ss.strip()
'hhhhhhh'
>>> ss
'                              hhhhhhh                                  '
>>> ss.rstrip()
'                              hhhhhhh'
>>> ss.lstrip()
'hhhhhhh                                  '

substituir ("caractere original", "novo caractere") ------ Substitua o caractere correspondente

>>> s
'This is a string'
>>> s.replace("s","t")
'Thit it a ttring'

6.3 Operação de fatiamento

Fatia: usada para separar objetos iteráveis ​​(contêineres)

Regras de gramática:

object[start_index:end_index:step]

start_index ------- Índice inicial (posição inicial)

end_index ------ Índice final (posição final), não inclui o valor em end_index

passo ---- tamanho do passo, pode ser um número positivo ou negativo, número positivo (da esquerda para a direita) número negativo (da direita para a esquerda), o valor padrão é 1

object[:]  ----- 切割的是一个完整的对象
object[start_index:]  ------ 从start_index开始切割到最后的位置,步长为1
object[:end_index] ------ 从最开始的位置切割到end_index处,但是不包含end_index
object[start_index:end_index] ------- 从start_index开始切割到end_index处,但是不包含end_index,步长为1
object[start_index:end_index:step] ------------ 从start_index开始切割到end_index处,但是不包含end_index,步长为step  

O intervalo entre o fechamento frontal e a abertura traseira

ls = [0,1,2,3,4,5,6,7,8,9]

1. Corte um único valor

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[0]
0
>>> ls[-4]
6

2. Corte o objeto completo

>>> ls[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::-1]  #-1 表示从右往左切割 所以是倒序
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3. start_index e end_index são números positivos

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:6]
[1, 2, 3, 4, 5]
>>> ls[1:6:-1]  # start_index=1 end_index = 6表示的是从1切割到6的位置,但是不包含6处的值,从左往右切割,step=-1 表示从右往左   
[]
>>> ls[6:1]
[]
>>> ls[6:1:-1]
[6, 5, 4, 3, 2]
>>> ls[:6]
[0, 1, 2, 3, 4, 5]
>>> ls[:6:-1]
[9, 8, 7]
>>> ls[6:]
[6, 7, 8, 9]
>>> ls[6::-1]
[6, 5, 4, 3, 2, 1, 0]
>>>

4. start_index e end_index são números negativos

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[-1:-6]
[]
>>> ls[-1:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:-1]
[4, 5, 6, 7, 8]
>>> ls[:-6]
[0, 1, 2, 3]
>>> ls[:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:]
[4, 5, 6, 7, 8, 9]
>>> ls[-6::-1]
[4, 3, 2, 1, 0]

5. Start_index e end_index são combinados com positivo e negativo

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:-6]
[1, 2, 3]
>>> ls[1:-6:-1]
[]
>>> ls[-1:6]
[]
>>> ls[-1:6:-1]
[9, 8, 7]

6. Fatiamento contínuo

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[:8][2:5][-1:]
[4]
ls[:8] ----- [0,1,2,3,4,5,6,7]
ls[:8][2:5]   -----   [2,3,4]
ls[:8][2:5][-1:] ----- [4]

7. Os três parâmetros de fatiamento também podem ser expressões

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[2+1:3*2:7%3]
[3, 4, 5]
>>> ls[3:6:1]
[3, 4, 5]
>>> ls[2:6:2]
[2, 4]

8. Fatiar também pode cortar outros objetos

>>> (1,2,3,4,5,6,7,8,9)[:3]
(1, 2, 3)
>>> "ABCDEFGHIJK"[::2]
'ACEGIK'
>>> for i in range(1,100)[2::3][-10:]:
...     print(i)
...
72
75
78
81
84
87
90
93
96
99

Questões de entrevista:

1. Se o intervalo de subscritos for excedido ao usar fatias para cortar dados, será relatado um erro?

Nenhum erro será relatado. Se exceder o intervalo, o objeto completo será retornado. Se for inconsistente, [] será retornado.

2. Como reverter a saída de uma lista em python?

loop reverso

[::-1]

lista.reverso()