-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
96a8f31
commit 63f19aa
Showing
5 changed files
with
249 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
(tipos-de-dados-numericos)= | ||
# Tipos de dados numéricos | ||
|
||
<div style="text-align: justify"> | ||
|
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,244 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Strings" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"<div style=\"text-align: justify\">\n", | ||
"\n", | ||
"Na seção [tipos de dados numéricos](tipos-de-dados-numericos) já começamos a ver um pouco sobre dois tipos de dados bastante comuns: `int` e `float`.\n", | ||
"\n", | ||
"Nesta seção vamos apresentar outro tipo de dado representando textos. Tal estrutura também é chamado de `string` ou simplesmente `str`. Elas são utilizadas para armazenar e manipular texto. Neste capítulo, vamos explorar os conceitos básicos de strings e como trabalhar com elas em Python." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Definição" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Em Python, uma `string` é uma sequência de caracteres. Você pode definir uma string usando aspas simples `'Texto com aspas simples'` ou aspas duplas `\"Texto com aspas dupla\"`. \n", | ||
"\n", | ||
"Quando não há a presença de `'` ou `\"` na `string`, usar aspas simples ou duplas é indiferente. Agora se o seu texto contiver uma das duas, como por exemplo, o texto *Ela disse \"Olá mundo!\"*, como `\"` faz parte do texto, só é possível criar uma `string` com esse texto entre aspas simples `'`, conforme exemplo abaixo." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"msg_aspas_dupla = 'Ela disse \"Olá mundo!\"'\n", | ||
"print(msg_aspas_dupla)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Caso contrário, o Python pode confundir o que é aspas de abertura e fechamento da `string` com aspas do próprio texto. Observem no exemplo abaixo:" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": { | ||
"tags": [ | ||
"raises-exception" | ||
] | ||
}, | ||
"outputs": [], | ||
"source": [ | ||
"erro_de_sintaxe = \"Ela disse \"Olá mundo!\"\"\n", | ||
"print(erro_de_sintaxe)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"De forma a evitar tal erro, como recomendação geral, sempre que seu texto contiver `'`, a `string` deve ser iniciar e encerrar com `\"`. Da mesma forma, se o texto contiver `\"`, a `string` deve iniciar e encerrar com `'`." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"É possível definir também uma `string` com multiplas linhas usando três aspas duplas `\"\"\"` ou três aspas simples `'''`." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Esta é uma string\n", | ||
"que se estende por\n", | ||
"várias linhas.\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"msg_varias_linhas = \"\"\"Esta é uma string\n", | ||
"que se estende por\n", | ||
"várias linhas.\"\"\"\n", | ||
"print(msg_varias_linhas)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Operações com strings" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"### Concatenação" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Sabe aquela história de que `1 + 1 = 11`? Pois bem! Isso é, em partes, verdade! Vamos entender melhor.\n", | ||
"\n", | ||
"Aqui vamos fazer uma distinção clara entre operações com `string` de operações com `int`.\n", | ||
"\n", | ||
"Quando somamos dois inteiros, o Python realiza a operação matemática de soma, conforme já vimos anteriormente." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"2\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"print(1 + 1)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Porém, é possível representar `1` como o caracter número um, da seguinte forma" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"11\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"print(\"1\" + \"1\")" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Percebam que são operações completamente diferentes! \n", | ||
"\n", | ||
"No primeiro caso acima, estamos somando o número inteiro `1` com outro número inteiro `1` (ambos são `int`), resultando em `2`.\n", | ||
"\n", | ||
"Já no segundo caso, estamos juntando o caracter `1` com outro caracter `1` (ambos são strings), resultando em `11`. Tal operação de juntar texto é chamada de concatenação.\n", | ||
"\n", | ||
"Agora você entende que `1 + 1` pode ser `11`? No caso em que ambos `1` forem `string`!" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"### Replicação" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Da mesma forma que podemos concatenar strings usando `+`, podemos replicar uma string várias vezes usando `*`. " | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 4, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"hahahahahahahahahaha\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"risada = \"ha\" * 10\n", | ||
"print(risada)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Novamente, não é multiplicação matemática pois não estamos trabalhando com valores numéricos `int` ou `float`, mas sim uma replicação de texto, uma operação diferente!" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": ".venv", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.12.2" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters