1 2<!doctype html> 3<html lang="es" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7<!-- This site is hosted on Netlify. Anyone can build and deploy a site 8 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=9b2b6b0e-4862-4874-a15a-bc28c3a98e3b 9 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 10 <meta name="viewport" content="width=device-width,initial-scale=1"> 11 12 <meta name="description" content="GuÃa online para aprender Python de cero a experto."> 13 14 15 <meta name="author" content="Jon Vadillo"> 16 17 18 <link rel="canonical" href="https://cursopython.netlify.app/02-Tipos-de-datos-y-Variables/"> 19 20 <link rel="icon" href="../images/favicon.svg"> 21 <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.0b4"> 22 23 24 25 <title>Tipos de datos y variables - Aprende Python de cero a experto</title> 26 27 28 29 <link rel="stylesheet" href="../assets/stylesheets/main.91872f81.min.css"> 30 31 32 <link rel="stylesheet" href="../assets/stylesheets/palette.2505c338.min.css"> 33 34 35 36 37 38 39 40 41 42 43 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 44 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> 45 <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> 46 47 48 49
49<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
49 50 51 52 53 54 55 56 </head> 57 58 59 60 61 62 63 64 <body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="amber"> 65 66 67 68
68<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
68 69 70 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 71 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 72 <label class="md-overlay" for="__drawer"></label> 73 <div data-md-component="skip"> 74 75 76 <a href="#variables-y-tipos-de-datos" class="md-skip"> 77 Saltar a contenido 78 </a> 79 80 </div> 81 <div data-md-component="announce"> 82 83 </div> 84 85 86 87 88<header class="md-header" data-md-component="header"> 89 <nav class="md-header__inner md-grid" aria-label="Cabecera"> 90 <a href=".." title="Aprende Python de cero a experto" class="md-header__button md-logo" aria-label="Aprende Python de cero a experto" data-md-component="logo"> 91 92 <img src="../images/logo1.svg" alt="logo"> 93 94 </a> 95 <label class="md-header__button md-icon" for="__drawer"> 96 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> 97 </label> 98 <div class="md-header__title" data-md-component="header-title"> 99 <div class="md-header__ellipsis"> 100 <div class="md-header__topic"> 101 <span class="md-ellipsis"> 102 Aprende Python de cero a experto 103 </span> 104 </div> 105 <div class="md-header__topic" data-md-component="header-topic"> 106 <span class="md-ellipsis"> 107 108 Tipos de datos y variables 109 110 </span> 111 </div> 112 </div> 113 </div> 114 115 <form class="md-header__option" data-md-component="palette"> 116 117 118 <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_1"> 119 120 <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_2" hidden> 121 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg> 122 </label> 123 124 125 126 <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2"> 127 128 <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> 129 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg> 130 </label> 131 132 133 </form> 134 135 136 137 <label class="md-header__button md-icon" for="__search"> 138 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> 139 </label> 140 <div class="md-search" data-md-component="search" role="dialog"> 141 <label class="md-search__overlay" for="__search"></label> 142 <div class="md-search__inner" role="search"> 143 <form class="md-search__form" name="search"> 144 <input type="text" class="md-search__input" name="query" aria-label="Búsqueda" placeholder="Búsqueda" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> 145 <label class="md-search__icon md-icon" for="__search"> 146 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
146<path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> 147 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> 148 </label> 149 <nav class="md-search__options" aria-label="Search"> 150 151 <button type="reset" class="md-search__icon md-icon" title="Limpiar" aria-label="Limpiar" tabindex="-1"> 152 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> 153 </button> 154 </nav> 155 156 </form> 157 <div class="md-search__output"> 158 <div class="md-search__scrollwrap" data-md-scrollfix> 159 <div class="md-search-result" data-md-component="search-result"> 160 <div class="md-search-result__meta"> 161 Inicializando búsqueda 162 </div> 163 <ol class="md-search-result__list"></ol> 164 </div> 165 </div> 166 </div> 167 </div> 168</div> 169 170 171 <div class="md-header__source"> 172 <a href="https://github.com/jvadillo/aprende-python-web" title="Ir al repositorio" class="md-source" data-md-component="source"> 173 <div class="md-source__icon md-icon"> 174 175 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> 176 </div> 177 <div class="md-source__repository"> 178 jvadillo/aprende-python-web 179 </div> 180</a> 181 </div> 182 183 </nav> 184 185</header> 186 187 <div class="md-container" data-md-component="container"> 188 189 190 191 192 193 194 <main class="md-main" data-md-component="main"> 195 <div class="md-main__inner md-grid"> 196 197 198 199 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > 200 <div class="md-sidebar__scrollwrap"> 201 <div class="md-sidebar__inner"> 202 203 204 205<nav class="md-nav md-nav--primary" aria-label="Navegación" data-md-level="0"> 206 <label class="md-nav__title" for="__drawer"> 207 <a href=".." title="Aprende Python de cero a experto" class="md-nav__button md-logo" aria-label="Aprende Python de cero a experto" data-md-component="logo"> 208 209 <img src="../images/logo1.svg" alt="logo"> 210 211 </a> 212 Aprende Python de cero a experto 213 </label> 214 215 <div class="md-nav__source"> 216 <a href="https://github.com/jvadillo/aprende-python-web" title="Ir al repositorio" class="md-source" data-md-component="source"> 217 <div class="md-source__icon md-icon"> 218 219 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> 220 </div> 221 <div class="md-source__repository"> 222 jvadillo/aprende-python-web 223 </div> 224</a> 225 </div> 226 227 <ul class="md-nav__list" data-md-scrollfix> 228 229 230 231 232 233 234 235 236 <li class="md-nav__item"> 237 <a href=".." class="md-nav__link"> 238 Principal 239 </a> 240 </li> 241 242 243 244 245 246 247 248 249 250 251 <li class="md-nav__item"> 252 <a href="../01-introduccion/" class="md-nav__link"> 253 Introducción 254 </a> 255 </li> 256 257 258 259 260 261 262 263 264 265 266 267 268 <li class="md-nav__item md-nav__item--active"> 269 270 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 271 272 273 274 275 276 <label class="md-nav__link md-nav__link--active" for="__toc"> 277 Tipos de datos y variables
278 <span class="md-nav__icon md-icon"></span> 279 </label> 280 281 <a href="./" class="md-nav__link md-nav__link--active"> 282 Tipos de datos y variables 283 </a> 284 285 286 287<nav class="md-nav md-nav--secondary" aria-label="Tabla de contenidos"> 288 289 290 291 292 293 294 <label class="md-nav__title" for="__toc"> 295 <span class="md-nav__icon md-icon"></span> 296 Tabla de contenidos 297 </label> 298 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 299 300 <li class="md-nav__item"> 301 <a href="#resumen-de-tipos-de-variables" class="md-nav__link"> 302 Resumen de tipos de variables 303 </a> 304 305</li> 306 307 <li class="md-nav__item"> 308 <a href="#lectura-de-datos-en-python" class="md-nav__link"> 309 Lectura de datos en Python 310 </a> 311 312</li> 313 314 <li class="md-nav__item"> 315 <a href="#cadenas-de-texto-string" class="md-nav__link"> 316 Cadenas de texto (string) 317 </a> 318 319 <nav class="md-nav" aria-label="Cadenas de texto (string)"> 320 <ul class="md-nav__list"> 321 322 <li class="md-nav__item"> 323 <a href="#concatenacion-de-strings" class="md-nav__link"> 324 Concatenación de strings 325 </a> 326 327</li> 328 329 <li class="md-nav__item"> 330 <a href="#cadenas-f-f-strings" class="md-nav__link"> 331 Cadenas 'f' (f-strings) 332 </a> 333 334</li> 335 336 <li class="md-nav__item"> 337 <a href="#conversion-de-tipos" class="md-nav__link"> 338 Conversión de tipos 339 </a> 340 341</li> 342 343 <li class="md-nav__item"> 344 <a href="#metodos-en-cadenas-de-texto-string" class="md-nav__link"> 345 Métodos en cadenas de texto (string) 346 </a> 347 348</li> 349 350 </ul> 351 </nav> 352 353</li> 354 355 <li class="md-nav__item"> 356 <a href="#coding-time" class="md-nav__link"> 357 Coding time! 358 </a> 359 360 <nav class="md-nav" aria-label="Coding time!"> 361 <ul class="md-nav__list"> 362 363 <li class="md-nav__item"> 364 <a href="#ejercicio-1" class="md-nav__link"> 365 Ejercicio 1 366 </a> 367 368</li> 369 370 <li class="md-nav__item"> 371 <a href="#ejercicio-2" class="md-nav__link"> 372 Ejercicio 2 373 </a> 374 375</li> 376 377 <li class="md-nav__item"> 378 <a href="#ejercicio-3" class="md-nav__link"> 379 Ejercicio 3 380 </a> 381 382</li> 383 384 <li class="md-nav__item"> 385 <a href="#ejercicio-4" class="md-nav__link"> 386 Ejercicio 4 387 </a> 388 389</li> 390 391 <li class="md-nav__item"> 392 <a href="#ejercicio-5" class="md-nav__link"> 393 Ejercicio 5 394 </a> 395 396</li> 397 398 </ul> 399 </nav> 400 401</li> 402 403 </ul> 404 405</nav> 406 407 </li> 408 409 410 411 412 413 414 415 416 417 418 <li class="md-nav__item"> 419 <a href="../03-Operadores-y-expresiones/" class="md-nav__link"> 420 Operadores y expresiones 421 </a> 422 </li> 423 424 425 426 427 428 429 430 431 432 433 <li class="md-nav__item"> 434 <a href="../04-Estructuras-de-control/" class="md-nav__link"> 435 Estructuras de control 436 </a> 437 </li> 438 439 440 441 442 443 444 445 446 447 448 <li class="md-nav__item"> 449 <a href="../05-Listas-y-Tuplas/" class="md-nav__link"> 450 Listas y tuplas 451 </a> 452 </li> 453 454 455 456 457 458 459 460 461 462 463 <li class="md-nav__item"> 464 <a href="../06-Diccionarios/" class="md-nav__link"> 465 Diccionarios 466 </a> 467 </li> 468 469 470 471 472 473 474 475 476 477 478 <li class="md-nav__item"> 479 <a href="../07-Funciones/" class="md-nav__link"> 480 Funciones 481 </a> 482 </li> 483 484 485 486 487 488 489 490 491 492 493 <li class="md-nav__item"> 494 <a href="../08-Excepciones/" class="md-nav__link"> 495 Excepciones 496 </a> 497 </li> 498 499 500 501 502 503 504 505 506 507 508 <li class="md-nav__item"> 509 <a href="../09-Clases-y-Objetos/" class="md-nav__link"> 510 Clases y objetos 511 </a> 512 </li> 513 514 515 516 517 518 519 520 521 522 523 <li class="md-nav__item"> 524 <a href="../10-Herencia/" class="md-nav__link"> 525 Herencia 526 </a> 527 </li> 528 529 530 531 532 533 534 535 536 537 538 <li class="md-nav__item"> 539 <a href="../11-Modulos-y-Paquetes/" class="md-nav__link"> 540 Módulos y Paquetes 541 </a> 542 </li> 543 544 545 546 </ul> 547</nav> 548 </div> 549 </div> 550 </div> 551 552 553 554 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 555 <div class="md-sidebar__scrollwrap"> 556 <div class="md-sidebar__inner"> 557 558 559<nav class="md-nav md-nav--secondary" aria-label="Tabla de contenidos"> 560 561
562 563 564 565 566 <label class="md-nav__title" for="__toc"> 567 <span class="md-nav__icon md-icon"></span> 568 Tabla de contenidos 569 </label> 570 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 571 572 <li class="md-nav__item"> 573 <a href="#resumen-de-tipos-de-variables" class="md-nav__link"> 574 Resumen de tipos de variables 575 </a> 576 577</li> 578 579 <li class="md-nav__item"> 580 <a href="#lectura-de-datos-en-python" class="md-nav__link"> 581 Lectura de datos en Python 582 </a> 583 584</li> 585 586 <li class="md-nav__item"> 587 <a href="#cadenas-de-texto-string" class="md-nav__link"> 588 Cadenas de texto (string) 589 </a> 590 591 <nav class="md-nav" aria-label="Cadenas de texto (string)"> 592 <ul class="md-nav__list"> 593 594 <li class="md-nav__item"> 595 <a href="#concatenacion-de-strings" class="md-nav__link"> 596 Concatenación de strings 597 </a> 598 599</li> 600 601 <li class="md-nav__item"> 602 <a href="#cadenas-f-f-strings" class="md-nav__link"> 603 Cadenas 'f' (f-strings) 604 </a> 605 606</li> 607 608 <li class="md-nav__item"> 609 <a href="#conversion-de-tipos" class="md-nav__link"> 610 Conversión de tipos 611 </a> 612 613</li> 614 615 <li class="md-nav__item"> 616 <a href="#metodos-en-cadenas-de-texto-string" class="md-nav__link"> 617 Métodos en cadenas de texto (string) 618 </a> 619 620</li> 621 622 </ul> 623 </nav> 624 625</li> 626 627 <li class="md-nav__item"> 628 <a href="#coding-time" class="md-nav__link"> 629 Coding time! 630 </a> 631 632 <nav class="md-nav" aria-label="Coding time!"> 633 <ul class="md-nav__list"> 634 635 <li class="md-nav__item"> 636 <a href="#ejercicio-1" class="md-nav__link"> 637 Ejercicio 1 638 </a> 639 640</li> 641 642 <li class="md-nav__item"> 643 <a href="#ejercicio-2" class="md-nav__link"> 644 Ejercicio 2 645 </a> 646 647</li> 648 649 <li class="md-nav__item"> 650 <a href="#ejercicio-3" class="md-nav__link"> 651 Ejercicio 3 652 </a> 653 654</li> 655 656 <li class="md-nav__item"> 657 <a href="#ejercicio-4" class="md-nav__link"> 658 Ejercicio 4 659 </a> 660 661</li> 662 663 <li class="md-nav__item"> 664 <a href="#ejercicio-5" class="md-nav__link"> 665 Ejercicio 5 666 </a> 667 668</li> 669 670 </ul> 671 </nav> 672 673</li> 674 675 </ul> 676 677</nav> 678 </div> 679 </div> 680 </div> 681 682 683 684 <div class="md-content" data-md-component="content"> 685 <article class="md-content__inner md-typeset"> 686 687 688 689 690<h1 id="variables-y-tipos-de-datos">Variables y Tipos de datos</h1> 691<p>Las variables permiten <strong>almacenar datos del programa</strong>. Estas serán de un tipo u otro en función de la información que se guarde en ellas.</p> 692<p><div class="highlight"><pre><span></span><code><span class="n">nombre</span> <span class="o">=</span> <span class="s1">'Amaia'</span> <span class="c1"># cadena de texto</span> 693<span class="n">edad</span> <span class="o">=</span> <span class="mi">30</span> <span class="c1"># número entero</span> 694</code></pre></div> 695El nombre de una variable se conoce como <strong>identificador</strong>, y deberá cumplir las siguientes reglas:</p> 696<ul> 697<li>Comenzar con una letra o un guión bajo.</li> 698<li>El resto del nombre estará formado por letras, números o guiones bajos.</li> 699<li>Los nombres de las variables son <em>case sensitive</em>, es decir, no es lo mismo que una variable se llame <code>resultado</code> que <code>RESULTADO</code>.</li> 700<li>Existen una serie de palabras reservadas que no se pueden utilizar (def, global, return, if, for, ...).</li> 701</ul> 702<p>Algunas de las recomendaciones respecto a los nombres de las variables están recogidas en la <a href="https://www.python.org/dev/peps/pep-0008/">GuÃa oficial de Estilos PEP8 de Python</a>. Entre las más habituales encontramos las siguientes:</p> 703<ul> 704<li>Utilizar nombres descriptivos, en minúsculas y separados por guiones bajos si fuese necesario: <code>resultado</code>, <code>mi_variable</code>, <code>valor_anterior</code>,...</li> 705<li>Escribir las constantes en mayúsculas: <code>MI_CONSTANTE</code>, <code>NUMERO_PI</code>, ...</li> 706<li>Antes y después del signo <code>=</code>, debe haber uno (y solo un) espacio en blanco.</li> 707</ul> 708<p><strong>Nota</strong>: No olvides que lo que la guÃa plantea son recomendaciones y no obligaciones. Por ejemplo, mientras PEP8 recomienda tabular el código con 4 espacioes en blanco, la guÃa particular de los desarrolladores de Google habla de 2 espacios en lugar de 4.</p> 709<h2 id="resumen-de-tipos-de-variables">Resumen de tipos de variables</h2> 710<div class="highlight"><pre><span></span><code><span class="n">edad</span> <span class="o">=</span> <span class="mi">24</span> <span class="c1"># número entero (integer)</span> 711<span class="n">precio</span> <span class="o">=</span> <span class="mf">112.9</span> <span class="c1"># número de punto flotante (float)</span> 712<span class="n">titulo</span> <span class="o">=</span> <span class="err">â</span><span class="n">Aprende</span> <span class="n">Python</span> <span class="n">
712desde</span> <span class="n">cero</span><span class="err">â</span> <span class="c1"># cadena de texto (string)</span> 713<span class="n">test</span> <span class="o">=</span> <span class="kc">True</span> <span class="c1"># booleano</span> 714</code></pre></div> 715<h2 id="lectura-de-datos-en-python">Lectura de datos en Python</h2> 716<p>La función <code>input()</code> permite introducir datos al usuario:</p> 717<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">nombre</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span> 718<span class="n">Leire</span> 719<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="n">nombre</span><span class="p">)</span> 720<span class="n">Leire</span> 721</code></pre></div> 722<p>Como se puede ver en el siguiente ejemplo, es posible también mostrar un mensaje al usuario, tal y como muestra el siguiente ejemplo.</p> 723<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">nombre</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"Escribe tu nombre: "</span><span class="p">)</span> 724<span class="n">Escribe</span> <span class="n">tu</span> <span class="n">nombre</span><span class="p">:</span> <span class="n">Leire</span> 725<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="n">nombre</span><span class="p">)</span> 726<span class="n">Leire</span> 727 <span class="err">```</span> 728 729<span class="c1">## Números</span> 730<span class="n">Python</span> <span class="n">soporta</span> <span class="n">dos</span> <span class="n">tipos</span> <span class="n">de</span> <span class="n">números</span><span class="p">:</span> <span class="n">enteros</span> <span class="p">(</span><span class="n">integer</span><span class="p">)</span> <span class="n">y</span> <span class="n">de</span> <span class="n">punto</span> <span class="n">flotante</span> <span class="p">(</span><span class="nb">float</span><span class="p">)</span><span class="o">.</span> 731 732 <span class="err">```</span><span class="n">python</span> 733<span class="c1"># integer</span> 734<span class="n">x</span> <span class="o">=</span> <span class="mi">5</span> 735<span class="nb">print</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> 736 737<span class="c1"># float</span> 738<span class="n">y</span> <span class="o">=</span> <span class="mf">5.0</span> 739<span class="nb">print</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 740 741<span class="c1"># Otra forma de declarar un float</span> 742<span class="n">z</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> 743<span class="nb">print</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> 744</code></pre></div> 745<p>Si tenemos dudas del valor de una variable, podemos mostrar su tipo utilizando la función <code>type()</code>:</p> 746<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">x</span> <span class="o">=</span> <span class="mf">5.5</span> 747<span class="o">>>></span> <span class="nb">type</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> 748<span class="o"><</span><span class="k">class</span> <span class="err">'</span><span class="nc">float</span><span class="s1">'></span> 749</code></pre></div> 750<h2 id="cadenas-de-texto-string">Cadenas de texto (string)</h2> 751<p>Las cadenas de texto o strings se definen mediante comilla simple (<code>' '</code>) o doble comilla (<code>" "</code>):</p> 752<div class="highlight"><pre><span></span><code><span class="n">mi_nombre</span> <span class="o">=</span> <span class="s1">'Ane'</span> 753<span class="nb">print</span><span class="p">(</span><span class="n">mi_nombre</span><span class="p">)</span> 754<span class="n">mi_nombre</span><span class="o">=</span> <span class="s2">"Ane"</span> 755<span class="nb">print</span><span class="p">(</span><span class="n">
755mi_nombre</span><span class="p">)</span> 756</code></pre></div> 757<p>La diferencia principal se encuentra en que las comillas dobles aportan mayor facilidad en textos que incluyan apóstrofes:</p> 758<div class="highlight"><pre><span></span><code><span class="n">mi_nombre</span> <span class="o">=</span> <span class="s1">'I</span><span class="se">\'</span><span class="s1">m John'</span> 759<span class="nb">print</span><span class="p">(</span><span class="n">mi_nombre</span><span class="p">)</span> 760<span class="n">mi_nombre</span><span class="o">=</span> <span class="s2">"I'm John"</span> 761<span class="nb">print</span><span class="p">(</span><span class="n">mi_nombre</span><span class="p">)</span> 762</code></pre></div> 763<p>Más información sobre strings y carácteres especiales en: <a href="https://docs.python.org/3/tutorial/introduction.html#strings"> https://docs.python.org/3/tutorial/introduction.html#strings</a></p> 764<p>Para definir strings multi-lÃnea se utiliza la triples comillas (<code>"""</code>):</p> 765<div class="highlight"><pre><span></span><code><span class="n">frase</span> <span class="o">=</span> <span class="s2">""" esto es una</span> 766<span class="s2"> frase muy larga de más de</span> 767<span class="s2"> una lÃnea ..."""</span> 768</code></pre></div> 769<h3 id="concatenacion-de-strings">Concatenación de strings</h3> 770<p>Es posible unir dos strings con el operador <code>+</code>:</p> 771<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">primera_palabra</span> <span class="o">=</span> <span class="s1">'Hola'</span> 772<span class="o">>>></span> <span class="n">frase_completa</span> <span class="o">=</span> <span class="n">primera_palabra</span> <span class="o">+</span> <span class="s1">', mundo'</span> 773<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="n">frase_completa</span><span class="p">)</span> 774<span class="s1">'Hola, mundo'</span> 775 776<span class="o">>>></span> <span class="n">segunda_palabra</span> <span class="o">=</span> <span class="s1">'mundo'</span> 777<span class="o">>>></span> <span class="n">frase_completa</span> <span class="o">=</span> <span class="n">primera_palabra</span> <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="n">segunda_palabra</span> 778<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="n">frase_completa</span><span class="p">)</span> 779<span class="s1">'Hola, mundo'</span> 780</code></pre></div> 781<p><strong>Método alternativo 1</strong>: str.join(): 782El método <code>join()</code> recibe como argumento el listado (de tipo List, Tuple, String, Dictionary y Set) de strings que se desean concatenar. Se invoca sobre el separador que se utilizará para unir las cadenas (el cual a su vez es un string también):</p> 783<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">strings</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'do'</span><span class="p">,</span> <span class="s1">'re'</span><span class="p">,</span> <span class="s1">'mi'</span><span class="p">]</span> 784<span class="o">>>></span> <span class="n">separador</span> <span class="o">=</span> <span class="s1">' - '</span> 785<span class="o">>>></span> <span class="n">separador</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">strings</span><span class="p">)</span> 786<span class="s1">'do - re - mi'</span> 787</code></pre></div> 788<p>Para iterar un elemento detrás del otro se introducirá string vacÃo como separador:</p> 789<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">strings</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'do'</span><span class="p">,</span> <span class="s1">'re'</span><span class="p">,</span> <span class="s1">'mi'</span><span class="p">]</span> 790<span class="o">>>></span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">strings</span><span class="p">)</span> 791<span class="s1">'doremi'</span> 792</code></pre></div> 793<p><strong>Método alternativo 2</strong>: <code>str.format()</code>: 794Python 3 introdujo una nueva forma para formatear strings, la cual sustituye a la anterior en la que se hace uso del operador <code>%</code>. Para ello se invoca el método <code>format()</code> de un string:</p> 795<div class="highlight"><pre><span></span><code><span class="c1"># Ordenado por defecto:</span> 796<span class="n">frase</span> <span class="o">=</span> <span class="s2">"Meses: </span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2"> y </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">'Enero'</span><span class="p">,</span><span class="s1">'Febrero'</span><span class="p">,</span><span class="s1">'Marzo'</span><span class="p">)</span> 797<span class="nb">print</span><span class="p">(</span><span class="n">frase</span><span class="p">)</span> 798 799<span class="c1"># Especificar el orden indicando la posición:</span> 800<span class="n">frase</span> <span class="o">=</span> <span class="s2">"Meses: </span><span class="si">{1}</span><span class="s2">, </span><span class="si">{0}</span><span class="s2"> y </span><span class="si">{2}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">'Enero'</span><span class="p">,</span><span class="s1">'Febrero'</span><span class="p">,</span><span class="s1">'Marzo'</span><span class="p">)</span> 801<span class="nb">print</span><span class="p">(</span><span class="n">frase</span><span class="p">)</span> 802 803<span class="c1"># Especificar el orden mediante parejas clave-valor:</span> 804<span class="n">frase</span> <span class="o">=</span> <span class="s2">"Meses: </span><span class="si">{ene}</span><span class="s2">, </span><span class="si">{feb}</span><span class="s2"> y </span><span class="si">{mar}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">
804ene</span><span class="o">=</span><span class="s1">'Enero'</span><span class="p">,</span> <span class="n">feb</span><span class="o">=</span><span class="s1">'Febrero'</span><span class="p">,</span><span class="n">m</span><span class="o">=</span><span class="s1">'Marzo'</span><span class="p">)</span> 805<span class="nb">print</span><span class="p">(</span><span class="n">frase</span><span class="p">)</span> 806</code></pre></div> 807<h3 id="cadenas-f-f-strings">Cadenas 'f' (f-strings)</h3> 808<p>La versión 3.6 de Python trajo un gran avance a la hora de integrar variables o expreiones en cadenas de carácteres. Se introdujeron las llamadas <code>f-strings</code>, una forma más cómoda y directa para insertar variables y expresiones en cadenas. Permiten introducir cualquier variable o expresión dentro de un string incluyendo la variable entre llaves <code>{</code> y <code>}</code>.</p> 809<p>Veamos un ejemplo:</p> 810<div class="highlight"><pre><span></span><code><span class="n">nombre</span> <span class="o">=</span> <span class="s2">"Nora"</span> 811<span class="n">edad</span> <span class="o">=</span> <span class="mi">22</span> 812<span class="n">saludo</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Me llamo </span><span class="si">{</span><span class="n">nombre</span><span class="si">}</span><span class="s2"> y tengo </span><span class="si">{</span><span class="n">edad</span><span class="si">}</span><span class="s2"> años."</span> 813</code></pre></div> 814<p>Para indicar que se trata de un <code>f-string</code>, este deberá incluir la letra 'f' antes del comiendo de la cadena (antes de las comillas). A continuación se muestra otro ejemplo en el que se introduce una expresión:</p> 815<div class="highlight"><pre><span></span><code><span class="n">a</span> <span class="o">=</span> <span class="mi">4</span> 816<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span> 817<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"La multiplicación de </span><span class="si">{</span><span class="n">a</span><span class="si">}</span><span class="s2"> y </span><span class="si">{</span><span class="n">b</span><span class="si">}</span><span class="s2"> es igual a </span><span class="si">{</span><span class="n">a</span> <span class="o">*</span> <span class="n">b</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> 818</code></pre></div> 819<h3 id="conversion-de-tipos">Conversión de tipos</h3> 820<p>A la hora de concatenar un string con otras variables como <code>integer</code> o <code>float</code> puede haber problemas:</p> 821<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">edad</span> <span class="o">=</span> <span class="mi">25</span> 822<span class="o">>>></span> <span class="n">nota_media</span> <span class="o">=</span> <span class="mf">7.3</span> 823<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="s2">"Tengo "</span> <span class="o">+</span> <span class="n">edad</span> <span class="o">+</span> <span class="s2">" años y mi nota media es "</span> <span class="o">+</span> <span class="n">nota_media</span> <span class="o">+</span> <span class="s2">"."</span><span class="p">)</span> 824 825<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span> 826 <span class="n">File</span> <span class="s2">"<stdin>"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">1</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span> 827<span class="ne">TypeError</span><span class="p">:</span> <span class="n">can</span> <span class="n">only</span> <span class="n">concatenate</span> <span class="nb">str</span> <span class="p">(</span><span class="ow">not</span> <span class="s2">"int"</span><span class="p">)</span> <span class="n">to</span> <span class="nb">str</span> 828</code></pre></div> 829<p>Mediante la función <code>str()</code>
829 podemos convertir un valor a string y evitar asà cualquier tipo de problema:</p> 830<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">edad</span> <span class="o">=</span> <span class="mi">25</span> 831<span class="o">>>></span> <span class="n">nota_media</span> <span class="o">=</span> <span class="mf">7.3</span> 832<span class="o">>>></span> <span class="nb">print</span><span class="p">(</span><span class="s2">"Tengo "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">edad</span><span class="p">)</span> <span class="o">+</span> <span class="s2">" años y mi nota media es "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nota_media</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"."</span><span class="p">)</span> 833<span class="n">Tengo</span> <span class="mi">25</span> <span class="n">años</span> <span class="n">y</span> <span class="n">mi</span> <span class="n">nota</span> <span class="n">media</span> <span class="n">es</span> <span class="mf">7.3</span><span class="o">.</span> 834</code></pre></div> 835<p>De igual manera es posible convertir a otros tipos con las funciones <code>int()</code>, <code>float()</code> and <code>bool()</code>.</p> 836<h3 id="metodos-en-cadenas-de-texto-string">Métodos en cadenas de texto (string)</h3> 837<p>Es posible <strong>obtener un carácter concreto</strong> de un string utilizando los corchetes <code>[]</code> y el Ãndice del carácter al que queremos acceder:</p> 838<div class="highlight"><pre><span></span><code><span class="n">frase</span> <span class="o">=</span> <span class="s1">'Aprendiendo a programar en Python'</span> 839<span class="n">frase</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># devuelve el primer caracter</span> 840<span class="n">frase</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># devuelve el segundo caracter</span> 841<span class="n">frase</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># devuelve el primer caracter empezando por el final</span> 842<span class="n">frase</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># # devuelve el segundo caracter empezando por el final</span> 843</code></pre></div> 844<p>Si queremos <strong>obtener un substring</strong>, utilizaremos la siguiente notación:</p> 845<div class="highlight"><pre><span></span><code><span class="n">frase</span> <span class="o">=</span> <span class="s1">'Aprendiendo a programar en Python'</span> 846<span class="n">mi_substring</span> <span class="o">=</span> <span class="n">frase</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">5</span><span class="p">]</span> 847<span class="c1"># devuelverá los caracteres desde la posición 1 hasta la 5 (no incluye el 5)</span> 848</code></pre></div> 849<p>En caso de dejar la primera variable vacÃa, se considera la primera posición del string. Dejando la segunda variable vacÃa se considera la última posición del string:</p> 850<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">frase</span> <span class="o">=</span> <span class="s1">'Aprendiendo a programar en Python'</span> 851<span class="o">>>></span> <span class="n">mi_substring</span> <span class="o">=</span> <span class="n">frase</span><span class="p">[:</span><span class="mi">5</span><span class="p">]</span> 852<span class="o">>>></span> <span class="n">mi_substring</span> 853<span class="s1">'Apren'</span> 854<span class="o">>>></span> <span class="n">mi_substring</span> <span class="o">=</span> <span class="n">frase</span><span class="p">[</span><span class="mi">4</span><span class="p">:]</span> 855<span class="o">>>></span> <span class="n">mi_substring</span> 856<span class="s1">'ndiendo a programar en Python'</span> 857</code></pre></div> 858<p>Otros métodos útiles de string:</p> 859<div class="highlight"><pre><span></span><code><span class="nb">len</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> <span class="c1"># devuelve la longitud del string</span> 860<span class="nb">str</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># convierte a mayúsculas</span> 861<span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="c1"># convierte a minúsculas</span> 862<span class="nb">str</span><span class="o">.</span><span class="n">title</span><span class="p">()</span> <span class="c1"># convierte a mayúsculas la primera letra de cada palabra</span> 863<span class="nb">str</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">substring</span> <span class="p">[,</span> <span class="n">inicio</span><span class="p">,</span> <span class="n">fin</span><span class="p">])</span> <span class="c1"># devuelve el número de veces que aparece</span> 864<span class="c1"># el substring en el string. Opcionalmente se puede indicar el inicio y fin. </span> 865<span class="nb">str</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="err">â</span><span class="n">d</span><span class="err">â</span><span class="p">)</span> <span class="c1"># devuelve el Ãndice de la primera aparición de 'd'</span> 866<span class="c1"># (devolverá -1 si no lo encuentra)</span> 867<span class="n">substr</span> <span class="ow">in</span> <span class="nb">str</span> <span class="c1"># devuelve True si el string contiene el substring</span> 868<span class="nb">str</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">old</span><span class="p">,</span> <span class="n">new</span> <span class="p">[,</span> <span class="n">count</span><span class="p">])</span> <span class="c1"># reemplaza 'old' por 'new' un máximo de 'count' veces.</span> 869<span class="nb">str</span><span class="o">.</span><span class="n">isnumeric</span><span class="p">()</span> <span class="c1"># devuelve True si str contiene solamente números</span> 870</code></pre></div> 871<h2 id="coding-time">Coding time!</h2> 872<h3 id="ejercicio-1">Ejercicio 1</h3> 873<p>Escribe un programa que contenga las siguientes variables:</p> 874<ul> 875<li><code>nombre</code>: tipo string y valor "Michael Jordan"</li> 876<li><code>edad</code>: tipo integer y valor 50</li> 877<li><code>media_puntos</code>: tipo float y valor 28.5</li> 878<li><code>activo</code>: False</li> 879</ul> 880<p>El programa deberá mostrar en pantalla todos los valores.</p> 881<h3 id="ejercicio-2">Ejercicio 2</h3> 882<p>Escribe un programa que solicite el nombre, DNI y edad, lo almacene en 3 variables distintas y muestre por pantalla los valores introducidos.</p> 883<h3 id="ejercicio-3">Ejercicio 3</h3> 884<p>Escribe un programa que genere un string compuesto por los primeros 3 caracteres y los últimos 3 caracteres de un string introducido por el usuario. Pista: puedes utilizar la función <code>len()</code> en la obtención de los últimos 3 caracteres.</p> 885<ul> 886<li>Ejemplo 1: 'aprendiendo' </li> 887<li>Resultado 1: 'aprndo' </li> 888<li>Ejemplo 2: 'escribiendo código' </li> 889<li>Resultado 2: 'escigo' </li> 890</ul> 891<h3 id="ejercicio-4">Ejercicio 4</h3> 892<p>Escribe un programa que solicite al usuario dos números y una frase. El primer número introducido se corresponderá a la posición de inicio del substring que deberá mostrar el programa por pantalla. El segundo número indicará la longitud de dicho substring.</p> 893<ul> 894<li>Ejemplo 1: Posicion=4, Longitud=8, Frase='Desarrollar es mi nueva afición' </li> 895<li>Resultado 1: "rrollar " </li> 896<li>Ejemplo 2: Posicion=8, Longitud=11, Frase='Bienvenido a la clase de programación'</li> 897<li>Resultado 2: "do a la cla"</li> 898</ul> 899<h3 id="ejercicio-5">Ejercicio 5</h3> 900<p>Escribe un programa que solicite al usuario una frase. A continuación le solicitará la letra que quiere reemplazar y por qué letra deberá reemplazarse. Por último el programa mostrará el número de veces que la letra está presente en la frase y el resultado final tras reemplazarla.</p> 901<ul> 902<li>Ejemplo: 'Desarrollar es mi nuevo pasatiempos', 'a','e'</li> 903<li>Resultado: 4 apariciones. 'Deserroller es mi nueve pesetiempos' </li> 904</ul> 905 906 907 908 909 910 911 </article> 912 </div> 913 914 915 </div> 916 917 <a href="#" class="md-top md-icon" data-md-component="top" hidden> 918 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
918<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> 919 Volver al principio 920 </a> 921 922 </main> 923 924 <footer class="md-footer"> 925 926 927 928 <nav class="md-footer__inner md-grid" aria-label="Pie" > 929 930 931 <a href="../01-introduccion/" class="md-footer__link md-footer__link--prev" aria-label="Anterior: Introducción" rel="prev"> 932 <div class="md-footer__button md-icon"> 933 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> 934 </div> 935 <div class="md-footer__title"> 936 <div class="md-ellipsis"> 937 <span class="md-footer__direction"> 938 Anterior 939 </span> 940 Introducción 941 </div> 942 </div> 943 </a> 944 945 946 947 <a href="../03-Operadores-y-expresiones/" class="md-footer__link md-footer__link--next" aria-label="Siguiente: Operadores y expresiones" rel="next"> 948 <div class="md-footer__title"> 949 <div class="md-ellipsis"> 950 <span class="md-footer__direction"> 951 Siguiente 952 </span> 953 Operadores y expresiones 954 </div> 955 </div> 956 <div class="md-footer__button md-icon"> 957 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg> 958 </div> 959 </a> 960 961 </nav> 962 963 964 <div class="md-footer-meta md-typeset"> 965 <div class="md-footer-meta__inner md-grid"> 966 <div class="md-copyright"> 967 968 <div class="md-copyright__highlight"> 969 2023 Jon Vadillo - Licencia CC BY-NC-SA 970 </div> 971 972 973 Made with 974 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 975 Material for MkDocs 976 </a> 977 978</div> 979 980 <div class="md-social"> 981 982 983 984 <a href="https://twitter.com/jonvadillo" target="_blank" rel="noopener" title="Jon Vadillo on Twitter" class="md-social__link"> 985 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> 986 </a> 987 988 989 990 <a href="https://github.com/jvadillo" target="_blank" rel="noopener" title="Jon Vadillo on Github" class="md-social__link"> 991 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> 992 </a> 993 994</div> 995 996 </div> 997 </div> 998</footer> 999 1000 </div> 1001 <div class="md-dialog" data-md-component="dialog"> 1002 <div class="md-dialog__inner md-typeset"></div> 1003 </div> 1004 1005
1005<script id="__config" type="application/json">{"base": "..", "features": ["content.code.copy", "navigation.expand", "navigation.top", "navigation.footer"], "search": "../assets/javascripts/workers/search.3de43c86.min.js", "translations": {"clipboard.copied": "Copiado al portapapeles", "clipboard.copy": "Copiar al portapapeles", "search.result.more.one": "1 m\u00e1s en esta p\u00e1gina", "search.result.more.other": "# m\u00e1s en esta p\u00e1gina", "search.result.none": "No se encontraron documentos", "search.result.one": "1 documento encontrado", "search.result.other": "# documentos encontrados", "search.result.placeholder": "Teclee para comenzar b\u00fasqueda", "search.result.term.missing": "Falta", "select.version": "Seleccionar versi\u00f3n"}}</script>
1005 1006 1007 1008
1008<script async defer src="https://analytics.umami.is/script.js" data-website-id="f9c4cb35-7bda-49ee-b153-9a68d130ec4e"></script>
1008 1009 1010
1010<script src="../assets/javascripts/bundle.ce0331ff.min.js"></script>
1010 1011 1012
1012<script src="../js/extra.js"></script>
1012 1013 1014 1015 1016 1017 1018 </body> 1019</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.