@import"https://fonts.googleapis.com/css?family=M+PLUS+1p";@import"https://fonts.googleapis.com/css?family=Lato:300,700";@import"https://fonts.googleapis.com/css?family=Lora:700";@import"https://fonts.googleapis.com/css?family=Creepster";@import"https://fonts.googleapis.com/css?family=Satisfy";@import"https://fonts.googleapis.com/css?family=Nanum+Brush+Script";@import"https://fonts.googleapis.com/css2?family=Allura&display=swap";@import"https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&display=swap";@import"https://fonts.googleapis.com/css2?family=Racing+Sans+One&display=swap";@import"https://fonts.googleapis.com/css2?family=Kalam&display=swap";.hljs{display:block;overflow-x:auto;padding:.5em;background:#272822;color:#ddd}.hljs-tag,.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-strong,.hljs-name{color:#f92672}.hljs-code{color:#66d9ef}.hljs-class .hljs-title{color:#fff}.hljs-attribute,.hljs-symbol,.hljs-regexp,.hljs-link{color:#bf79db}.hljs-string,.hljs-bullet,.hljs-subst,.hljs-title,.hljs-section,.hljs-emphasis,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-tag,.hljs-template-variable{color:#a6e22e}.hljs-comment,.hljs-quote,.hljs-deletion,.hljs-meta{color:#75715e}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag,.hljs-title,.hljs-section,.hljs-type,.hljs-selector-id{font-weight:bold}@font-face{font-family:"Flux Regular";font-style:normal;font-weight:300;src:url("Flux Regular.otf") format("opentype")}section.has-light-background,section.has-light-background h1,section.has-light-background h2,section.has-light-background h3,section.has-light-background h4,section.has-light-background h5,section.has-light-background h6{color:#141414}.reveal .controls{right:50px;bottom:50px}.line{content:"";position:fixed;background:#2b5b84;z-index:105}.line.grid{background:#2b5b84}.line.top{left:0;top:0;width:100%;height:15px}@media(max-width: 840px){.line.top{height:15px}}.line.bottom{left:0;top:auto;bottom:0;width:100%;height:15px}@media(max-width: 840px){.line.bottom{height:15px}}.line.left{left:0;top:0;width:15px;height:200%}@media(max-width: 840px){.line.left{width:15px}}.line.right{left:auto;right:0;top:0;width:15px;height:200%}@media(max-width: 840px){.line.right{width:15px}}body::before{content:" ";position:fixed;width:100%;height:100%;top:0;left:0;background-color:#f8f8f8;background:url(background.png) repeat-x;will-change:transform;z-index:-1}body{background:#fff;background-color:#fff}.reveal{font-family:"Lato",serif;font-size:32px;font-weight:normal;color:#363636}::selection{color:#fff;background:#629bcc;text-shadow:none}::-moz-selection{color:#fff;background:#629bcc;text-shadow:none}.reveal .slides>section,.reveal .slides>section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#141414;font-family:"Lora",sans-serif;font-weight:700;line-height:1.2;letter-spacing:normal;text-transform:uppercase;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:2em}.reveal h2{font-size:1.8em}.reveal h3{font-size:1.4em}.reveal h4{font-size:1.2em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal strong,.reveal b{font-weight:bold}.reveal em{font-style:italic}.reveal ol,.reveal dl,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal dt{font-weight:bold}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0px 0px 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0px 0px 6px rgba(0,0,0,.3)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:bold}.reveal table th,.reveal table td{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table th[align=center],.reveal table td[align=center]{text-align:center}.reveal table th[align=right],.reveal table td[align=right]{text-align:right}.reveal table tbody tr:last-child th,.reveal table tbody tr:last-child td{border-bottom:none}.reveal sup{vertical-align:super}.reveal sub{vertical-align:sub}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#2b5b84;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#3e83be;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#18334a}.reveal section img{margin:15px 0px;background:rgba(255,255,255,.12);border:4px solid #363636;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#2b5b84;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#2b5b84}.reveal .progress{background:rgba(0,0,0,.2);color:#2b5b84}.reveal .progress span{-webkit-transition:width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);-moz-transition:width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);transition:width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985)}.reveal *,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{font-family:"M PLUS 1p",sans-serif}.reveal * .fa-classic,.reveal * .fa-regular,.reveal * .fa-solid,.reveal * .far,.reveal * .fas,.reveal h1 .fa-classic,.reveal h1 .fa-regular,.reveal h1 .fa-solid,.reveal h1 .far,.reveal h1 .fas,.reveal h2 .fa-classic,.reveal h2 .fa-regular,.reveal h2 .fa-solid,.reveal h2 .far,.reveal h2 .fas,.reveal h3 .fa-classic,.reveal h3 .fa-regular,.reveal h3 .fa-solid,.reveal h3 .far,.reveal h3 .fas,.reveal h4 .fa-classic,.reveal h4 .fa-regular,.reveal h4 .fa-solid,.reveal h4 .far,.reveal h4 .fas,.reveal h5 .fa-classic,.reveal h5 .fa-regular,.reveal h5 .fa-solid,.reveal h5 .far,.reveal h5 .fas,.reveal h6 .fa-classic,.reveal h6 .fa-regular,.reveal h6 .fa-solid,.reveal h6 .far,.reveal h6 .fas{font-family:"Font Awesome 6 Free"}.reveal pre code{max-height:600px}.reveal pre code span,.reveal pre code table tr td{font-family:monospace;text-transform:none}.reveal h2 strong,.reveal h3 strong{color:#2b5b84}.reveal h1{font-size:3.5em}.reveal h2{font-size:3em}.reveal h3{font-size:2.5em}.reveal .progress{z-index:1000;color:#0c1924}ul li{line-height:2em}.has-dark-background h1,.has-dark-background h2,.has-dark-background h3{color:#fff}.has-dark-background ul,.has-dark-background p{color:#dedede}.has-dark-background strong{color:#fff}.reveal section img{border:0;box-shadow:0 0}.reveal pre code.hljs{box-shadow:0 0 20px rgba(0,0,0,.55);padding:15px}#python-3-13 h1,#python-3-13 h2,#python-3-13 h3,#python-mas-rapido h1,#python-mas-rapido h2,#python-mas-rapido h3,#comparativa-velocidad h1,#comparativa-velocidad h2,#comparativa-velocidad h3,#saltar-por-la-ventana h1,#saltar-por-la-ventana h2,#saltar-por-la-ventana h3,#genericos-facil h1,#genericos-facil h2,#genericos-facil h3{display:none}.slides section[data-background-color="#2b5b84"] img{background:none}#intro h1,#intro h2,#id2 h1,#id2 h2{font-size:2.5em}#intro strong,#id2 strong{color:#2b5b84;font-family:"Flux Regular";text-transform:none;font-size:1.5em}#python-3-11 h2{color:#2b5b84;font-family:"Flux Regular";text-transform:none;font-size:4em}#python-3-13 strong{font-size:12em}#sobre-mi-nekmo h2{width:40%;font-size:2.5em;display:inline-block;vertical-align:top;margin-top:100px;text-align:right;line-height:.5em}#sobre-mi-nekmo h2 strong{font-size:.3em;color:#ffd538}#sobre-mi-nekmo table{width:40%;display:inline-block}#python-2-5 h3{font-family:"UnifrakturCook",cursive;font-size:5em;color:#312915}#mas-rapido h3{font-family:"Racing Sans One",sans-serif;font-size:5em;text-shadow:#000 1px 0 10px}#id3 h3{font-family:"Racing Sans One",sans-serif;font-size:4em;text-shadow:#000 1px 0 10px}#listado-de-cambios strong{color:#ffd538}#listado-de-cambios ul li p{margin:5px 0;font-size:.9em}#gracias h3{font-size:4em;text-shadow:#000 1px 0 10px}#pep-701-mejorado-uso-de-comillas-en-f-strings h2{font-size:2.5em}#pep-701-mejorado-uso-de-comillas-en-f-strings h2 strong{color:#ffd538}#pep-701-mejorado-uso-de-comillas-en-f-strings h2 em{display:block;color:#ffd538}#problema-con-las-comillas strong,#problema-con-las-comillas em,#encadenar-f-strings-sin-limite strong,#encadenar-f-strings-sin-limite em,#uso-de-barra-invertida strong,#uso-de-barra-invertida em,#mejoras-en-mensajes-de-error strong,#mejoras-en-mensajes-de-error em{color:#ffd538}#mejoradas-sugerencias-tal-vez-quisiste-decir-en-los-mensajes-de-error h2{font-size:2.3em}#mejoradas-sugerencias-tal-vez-quisiste-decir-en-los-mensajes-de-error h2 em{text-transform:none;color:#ffd538;font-family:"Kalam",cursive;font-size:1.3em}#nameerror-tal-vez-olvidaste-importar h3,#nameerror-tal-vez-olvidaste-usar-self h3,#sintaxerror-tal-vez-quisiste-usar-from-import h3,#importerror-no-se-pudo-importar-tal-vez-quisiste-decir h3{text-transform:none;font-family:"Kalam",cursive;font-size:3em}#nameerror-tal-vez-olvidaste-importar strong,#nameerror-tal-vez-olvidaste-importar em,#nameerror-tal-vez-olvidaste-usar-self strong,#nameerror-tal-vez-olvidaste-usar-self em,#sintaxerror-tal-vez-quisiste-usar-from-import strong,#sintaxerror-tal-vez-quisiste-usar-from-import em,#importerror-no-se-pudo-importar-tal-vez-quisiste-decir strong,#importerror-no-se-pudo-importar-tal-vez-quisiste-decir em{color:#ffd538}#nameerror-tal-vez-olvidaste-importar em,#nameerror-tal-vez-olvidaste-usar-self em,#sintaxerror-tal-vez-quisiste-usar-from-import em,#importerror-no-se-pudo-importar-tal-vez-quisiste-decir em{font-family:"Kalam",cursive}#sintaxerror-tal-vez-quisiste-usar-from-import em{display:inline-block}#typing h2{color:#fff}#pep-695-definir-alias-para-tipos-mediante-type h2,#pep-695-definir-alias-para-tipos-mediante-type h3,#uso-de-genericos-en-type h2,#uso-de-genericos-en-type h3,#creacion-de-clases-genericas h2,#creacion-de-clases-genericas h3,#creacion-de-clases-genericas-antes h2,#creacion-de-clases-genericas-antes h3,#creacion-de-funciones-genericas h2,#creacion-de-funciones-genericas h3,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h2,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h3,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h2,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h3,#pep-684-implementar-un-gil-por-cada-sub-interprete h2,#pep-684-implementar-un-gil-por-cada-sub-interprete h3,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h2,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h3,#soporte-para-el-profiler-perf-de-linux h2,#soporte-para-el-profiler-perf-de-linux h3,#pep-688-expuesto-el-protocolo-del-buffer-en-python h2,#pep-688-expuesto-el-protocolo-del-buffer-en-python h3,#pep-632-eliminado-paquete-distutils h2,#pep-632-eliminado-paquete-distutils h3{font-size:2.5em}#pep-695-definir-alias-para-tipos-mediante-type h2 code,#pep-695-definir-alias-para-tipos-mediante-type h3 code,#uso-de-genericos-en-type h2 code,#uso-de-genericos-en-type h3 code,#creacion-de-clases-genericas h2 code,#creacion-de-clases-genericas h3 code,#creacion-de-clases-genericas-antes h2 code,#creacion-de-clases-genericas-antes h3 code,#creacion-de-funciones-genericas h2 code,#creacion-de-funciones-genericas h3 code,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h2 code,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h3 code,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h2 code,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h3 code,#pep-684-implementar-un-gil-por-cada-sub-interprete h2 code,#pep-684-implementar-un-gil-por-cada-sub-interprete h3 code,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h2 code,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h3 code,#soporte-para-el-profiler-perf-de-linux h2 code,#soporte-para-el-profiler-perf-de-linux h3 code,#pep-688-expuesto-el-protocolo-del-buffer-en-python h2 code,#pep-688-expuesto-el-protocolo-del-buffer-en-python h3 code,#pep-632-eliminado-paquete-distutils h2 code,#pep-632-eliminado-paquete-distutils h3 code{color:#2b5b84;display:inline-block;background:#ffd538;font-size:1em;line-height:1em;padding-bottom:15px;padding-right:5px}#pep-695-definir-alias-para-tipos-mediante-type h2 code span,#pep-695-definir-alias-para-tipos-mediante-type h3 code span,#uso-de-genericos-en-type h2 code span,#uso-de-genericos-en-type h3 code span,#creacion-de-clases-genericas h2 code span,#creacion-de-clases-genericas h3 code span,#creacion-de-clases-genericas-antes h2 code span,#creacion-de-clases-genericas-antes h3 code span,#creacion-de-funciones-genericas h2 code span,#creacion-de-funciones-genericas h3 code span,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h2 code span,#pep-692-utilizar-typeddict-para-anotar-los-kwargs h3 code span,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h2 code span,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h3 code span,#pep-684-implementar-un-gil-por-cada-sub-interprete h2 code span,#pep-684-implementar-un-gil-por-cada-sub-interprete h3 code span,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h2 code span,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython h3 code span,#soporte-para-el-profiler-perf-de-linux h2 code span,#soporte-para-el-profiler-perf-de-linux h3 code span,#pep-688-expuesto-el-protocolo-del-buffer-en-python h2 code span,#pep-688-expuesto-el-protocolo-del-buffer-en-python h3 code span,#pep-632-eliminado-paquete-distutils h2 code span,#pep-632-eliminado-paquete-distutils h3 code span{font-family:monospace}#pep-695-definir-alias-para-tipos-mediante-type strong,#pep-695-definir-alias-para-tipos-mediante-type em,#uso-de-genericos-en-type strong,#uso-de-genericos-en-type em,#creacion-de-clases-genericas strong,#creacion-de-clases-genericas em,#creacion-de-clases-genericas-antes strong,#creacion-de-clases-genericas-antes em,#creacion-de-funciones-genericas strong,#creacion-de-funciones-genericas em,#pep-692-utilizar-typeddict-para-anotar-los-kwargs strong,#pep-692-utilizar-typeddict-para-anotar-los-kwargs em,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben strong,#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben em,#pep-684-implementar-un-gil-por-cada-sub-interprete strong,#pep-684-implementar-un-gil-por-cada-sub-interprete em,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython strong,#pep-669-reducir-el-impacto-de-la-monitorizacion-en-cpython em,#soporte-para-el-profiler-perf-de-linux strong,#soporte-para-el-profiler-perf-de-linux em,#pep-688-expuesto-el-protocolo-del-buffer-en-python strong,#pep-688-expuesto-el-protocolo-del-buffer-en-python em,#pep-632-eliminado-paquete-distutils strong,#pep-632-eliminado-paquete-distutils em{color:#ffd538}#pep-698-decorador-override-para-indicar-metodos-que-sobrescriben h2{font-size:2em}#muchas-gracias-a-todos h2{color:#fff;font-family:"Kalam",cursive;text-shadow:0 0 20px rgba(0,0,0,.55)}div[data-background-hash="0linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);nullnullnullnull"]{background:linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);background-size:400% 400%;animation:gradient 15s ease infinite}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}#contactar h2{color:#2b5b84}#contactar ul li{list-style:none}#contactar ul li p{font-size:120%}#contactar ul li p strong{color:#2b5b84}