{"id":222,"date":"2020-12-22T19:36:33","date_gmt":"2020-12-22T18:36:33","guid":{"rendered":"http:\/\/photos.oceanwp.org\/?p=222"},"modified":"2023-07-26T19:14:42","modified_gmt":"2023-07-26T18:14:42","slug":"cousas-sobre-python","status":"publish","type":"post","link":"https:\/\/bitsolto.com\/bitacora\/webdev\/cousas-sobre-python\/","title":{"rendered":"Algunhas cousas que co\u00f1ecer de Python"},"content":{"rendered":"<p class=\"md-end-block md-p\"><span class=\"md-meta-i-c md-link\"><a href=\"https:\/\/www.python.org\/\"><span class=\"md-plain\">Python<\/span><\/a><\/span><span class=\"md-plain\"> \u00e9 unha unha linguaxe de c\u00f3digo aberto o que significa que poder\u00e1s consultar todo o seu c\u00f3digo fonte e <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/www.python.org\/doc\/\"><span class=\"md-plain\">documentaci\u00f3n oficial<\/span><\/a><\/span><span class=\"md-plain\"> cando o precises. Python non \u00e9 unha linguaxe compilada sen\u00f3n que emprega un int\u00e9rprete, o que o fai m\u00e1is pr\u00e1ctico e accesible para infinidade de procedementos de programaci\u00f3n.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Python \u00e9 unha linguaxe:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">de prop\u00f3sito xeral as\u00ed que con el se pode crear practicamente calquera tipo de software.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">de alto nivel o que fai que sexa f\u00e1cil <em>de ler<\/em> e entendible.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">de tipado din\u00e1mico, polo que o tipo dunha propiedade pode ir variando a medida que avanza a execuci\u00f3n.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">E admite diferentes tipos de paradigmas de programaci\u00f3n<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">estruturada<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">funcional<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">orientada a obxectos<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Python aparece oficialmente o 20 de febreiro de 1991. O seu creador \u00e9 Guido van Rossum, que comezou a traballar nela a finais da d\u00e9cada dos 80 coma pasatempo. O que buscaba era un proxecto co que manterse ocupado durante o nadal. Pensou en Python como unha descendente doutra linguaxe xa existente chamado ABC.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">No momento do seu lanzamento se converteu nunha das linguaxes m\u00e1is eficientes e innovadoras da \u00e9poca.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A\u00ednda que o seu logotipo ou s\u00edmbolo, creado por Tim Parking, sexan d\u00faas serpes de inspiraci\u00f3n maia &#8211; unha azul e outra amarela &#8211; o nome que lle deu o seu creador nada ten que ver cos r\u00e9ptis. Ao parecer Guido van Rossum inspirouse no nome da serie de humor dos anos 70: <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/es.wikipedia.org\/wiki\/Monty_Python%27s_Flying_Circus\"><span class=\"md-plain\">Monty Python&#8217;s Flying Circus<\/span><\/a><\/span><span class=\"md-plain\">, unha serie de televisi\u00f3n brit\u00e1nica creada e protagonizada polo grupo de humoristas <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/es.wikipedia.org\/wiki\/Monty_Python\"><span class=\"md-plain\">Monty Python<\/span><\/a><\/span><span class=\"md-plain\">. Segundo conta esta serie f\u00edxolle compa\u00f1a e lle serviu de entretemento durante o desenvolvemento da nova linguaxe.<\/span><\/p>\n<p><a href=\"http:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/python.svg\"><img decoding=\"async\" class=\"wp-image-884 aligncenter\" src=\"http:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/python.svg\" alt=\"Logotipo de Python\" width=\"113\" height=\"101\" \/><\/a><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Enseguida, Python se sit\u00faa entre as linguaxes m\u00e1is usadas e populares. Pero non sempre lle acompa\u00f1ar\u00eda ese \u00e9xito inicial. Coa chegada de PHP (1994) e Javascript (1995), Python foi perdendo popularidade. Unha tendencia de ca\u00edda que continuou durante os seguintes anos. <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">En 2015 remata o ciclo de vida de Python2 (2000) e emerxe Python3 (2008), que acabar\u00e1 impo\u00f1\u00e9ndose como novo e definitivo est\u00e1ndar da linguaxe. Tam\u00e9n ese ano, tecnolox\u00edas emerxentes coma o Big Data ou o Machine Learning, se fan cada vez mais populares, e comezan a usar, case de forma maioritaria, Python coma linguaxe para a s\u00faa implementaci\u00f3n.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">As\u00ed, dende 2016 at\u00e9 agora a linguaxe non deixa de medrar ate superar a linguaxes tan potentes como Java ou Javascript. Hoxe Python goza de moi boa sa\u00fade; e segundo as estat\u00edsticas de Github ou StackOverflow ou da cantidade de buscas en Google, Python \u00e9 unha linguaxe co\u00f1ecida e reclamada para unha chea de aplicaci\u00f3ns. Entre as que se contan tam\u00e9n implemantaci\u00f3ns tanto frontend como backend ou o desenvolvemento da IA.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">O cami\u00f1o, ben \u00e9 certo, non sempre foi f\u00e1cil. De feito, o transito de Python2 a Python3 foi moi controvertido. Para poder seguir evolucionando a linguaxe hab\u00eda que romper con certos aspectos de Python2. Isto provocou que Python3 non sempre fora compatible coa s\u00faa irm\u00e1 menor Python2 e que o c\u00f3digo desta fora, moitas veces, moi dif\u00edcil de migrar a Python3. <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Como soe suceder nestas situaci\u00f3ns, produciuse un gran debate entre os desenvolvedores da \u00e9poca. Pero o tempo acabou d\u00e1ndolle a raz\u00f3n a Python3, e houbo que romper con Python2 para que a linguaxe puidera seguir avanzando.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Hoxe, Python \u00e9 tan grande que ata ten a s\u00faa propia oda: &#8220;<\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/pybaq.co\/blog\/el-zen-de-python-explicado\/\"><span class=\"md-plain\">O Zen de Python<\/span><\/a><\/span><span class=\"md-plain\">&#8220;, un poema escrito por Tim Peters. Para co\u00f1ecelo s\u00f3 tes que abrir un int\u00e9rprete de Python, por exemplo escribindo <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>import this<\/code><\/span><span class=\"md-plain\"> na IDLE (Integrated Development and Learning Environment, ou \u00abEntorna de desenvolvemento e aprendizaxe integrada\u00bb) de Python e desa maneira poder\u00e1s ler o poema:<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-874\" src=\"http:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/image-20230621183253753.png\" alt=\"\" width=\"832\" height=\"512\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/image-20230621183253753.png 832w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/image-20230621183253753-300x185.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2020\/12\/image-20230621183253753-768x473.png 768w\" sizes=\"(max-width: 832px) 100vw, 832px\" \/><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A oda deixa moi claras as intenci\u00f3ns de Python dicindo cousas coma que <em>fermoso \u00e9 mellor que feo, expl\u00edcito \u00e9 mellor que impl\u00edcito, o simple \u00e9 mellor c\u00f3 complexo, o complexo \u00e9 mellor c\u00f3 complicado e que a lexibilidade conta&#8230;<\/em><\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">O certo \u00e9 que o poema non minte:\u00a0<\/span><span class=\"md-plain\">Python \u00e9 unha das linguaxes coa curva de aprendizaxe menos pronunciada, a s\u00faa sintaxe \u00e9 ben simple e f\u00e1cil <em>de ler<\/em> e iso a converte nunha das mellores linguaxes para comezar a aprender a programar.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">E, ao contrario de moitas outras linguaxes, a maior\u00eda das funcionalidades non residen no seu n\u00facleo. De feito Python fomenta a creaci\u00f3n de m\u00f3dulos; as\u00ed que as s\u00faas diferentes funcionalidades est\u00e1n despregadas en distintos m\u00f3dulos, o que contrib\u00fae a que se poida usar s\u00f3 o que se necesita.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Python \u00e9 famosa, moi famosa. Tanto que ao longo dos anos se crearon diferentes implementaci\u00f3ns noutras linguaxes que se acaban, por as\u00ed dicilo, compilando a Python. Basicamente se trata de formas de escribir c\u00f3digo noutras linguaxes pero coa intenci\u00f3n de que sexa Python a que tome o control en \u00faltima instancia. <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/github.com\/python\/cpython\"><span class=\"md-plain\">CPython<\/span><\/a><\/span><span class=\"md-plain\"> en C, <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/www.jython.org\/\"><span class=\"md-plain\">Jython<\/span><\/a><\/span><span class=\"md-plain\"> en Java, <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/ironpython.net\/\"><span class=\"md-plain\">IronPython<\/span><\/a><\/span><span class=\"md-plain\"> en .NET, <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/rubygems.org\/gems\/rubypython\/versions\/0.6.3\"><span class=\"md-plain\">Rubypython<\/span><\/a><\/span><span class=\"md-plain\"> en Ruby ou <\/span><span class=\"md-meta-i-c  md-link\"><a href=\"https:\/\/micropython.org\/\"><span class=\"md-plain\">MicroPython<\/span><\/a><\/span><span class=\"md-plain\"> para microcontroladores,&#8230; entre outras tantas que poder\u00e1s atopar pola www <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Se xa o\u00edches falar de Python, seguro que ter\u00e1s escoitado algunha vez iso de que <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">Python \u00e9 lento para tratarse dunha linguaxe interpretada e de alto nivel<\/span><\/em><\/span><span class=\"md-plain\">. Pois non. Python \u00e9 unha das linguaxes m\u00e1is r\u00e1pidas que hai, e sigue mellorando. As\u00ed a\u00a0<\/span><span class=\"md-plain\">versi\u00f3n 3.11, que apareceu en novembro de 2022, fixo que sexa entre un 10% e un 60% m\u00e1is r\u00e1pido do que era ata ent\u00f3n.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Ademais, Python \u00e9 unha linguaxe especialmente boa para o c\u00e1lculo. As\u00ed que instituci\u00f3ns como a NASA ou o CERN o utilizan como unha das s\u00faas ferramentas preferentes. E en compa\u00f1\u00edas tecnol\u00f3xicas como Google ou Meta, Python \u00e9 unha das linguaxes primordiais. Por algo ser\u00e1. <\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Ent\u00f3n, si algu\u00e9n te di que Python \u00e9 lento non lle fagas moito caso. Iso \u00e9 outra lenda urbana parecida \u00e1 de que PHP est\u00e1 xa morto.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">En canto \u00e1 hora de programar ou escribir c\u00f3digo, e<\/span><span class=\"md-plain\">n Python non necesitas punto e coma ao final de cada instruci\u00f3n. Tampouco se utilizan as chaves para definir bloques de c\u00f3digo. Python utiliza a indentaci\u00f3n significativa. Isto quere dicir que segundo sangremos o noso c\u00f3digo a sentenza vai pertencer a un bloque ou a outro. Iso si, Python nos obriga a indentar correctamente o c\u00f3digo.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Outras das s\u00faas caracter\u00edsticas son que con Python se poden crear valores infinitos, ou que p\u00f3dese utilizar a cl\u00e1usula <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>else<\/code><\/span><span class=\"md-plain\"> dentro dun <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>for<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">E hai m\u00e1is&#8230;, pero para non estenderme s\u00f3 subli\u00f1ar a enorme comunidade que hai detr\u00e1s desta potente linguaxe. De feito, hoxe a comunidade detr\u00e1s de Python \u00e9 unha das m\u00e1is grandes, con infinidade de recursos e cun mont\u00f3n de xente disposta a compartir e axudar.<\/span><\/p>\n<p class=\"md-end-block md-p md-focus\"><span class=\"md-plain md-expand\">As\u00ed que se o teu \u00e9 programar non lle perdas a vista a esta vella e interesante linguaxe. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python \u00e9 unha unha linguaxe de c\u00f3digo aberto o que significa que poder\u00e1s consultar todo o seu c\u00f3digo fonte e documentaci\u00f3n oficial cando o precises. Python non \u00e9 unha linguaxe compilada sen\u00f3n que emprega un int\u00e9rprete, o que o fai m\u00e1is pr\u00e1ctico e accesible para infinidade de procedementos de programaci\u00f3n. Python \u00e9 unha linguaxe: de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":356,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","omw_enable_modal_window":"enable","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[26],"tags":[43,44],"class_list":["post-222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webdev","tag-programacion","tag-python","entry","has-media"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":6,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":886,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/222\/revisions\/886"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/media\/356"}],"wp:attachment":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}