2020
Strings são uma tipo de lista imutável
a = "qwerty"
b = 'quer 776 \nty'
c = ""
d = ''
a sequencia \n
quando impressa causa uma mudanca de
linha e conta como apenas 1 caracter
o string vazio '' ou ""
como listas, acessar um elemento usando [indice]
funciona,
os elementos de um string deveriam ser letras ou caracteres, mas Python representa letras ou caracteres como um string de apenas um elemento
a[2]
concatenação str1+str2 funciona
len funciona
for funciona
o teste sub in str para string verifica se o sub é um substring (um trecho) do str
>>> a= 'qwerty'
>>> 'er' in a
True
>>> 'ery' in a
False
o == funciona em strings
o > funciona em strings - ordem lexicográfica ou ordem do dicionário - nao tem nada a ver com tamanho
>>> a = "zip"
>>> b = "abacaxi"
>>> a<b
False
>>> b<a
True
embora haja varios metodos para strings, nenhum deles modifica seu argumento (teoricamente eles deveriam ser funções)
O método split(sep) separa uma string usando sep como separador. Retorna uma lista das substrings.
>>> a="1; 2 ; 3"
>>> a.split(';')
['1', ' 2 ', ' 3']
O método split() separa usando espaço, o ‘\ n’ e o tab como separador (incluindo multiplos deles).
>>> b="ouviram do ipiranga margens"
>>> b.split()
['ouviram', 'do', 'ipiranga', 'margens']
Note que podem haver substrings vazias no retorno de split().
>>> a="1;2;;3"
>>> a.split(';')
['1', '2', '', '3']
O método replace serve para trocar todas as ocorrências de uma substring por outra em uma string.
>>> z="abcabcdfgabc abc a b c"
>>> z.replace("abc","")
'dfg a b c'
Podemos usar a função list para transformar uma string em uma lista onde os itens da lista correspondem aos caracteres da string.
>>> a='abc\n;abc'
>>> list(a)
['a', 'b', 'c', '\n', ';', 'a', 'b', 'c']
O método join recebe como parâmetro uma lista de strings, e retorna uma string com a concatenação dos elementos da sequencia/lista.
>>> l = ['a', 'bc', '\n', ';', 'ab', 'c']
>>> "".join(l)
'abc\n;abc'
>>> ", ".join(l)
'a, bc, \n, ;, ab, c'
o metodo strip remove bancos do começo e no fim de strings. Os brancos no meio ficam.
>>> a = " kkjfa lakdlask "
>>> a.strip()
'kkjfa lakdlask'
a função str converte um tipo de dado para string
>>> a = 9.78
>>> str(a)
"9.78"
funcao find acha o indice de onde comeca um substring no string
>>> "abc def ghi".find("c d")
>>> 2
>>> "abc def ghi".find("c dx")
>>> -1
e mutas outros metodos.
>>> z = 'ouviram do ipiranga margens'
>>> z[3]
'i'
>>> z[3:7]
'iram'
string[a:b]
- o substring que comeca no indice
a
e vai até b-1
(como no range!!)
o primeiro indice pode estar em branco, significa 0
z[:7]
significa z[0:7]
o segundo item pode estar em branco - significa o fim do string
z[7:]
signfica z[7:len(z)]
isso funciona para qualquer lista tambem voltaremos a falar disso em outra aula.
Normalmente usado com o print
saldo = 37.67853
nome = "José"
print("O nome do aluno é " + nome + " e o saldo é " + str(saldo))
saida = "O nome do aluno é " + nome + " e o saldo é " + str(saldo)
print(saida)
Cria um string com especificações de como imprimir partes faltantes
cujos valores virao numa tupla depois do %
saida = "O nome do aluno é %s e o saldo é %.2f " % (nome, saldo)
saida
% dentro do string diz como o proximo argumento sera incluido no string
o % de fora liga o string sendo costruido com os argumentos
%s - o proximo argumento sera um string
%7s use 7 casas para incluir o proximo argumento, e isso pode incluir novos brancos ou truncar o sting original
%f o proximo argumento sera um float
%.2f use 2 casas depois do ponto decimal
%d o proximo argumento sera um numero
e muitas outras opções
https://realpython.com/python-modulo-string-formatting/
Usa um string de contole começado com f
antes do
string
saida = f"O nome do aluno é {nome}, o saldo é {saldo:.2f} e a idade é {idade}"
saida
https://realpython.com/python-f-strings/
https://docs.python.org/3/tutorial/inputoutput.html
a pagina da documentação do Python sobre strings https://docs.python.org/3/library/stdtypes.html#textseq
escreva uma funcao que recebe um string no formato: nome; endereco; CPF; salario onde salario é um numero, e retorna um string com nome, novo-salario onde o novo salario reflete um aumento de 8% no salario velho
def calcular_novo_salario(info):
# Dividindo a string pelos ponto e vírgula
partes = info.split("; ")
# Obtendo o nome e o salário da lista de partes
nome = partes[0]
salario_antigo = float(partes[3]) # Convertendo o salário para float
# Calculando o novo salário com aumento de 8%
novo_salario = salario_antigo * 1.08
# Retornando o nome e o novo salário formatados como string
return f"{nome}, {novo_salario:.2f}"