From bd2f530193fedfea7cb59907a1e3f6f834c1338a Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 8 Feb 2025 10:25:11 -0500 Subject: [PATCH 001/187] add terminal integrated on vscode --- .vscode/settings.json | 295 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..37d6bba --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,295 @@ +{ + // ========== Visuals ========== + "editor.cursorSmoothCaretAnimation": "on", + "editor.fontFamily": "Cascadia code", + "editor.guides.bracketPairs": "active", + "editor.lineNumbers": "on", + "editor.renderWhitespace": "none", + "window.autoDetectColorScheme": false, + "workbench.colorTheme": "Tokyo Night", + "workbench.editor.tabActionLocation": "left", + "workbench.fontAliasing": "antialiased", + "workbench.list.smoothScrolling": true, + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.productIconTheme": "fluent-icons", + "workbench.sideBar.location": "left", + "workbench.startupEditor": "newUntitledFile", + "workbench.tree.expandMode": "singleClick", + "workbench.tree.indent": 4, + // ========== Editor ========== + "debug.onTaskErrors": "debugAnyway", + "diffEditor.ignoreTrimWhitespace": false, + "editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", + "editor.find.addExtraSpaceOnTop": false, + "editor.inlineSuggest.enabled": true, + "editor.multiCursorModifier": "ctrlCmd", + "editor.suggestSelection": "first", + "editor.tabSize": 2, + "editor.unicodeHighlight.invisibleCharacters": false, + "editor.stickyScroll.enabled": true, + "terminal.integrated.stickyScroll.enabled": true, + "workbench.tree.enableStickyScroll": true, + "editor.hover.sticky": true, + "editor.codeActionsOnSave": { + "source.fixAll": "never", + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + "explorer.confirmDelete": false, + "explorer.confirmDragAndDrop": false, + "files.eol": "\n", + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.simpleDialog.enable": true, + "git.autofetch": true, + "git.confirmSync": false, + "git.enableSmartCommit": true, + "git.untrackedChanges": "separate", + "scm.diffDecorationsGutterWidth": 2, + "terminal.integrated.cursorBlinking": true, + "terminal.integrated.cursorStyle": "block", + "terminal.integrated.persistentSessionReviveProcess": "never", + "terminal.integrated.tabs.enabled": true, + "terminal.integrated.fontSize": 15, + "workbench.editor.closeOnFileDelete": true, + "workbench.editor.highlightModifiedTabs": true, + "workbench.editor.limit.enabled": true, + "workbench.editor.limit.perEditorGroup": true, + "workbench.editor.limit.value": 5, + "search.exclude": { + "**/*.snap": true, + "**/*.svg": true, + "**/.git": true, + "**/.github": false, + "**/.nuxt": true, + "**/.output": true, + "**/.pnpm": true, + "**/.vscode": true, + "**/.yarn": true, + "**/assets": true, + "**/bower_components": true, + "**/dist/**": true, + "**/logs": true, + "**/node_modules": true, + "**/out/**": true, + "**/package-lock.json": true, + "**/pnpm-lock.yaml": true, + "**/public": true, + "**/temp": true, + "**/yarn.lock": true, + "**/CHANGELOG*": true, + "**/LICENSE*": true, + }, + "window.nativeTabs": true, // this is great, macOS only + "window.title": "${rootName}", // this make tabs more readable + "extensions.autoUpdate": "onlyEnabledExtensions", + // ========== Extension configs ========== + "emmet.showSuggestionsAsSnippets": true, + "emmet.triggerExpansionOnTab": false, + "errorLens.enabledDiagnosticLevels": [ + "warning", + "error" + ], + "errorLens.excludeBySource": [ + "cSpell", + "Grammarly", + "eslint" + ], + // ESLint config: https://github.com/antfu/eslint-config + "eslint.codeAction.showDocumentation": { + "enable": true + }, + "eslint.quiet": true, + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + { + "rule": "style/*", + "severity": "off" + }, + { + "rule": "format/*", + "severity": "off" + }, + { + "rule": "*-indent", + "severity": "off" + }, + { + "rule": "*-spacing", + "severity": "off" + }, + { + "rule": "*-spaces", + "severity": "off" + }, + { + "rule": "*-order", + "severity": "off" + }, + { + "rule": "*-dangle", + "severity": "off" + }, + { + "rule": "*-newline", + "severity": "off" + }, + { + "rule": "*quotes", + "severity": "off" + }, + { + "rule": "*semi", + "severity": "off" + } + ], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml" + ], + "css.lint.hexColorLength": "ignore", + // I only use Prettier for manually formatting + "prettier.enable": true, + "prettier.printWidth": 200, + "prettier.semi": true, + "prettier.singleQuote": true, + // ========== File Nesting ========== + "explorer.fileNesting.enabled": true, + "editor.fontSize": 13, + "files.autoSave": "afterDelay", + "editor.minimap.enabled": true, + "editor.minimap.maxColumn": 100, + "window.zoomLevel": 2, + "terminal.integrated.fontFamily": "Iosevka Nerd Font", + "editor.wordWrap": "on", + "editor.fontLigatures": true, + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "prettier.useTabs": false, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.hover.enabled": true, + "eplorer.fileNesting.enabled": true, + "[python]": { + "diffEditor.ignoreTrimWhitespace": false, + "editor.formatOnType": true, + "editor.wordBasedSuggestions": "off", + "editor.defaultFormatter": "ms-python.black-formatter", + }, + "[jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[java]": { + "editor.suggest.snippetsPreventQuickSuggestions": false, + "editor.defaultFormatter": "redhat.java" + }, + "redhat.telemetry.enabled": false, + "editor.cursorBlinking": "blink", + "editor.smoothScrolling": true, + "editor.fastScrollSensitivity": 10, + "editor.cursorStyle": "line", + "editor.find.cursorMoveOnType": false, + "emmet.syntaxProfiles": { + "html": { + "inline_break": true + } + }, + "liveServer.settings.donotShowInfoMsg": true, + "editor.snippetSuggestions": "top", + "window.nativeFullScreen": true, + "editor.guides.indentation": false, + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.activityBar.location": "default", + "workbench.iconTheme": "symbols", + "workbench.tree.renderIndentGuides": "none", + "breadcrumbs.enabled": true, + "breadcrumbs.icons": true, + "breadcrumbs.showArrays": false, + "breadcrumbs.showBooleans": false, + "breadcrumbs.showClasses": false, + "breadcrumbs.showConstants": false, + "breadcrumbs.showConstructors": false, + "workbench.editor.empty.hint": "hidden", + "workbench.editor.enablePreview": false, + "workbench.editor.labelFormat": "short", + "window.density.editorTabHeight": "default", + "window.systemColorTheme": "dark", + "window.menuBarVisibility": "compact", + "editor.formatOnType": true, + "editor.inlayHints.enabled": "off", + "typescript.tsserver.maxTsServerMemory": 4096, + "typescript.tsserver.log": "off", + "typescript.suggestionActions.enabled": false, + "javascript.suggestionActions.enabled": false, + "files.maxMemoryForLargeFilesMB": 4096, + "workbench.tips.enabled": false, + "window.commandCenter": true, + //APC CUSTOMIZE UI + "editor.codeLens": false, + "zenMode.centerLayout": false, + "zenMode.hideActivityBar": false, + "zenMode.hideLineNumbers": false, + "zenMode.hideStatusBar": false, + "zenMode.fullScreen": true, + "security.workspace.trust.untrustedFiles": "open", + "update.mode": "manual", + "java.compile.nullAnalysis.mode": "disabled", + "explorer.compactFolders": false, + "explorer.openEditors.visible": 1, + "explorer.sortOrder": "type", + "workbench.statusBar.visible": true, + "terminal.integrated.gpuAcceleration": "on", + "editor.autoIndent": "full", + "editor.folding": true, + "window.enableHardwareAcceleration": false, + "editor.suggestOnTriggerCharacters": true, + "editor.quickSuggestions": { + "other": true, + }, + "CodeGPT.apiKey": "CodeGPT Plus Beta", + "editor.parameterHints.enabled": false, + "editor.glyphMargin": false, + "editor.showFoldingControls": "mouseover", + "editor.matchBrackets": "never", + "animations.Active": "Indent", + "template-string-converter.enabled": true, + "telemetry.telemetryLevel": "off", + "animations.Enabled": true, + "vscode_custom_css.imports": [ + "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" + ], + "workbench.editor.wrapTabs": false, + "editor.semanticTokenColorCustomizations": { + "[Tokyo Night]": { + "enabled": true, + "rules": { + "*.declaration": { + "bold": true, + } + } + } + }, + "terminal.integrated.defaultProfile.windows": "Git Bash", + "apc.font.family": "Cascadia Code", + "git.blame.editorDecoration.enabled": true, + "[php]": { + "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" + }, + "rapidapi.terminalLink.enabled": false, + "chat.commandCenter.enabled": false, + "editor.scrollbar.vertical": "hidden", + "editor.lineHeight": 20, + "oneDarkPro.italic": true, + "oneDarkPro.vivid": true, + "editor.linkedEditing": true +} From 4ed7544d1295ed1e53c5fc0c4c90a07562c8023b Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 8 Feb 2025 10:52:11 -0500 Subject: [PATCH 002/187] add new settings --- .vscode/settings.json | 15 ++++++++------- 01_basic/exercises.py | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 37d6bba..f8d9015 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro", + "workbench.preferredLightColorTheme": "One Dark Pro", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -207,8 +207,8 @@ "editor.snippetSuggestions": "top", "window.nativeFullScreen": true, "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro", + "workbench.preferredHighContrastColorTheme": "One Dark Pro", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -270,7 +270,7 @@ ], "workbench.editor.wrapTabs": false, "editor.semanticTokenColorCustomizations": { - "[Tokyo Night]": { + "[One Dark Pro]": { "enabled": true, "rules": { "*.declaration": { @@ -291,5 +291,6 @@ "editor.lineHeight": 20, "oneDarkPro.italic": true, "oneDarkPro.vivid": true, - "editor.linkedEditing": true + "editor.linkedEditing": true, + "oneDarkPro.bold": true } diff --git a/01_basic/exercises.py b/01_basic/exercises.py index fd50d88..de232da 100644 --- a/01_basic/exercises.py +++ b/01_basic/exercises.py @@ -23,7 +23,7 @@ print("--------------") print("\nEjercicio 3: Casting de tipos") -print("Convierte la cadena \"12345\" a un entero y luego a un float.") +print('Convierte la cadena "12345" a un entero y luego a un float.') print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") ### Completa aquí @@ -44,4 +44,4 @@ print("1. Crea una variable con el número PI (sin asignar una variable)") print("2. Redondea el número con round()") print("3. Haz la división entera entre el número que te salió y el número 2") -print("4. El resultado debería ser 1") \ No newline at end of file +print("4. El resultado debería ser 1") From a5ac9b776cee18825143d4ba844555062b7aa0ed Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 9 Feb 2025 08:06:25 -0500 Subject: [PATCH 003/187] aprendiendo python con midudev --- .vscode/settings.json | 26 ++--- 01_basic/02_types.py | 24 +++-- 01_basic/03_cast.py | 14 ++- 01_basic/04_variables.py | 15 ++- 01_basic/exercises.py | 22 +++- 02_flow_control/01_if.py | 119 ++++++++++++++++------ 03_loops/01_loop_while.py | 128 ++++++++++++++++++------ 03_loops/01_loop_while_solutions.py | 52 +++++----- 03_loops/02_loop_for.py | 81 +++++++++++---- 03_loops/02_loop_for_solutions.py | 21 ++-- 03_loops/03_range.py | 50 ++++++--- 03_loops/03_range_solutions.py | 12 +-- 03_loops/04_functions.py | 28 ++++-- 04_logic/01_challenge_fantastic_four.py | 24 +++-- 04_logic/04_dictionaries.py | 28 +++--- 15 files changed, 443 insertions(+), 201 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f8d9015..255a496 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia code", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro", "workbench.preferredLightColorTheme": "One Dark Pro", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -50,7 +50,7 @@ "terminal.integrated.cursorBlinking": true, "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", - "terminal.integrated.tabs.enabled": true, + "terminal.integrated.tabs.enabled": false, "terminal.integrated.fontSize": 15, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, @@ -165,12 +165,12 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13, + "editor.fontSize": 14.11, "files.autoSave": "afterDelay", - "editor.minimap.enabled": true, - "editor.minimap.maxColumn": 100, - "window.zoomLevel": 2, - "terminal.integrated.fontFamily": "Iosevka Nerd Font", + "editor.minimap.enabled": false, + "editor.minimap.maxColumn": 55, + "window.zoomLevel": 1.89, + "terminal.integrated.fontFamily": "Cascadia code", "editor.wordWrap": "on", "editor.fontLigatures": true, "editor.formatOnPaste": true, @@ -258,7 +258,7 @@ }, "CodeGPT.apiKey": "CodeGPT Plus Beta", "editor.parameterHints.enabled": false, - "editor.glyphMargin": false, + "editor.glyphMargin": true, "editor.showFoldingControls": "mouseover", "editor.matchBrackets": "never", "animations.Active": "Indent", @@ -288,9 +288,9 @@ "rapidapi.terminalLink.enabled": false, "chat.commandCenter.enabled": false, "editor.scrollbar.vertical": "hidden", - "editor.lineHeight": 20, - "oneDarkPro.italic": true, - "oneDarkPro.vivid": true, + "editor.lineHeight": 23, "editor.linkedEditing": true, - "oneDarkPro.bold": true + "oneDarkPro.bold": true, + "oneDarkPro.italic": true, + "oneDarkPro.vivid": true } diff --git a/01_basic/02_types.py b/01_basic/02_types.py index ae29142..62d2efa 100644 --- a/01_basic/02_types.py +++ b/01_basic/02_types.py @@ -12,19 +12,29 @@ print("float:") # Números decimales (de punto flotante) print(type(3.14)) # Número con punto decimal -print(type(1.0)) # También es considerado un float, aunque sea un número entero con punto decimal +print( + type(1.0) +) # También es considerado un float, aunque sea un número entero con punto decimal print(type(1e3)) # Notación científica (equivalente a 1000.0) print("complex:") # Números complejos (con parte real e imaginaria) -print(type(1 + 2j)) # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) +print( + type(1 + 2j) +) # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) print("str:") # Cadenas de texto (strings) print(type("Hola")) # Un string con texto print(type("")) # Un string vacío -print(type("123")) # Aunque parezca un número, está entre comillas, por lo que es un string -print(type(""" +print( + type("123") +) # Aunque parezca un número, está entre comillas, por lo que es un string +print( + type( + """ Multilinea -""")) # Un string que abarca varias líneas usando triple comillas +""" + ) +) # Un string que abarca varias líneas usando triple comillas print("bool:") # Valores booleanos (True o False) print(type(True)) # Valor booleano verdadero @@ -32,4 +42,6 @@ print(type(1 < 2)) # Comparación que devuelve un booleano (True) print("NoneType:") # Representa la ausencia de valor -print(type(None)) # `None` es un tipo especial en Python que representa "sin valor" o "nulo" \ No newline at end of file +print( + type(None) +) # `None` es un tipo especial en Python que representa "sin valor" o "nulo" diff --git a/01_basic/03_cast.py b/01_basic/03_cast.py index a2cf176..ab23503 100644 --- a/01_basic/03_cast.py +++ b/01_basic/03_cast.py @@ -9,10 +9,14 @@ print(2 + int("100")) # Convierte "100" a entero y suma 2. Resultado: 102 # Convertir un entero a cadena para concatenarlo con otra cadena -print("100" + str(2)) # Convierte el número 2 a cadena y lo concatena. Resultado: "1002" +print( + "100" + str(2) +) # Convierte el número 2 a cadena y lo concatena. Resultado: "1002" # Convertir una cadena con un número decimal a tipo float -print(type(float("3.1416"))) # Convierte "3.1416" a float y muestra su tipo. Resultado: +print( + type(float("3.1416")) +) # Convierte "3.1416" a float y muestra su tipo. Resultado: # Convertir un número decimal a entero (se trunca la parte decimal) print(int(3.1416)) # Convierte 3.1416 a 3 eliminando la parte decimal. Resultado: 3 @@ -25,10 +29,12 @@ # Evaluar cadenas como booleanos print(bool("")) # Una cadena vacía es False. Resultado: False print(bool(" ")) # Una cadena con espacios es True. Resultado: True -print(bool("False")) # Una cadena con texto, aunque sea "False", es True. Resultado: True +print( + bool("False") +) # Una cadena con texto, aunque sea "False", es True. Resultado: True # Redondear un número decimal print(round(2.51)) # Redondea 2.51 al entero más cercano. Resultado: 3 # Este genera un error y se comenta para evitar conflicto en la ejecución -# print(int("Hola mundo")) # ❌ Esto generaría un ValueError porque "Hola mundo" no es un número \ No newline at end of file +# print(int("Hola mundo")) # ❌ Esto generaría un ValueError porque "Hola mundo" no es un número diff --git a/01_basic/04_variables.py b/01_basic/04_variables.py index 497451e..706a562 100644 --- a/01_basic/04_variables.py +++ b/01_basic/04_variables.py @@ -35,16 +35,16 @@ name, age, city = "midudev", 32, "Bogotá" # Convenciones de nombres de variables -mi_nombre_de_variable = "ok" # snake_case +mi_nombre_de_variable = "ok" # snake_case nombre = "ok" -miNombreDeVariable = "no-recomendado" # camelCase -MiNombreDeVariable = "no-recomendado" # PascalCase -minombredevariable = "no-recomendado" # todojunto +miNombreDeVariable = "no-recomendado" # camelCase +MiNombreDeVariable = "no-recomendado" # PascalCase +minombredevariable = "no-recomendado" # todojunto mi_nombre_de_variable_123 = "ok" -MI_CONSTANTE = 3.14 # UPPER_CASE -> constantes +MI_CONSTANTE = 3.14 # UPPER_CASE -> constantes # Nombres NO válidos de variables (esto generaría errores) # 123123_variable = "ko" # ❌ No puede comenzar con un número @@ -62,9 +62,8 @@ # 'return', 'try', 'while', 'with', 'yield'] # Anotaciones de tipo (opcional, para mayor claridad en el código) -is_user_logged_in: bool = True # Indica que la variable es un booleano +is_user_logged_in: bool = True # Indica que la variable es un booleano print(is_user_logged_in) -name: str = "midudev" # Indica que la variable es una cadena de texto +name: str = "midudev" # Indica que la variable es una cadena de texto print(name) - diff --git a/01_basic/exercises.py b/01_basic/exercises.py index de232da..3a4eed2 100644 --- a/01_basic/exercises.py +++ b/01_basic/exercises.py @@ -7,6 +7,10 @@ print("Escribe un programa que imprima tu nombre y tu ciudad en líneas separadas.") ### Completa aquí +nombre = "midudev" +ciudad = "madrid" +print("Nombre:", nombre) +print("Ciudad:", ciudad) print("--------------") @@ -19,6 +23,11 @@ e = None ### Completa aquí +print(type(a)) +print(type(b)) +print(type(c)) +print(type(d)) +print(type(e)) print("--------------") @@ -27,6 +36,9 @@ print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") ### Completa aquí +print(int("12345")) +print(float("12345")) +print(int(3.99)) # Se tronca el número decimal. print("--------------") @@ -37,7 +49,10 @@ # "Hola! Me llamo midudev y tengo 39 años, mido 1.70 metros" ### Completa aquí - +nombre = "midudev" +edad = 39 +altura = 1.86 +print(f"Hola! Me llamo {nombre} y tengo {edad} años, mido {altura} metros") print("--------------") print("\nEjercicio 5: Números") @@ -45,3 +60,8 @@ print("2. Redondea el número con round()") print("3. Haz la división entera entre el número que te salió y el número 2") print("4. El resultado debería ser 1") + +### Completa aquí +# Anotaciones de tipo (Indica que la variable es un entero) +resultado: int = int(round(3.14159) / 2) +print("División entera de PI entre 2:", resultado) diff --git a/02_flow_control/01_if.py b/02_flow_control/01_if.py index 9e0db8b..7bbce53 100644 --- a/02_flow_control/01_if.py +++ b/02_flow_control/01_if.py @@ -7,6 +7,7 @@ # En este caso, importamos el módulo "os" que nos da acceso a funciones # relacionadas con el sistema operativo import os + # system() nos permite ejecutar un comando en la terminal # en este caso lo hacemos para limpiar la pantalla os.system("clear") @@ -17,23 +18,23 @@ # solo si se cumple una condición. edad = 18 if edad >= 18: - print("Eres mayor de edad") - print("¡Felicidades!") + print("Eres mayor de edad") + print("¡Felicidades!") # Si no se cumple la condición, no se ejecuta el bloque de código edad = 15 if edad >= 18: - print("Eres mayor de edad") - print("¡Felicidades!") + print("Eres mayor de edad") + print("¡Felicidades!") # Podemos usar el comando "else" para ejecutar un bloque de código # si no se cumple la condición anterior del if print("\n Sentencia condicional con else") edad = 15 if edad >= 18: - print("Eres mayor de edad") + print("Eres mayor de edad") else: - print("Eres menor de edad") + print("Eres menor de edad") print("\n Sentencia condicional con elif") nota = 5 @@ -42,13 +43,13 @@ # múltiples condiciones, ten en cuenta que sólo se ejecutará el primer bloque # de código que cumpla la condición (o la del else, si está presente) if nota >= 9: - print("¡Sobresaliente!") + print("¡Sobresaliente!") elif nota >= 7: - print("Notable!") + print("Notable!") elif nota >= 5: - print("¡Aprobado!") + print("¡Aprobado!") else: - print("¡No está calificado!") + print("¡No está calificado!") print("\n Condiciones múltiples") edad = 16 @@ -57,30 +58,30 @@ # Los operadores lógicos en Python son: # and: True si ambos operandos son verdaderos # or: True si al menos uno de los operandos es verdadero -# En JavaScript: +# En JavaScript: # && sería and # || sería or # En el caso que seas mayor de edad y tengas carnet... # entonces podrás conducir if edad >= 18 and tiene_carnet: - print("Puedes conducir 🚗") + print("Puedes conducir 🚗") else: - print("POLICIA 🚔!!!1!!!") + print("POLICIA 🚔!!!1!!!") # En un pueblo de Isla Margarita son más laxos y # te dejan conducir si eres mayor de edad O tienes carnet if edad >= 18 or tiene_carnet: - print("Puedes conducir en la Isla Margarita 🚗") + print("Puedes conducir en la Isla Margarita 🚗") else: - print("Paga al policía y te deja conducir!!!") + print("Paga al policía y te deja conducir!!!") # También tenemos el operador lógico "not" # que nos permite negar una condición es_fin_de_semana = False # JavaScript -> ! if not es_fin_de_semana: - print("¡midu, venga que hay que streamear!") + print("¡midu, venga que hay que streamear!") # Podemos anidar condicionales, uno dentro del otro # para determinar múltiples condiciones aunque @@ -90,12 +91,12 @@ tiene_dinero = True if edad >= 18: - if tiene_dinero: - print("Puedes ir a la discoteca") - else: - print("Quédate en casa") + if tiene_dinero: + print("Puedes ir a la discoteca") + else: + print("Quédate en casa") else: - print("No puedes entrar a la disco") + print("No puedes entrar a la disco") # Más fácil sería: # if edad < 18: @@ -109,25 +110,25 @@ # en Python son evaluados como verdaderos o falsos # por ejemplo, el número 5, es True numero = 5 -if numero: # True - print("El número no es cero") +if numero: # True + print("El número no es cero") # Pero el número 0 se evalúa como False numero = 0 -if numero: # False - print("Aquí no entrará nunca") +if numero: # False + print("Aquí no entrará nunca") # También el valor vacío "" se evalúa como False nombre = "" if nombre: - print("El nombre no es vacío") + print("El nombre no es vacío") # ¡Ten cuidado con no confundir la asignación = con la comparación ==! -numero = 3 # asignación -es_el_tres = numero == 3 # comparación +numero = 3 # asignación +es_el_tres = numero == 3 # comparación if es_el_tres: - print("El número es 3") + print("El número es 3") # A veces podemos crear condicionales en una sola línea usando # las ternarias, es una forma concisa de un if-else en una línea de código @@ -146,18 +147,76 @@ # Pide al usuario que introduzca dos números y muestra un mensaje # indicando cuál es mayor o si son iguales + +print("\nEjercicio 1: Determinar el mayor de dos números") + +numero1 = int(input("Introduce un número: ")) +numero2 = int(input("Introduce otro número: ")) + +if numero1 > numero2: + print(f"El número {numero1} es mayor que {numero2}") +elif numero1 < numero2: + print(f"El número {numero2} es mayor que {numero1}") +else: + print(f"Los números {numero1} y {numero2} son iguales") + # Ejercicio 2: Calculadora simple # Pide al usuario dos números y una operación (+, -, *, /) # Realiza la operación y muestra el resultado (maneja la división entre zero) +print("\nEjercicio 2: Calculadora simple") + +num1 = int(input("Introduce un número: ")) +num2 = int(input("Introduce otro número: ")) + +operation = input("Introduce la operación (+, -, *, /): ") +match operation: + case "+": + print(f"La suma es: {num1 + num2}") + case "-": + print(f"La resta es: {num1 - num2}") + case "*": + print(f"La multiplicación es: {num1 * num2}") + case "/": + if num2 == 0: + print("No se puede dividir entre cero") + else: + print(f"La división es: {num1 / num2}") + case _: # En caso de que haya un error + print("Operación no válida") + # Ejercicio 3: Año bisiesto # Pide al usuario que introduzca un año y determina si es bisiesto. # Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400. +print("\nEjercicio 3: Año bisiesto") + +year = int(input("Introduce un año:")) +if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): + print(f"{year} es un año bisiesto") +else: + print(f"{year} no es un año bisiesto") + # Ejercicio 4: Categorizar edades # Pide al usuario que introduzca una edad y la clasifique en: # - Bebé (0-2 años) # - Niño (3-12 años) # - Adolescente (13-17 años) # - Adulto (18-64 años) -# - Adulto mayor (65 años o más) \ No newline at end of file +# - Adulto mayor (65 años o más) + +print("\nEjercicio 4: Categorizar edades") + +edad = int(input("Introduce tu edad: ")) +if edad < 0: + print("No existes") +elif edad <= 2: + print("Eres un bebé") +elif edad <= 12: + print("Eres un niño") +elif edad <= 17: + print("Eres un adolescente") +elif edad <= 64: + print("Eres un adulto") +else: + print("Eres un adulto mayor") diff --git a/03_loops/01_loop_while.py b/03_loops/01_loop_while.py index ceb88f4..18df4a6 100644 --- a/03_loops/01_loop_while.py +++ b/03_loops/01_loop_while.py @@ -1,6 +1,6 @@ ### # 01 - Bucles (while) -# Permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición +# Permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición ### print("\n Bucle while:") @@ -9,67 +9,67 @@ contador = 0 while contador <= 5: - print(contador) - contador += 1 # es super importante para evitar un bucle infinito + print(contador) + contador += 1 # es super importante para evitar un bucle infinito # utilizando la palabra break, para romper el bucle print("\n Bucle while con break:") contador = 0 while True: - print(contador) - contador += 1 - if contador == 5: - break # sale del bucle + print(contador) + contador += 1 + if contador == 5: + break # sale del bucle # continue, que lo hace es saltar esa iteración en concreto # y continuar con el bucle print("\n Bucle con continue") contador = 0 while contador < 10: - contador += 1 + contador += 1 - if contador % 2 == 0: - continue + if contador % 2 == 0: + continue - print(contador) + print(contador) # else, esta condición cuando se ejecuta? print("\n Bucle while con else:") contador = 0 while contador < 5: - print(contador) - contador += 1 + print(contador) + contador += 1 else: - print("El bucle ha terminado") + print("El bucle ha terminado") # else, esta condición cuando se ejecuta? print("\n Bucle while con else:") contador = 0 while contador < 5: - print(contador) - contador += 1 + print(contador) + contador += 1 else: - print("El bucle ha terminado") + print("El bucle ha terminado") # pedirle al usuario un número que tiene # que ser positivo si no, no le dejamos en paz numero = -1 while numero < 0: - numero = int(input("Escribe un número positivo: ")) - if numero < 0: - print("El número debe ser positivo. Intenta otra vez, majo o maja.") + numero = int(input("Escribe un número positivo: ")) + if numero < 0: + print("El número debe ser positivo. Intenta otra vez, majo o maja.") print(f"El número que has introducido es {numero}") numero = -1 while numero < 0: - try: - numero = int(input("Escribe un número positivo: ")) - if numero < 0: - print("El número debe ser positivo. Intenta otra vez, majo o maja.") - except: - print("Lo que introduces debe ser un número, que si no peta!") + try: + numero = int(input("Escribe un número positivo: ")) + if numero < 0: + print("El número debe ser positivo. Intenta otra vez, majo o maja.") + except: + print("Lo que introduces debe ser un número, que si no peta!") print(f"El número que has introducido es {numero}") @@ -79,32 +79,96 @@ # Ejercicio 1: Cuenta atrás # Imprime los números del 10 al 1 usando un bucle while. -print("\nEjercicio 1:") +print("\nEjercicio 1: Cuenta atrás") + +numero = 10 + +while numero >= 1: + print(numero) + numero -= 1 # los números se imprimen de manera descendente. + # Ejercicio 2: Suma de números pares (while) # Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. -print("\nEjercicio 2:") +print("\nEjercicio 2: Suma de números pares") + +numero = 1 +suma = 0 + +while numero <= 20: + if numero % 2 == 0: + suma += numero + numero += 1 + +print(f"La suma de los números pares hasta 20 es: {suma}") + # Ejercicio 3: Factorial de un número # Pide al usuario que introduzca un número entero positivo. # Calcula su factorial usando un bucle while. # El factorial de un número entero positivo es el producto de todos los números del 1 al ese número. Por ejemplo, el factorial de 5 # 5! = 5 x 4 x 3 x 2 x 1 = 120. -print("\nEjercicio 3:") +print("\nEjercicio 3: Factorial de un número") + +numero = int(input("Introduce un número entero positivo: ")) +factorial = 1 + +while numero > 0: + factorial *= numero + numero -= 1 + +print(f"El factorial del número introducido es: {factorial}") + # Ejercicio 4: Validación de contraseña # Pide al usuario que introduzca una contraseña. # La contraseña debe tener al menos 8 caracteres. # Usa un bucle while para seguir pidiendo la contraseña hasta que cumpla con los requisitos. # Si la contraseña es válida, imprime "Contraseña válida". -print("\nEjercicio 4:") +print("\nEjercicio 4: Validación de contraseña") + +password = input("Introduce una contraseña (al menos 8 caracteres): ") + +while len(password) < 8: + print("La contraseña debe tener al menos 8 caracteres.") + # El usuario vuelve a digitar la contraseña, hasta que sea correcta + password = input("Introduce una contraseña (al menos 8 caracteres): ") + +print("Contraseña válida ✔") # Ejercicio 5: Tabla de multiplicar # Pide al usuario que introduzca un número. # Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle while. -print("\nEjercicio 5:") +print("\nEjercicio 5: Tabla de multiplicar") + +numero = int(input("Introduce un número: ")) + +contador = 1 + +while contador <= 10: + print(f"{numero} x {contador} = {numero * contador}") + contador += 1 # incrementa el contador # Ejercicio 6: Números primos hasta N # Pide al usuario que introduzca un número entero positivo N. # Imprime todos los números primos menores o iguales que N usando un bucle while. -print("\nEjercicio 6:") \ No newline at end of file +print("\nEjercicio 6: Números primos hasta N") + +numero = int(input("Introduce un número entero positivo: ")) + +contador = 2 # el primer número primo, salta de 2 en 2 + +while contador <= numero: + es_primo = True # asumimos que el número es primo + divisor = 2 # el primer número primo + + while divisor < contador: + if contador % divisor == 0: + es_primo = False + break + divisor += 1 + + if es_primo: + print(contador) + + contador += 1 diff --git a/03_loops/01_loop_while_solutions.py b/03_loops/01_loop_while_solutions.py index bb5b5cd..5a32b48 100644 --- a/03_loops/01_loop_while_solutions.py +++ b/03_loops/01_loop_while_solutions.py @@ -7,8 +7,8 @@ print("\nEjercicio 1:") numero = 10 while numero >= 1: - print(numero) - numero -= 1 + print(numero) + numero -= 1 # Ejercicio 2: Suma de números pares (while) # Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. @@ -16,9 +16,9 @@ numero = 1 suma_pares = 0 while numero <= 20: - if numero % 2 == 0: - suma_pares += numero - numero += 1 + if numero % 2 == 0: + suma_pares += numero + numero += 1 print(f"La suma de los números pares hasta 20 es: {suma_pares}") @@ -34,8 +34,8 @@ contador = 1 while contador <= numero: - factorial *= contador - contador += 1 + factorial *= contador + contador += 1 print(f"El factorial de {numero} es: {factorial}") @@ -48,9 +48,9 @@ contrasena = "" while len(contrasena) < 8: - contrasena = input("Introduce una contraseña (al menos 8 caracteres): ") - if len(contrasena) < 8: - print("La contraseña debe tener al menos 8 caracteres. Inténtalo de nuevo.") + contrasena = input("Introduce una contraseña (al menos 8 caracteres): ") + if len(contrasena) < 8: + print("La contraseña debe tener al menos 8 caracteres. Inténtalo de nuevo.") print("Contraseña válida") @@ -63,9 +63,9 @@ multiplicador = 1 while multiplicador <= 10: - resultado = numero * multiplicador - print(f"{numero} x {multiplicador} = {resultado}") - multiplicador += 1 + resultado = numero * multiplicador + print(f"{numero} x {multiplicador} = {resultado}") + multiplicador += 1 # Ejercicio 6: Números primos hasta N # Pide al usuario que introduzca un número entero positivo N. @@ -77,14 +77,18 @@ numero = 2 while numero <= n: - es_primo = True # Asumimos que el número es primo hasta que se demuestre lo contrario - divisor = 2 - while divisor * divisor <= numero: # Optimizamos: no es necesario probar divisores hasta numero - if numero % divisor == 0: - es_primo = False # Si encontramos un divisor, no es primo - break # Salimos del bucle interior - divisor += 1 - if es_primo: - print(numero) - - numero += 1 \ No newline at end of file + es_primo = ( + True # Asumimos que el número es primo hasta que se demuestre lo contrario + ) + divisor = 2 + while ( + divisor * divisor <= numero + ): # Optimizamos: no es necesario probar divisores hasta numero + if numero % divisor == 0: + es_primo = False # Si encontramos un divisor, no es primo + break # Salimos del bucle interior + divisor += 1 + if es_primo: + print(numero) + + numero += 1 diff --git a/03_loops/02_loop_for.py b/03_loops/02_loop_for.py index f974a5c..9e29da8 100644 --- a/03_loops/02_loop_for.py +++ b/03_loops/02_loop_for.py @@ -1,6 +1,6 @@ ### # 02 - Bucles (for) -# Permiten ejecutar un bloque de código repetidamente mientras ITERA un iterable o una lista +# Permiten ejecutar un bloque de código repetidamente mientras ITERA un iterable o una lista ### print("\nBucle for:") @@ -8,43 +8,44 @@ # Iterar una lista frutas = ["manzana", "pera", "mandarina"] for fruta in frutas: - print(fruta) + print(fruta) # Iterar sobre cualquier cosa que sea iterable cadena = "midudev" for caracter in cadena: - print(caracter) + print(caracter) # enumerate() frutas = ["manzana", "pera", "mandarina"] for idx, value in enumerate(frutas): - print(f"El índice es {idx} y la fruta es {value}") + print(f"El índice es {idx} y la fruta es {value}") # bucles anidados letras = ["A", "B", "C"] numeros = [1, 2, 3] for letra in letras: - for numero in numeros: - print(f"{letra}{numero}") + for numero in numeros: + print(f"{letra}{numero}") # break print("\nbreak:") animales = ["perro", "gato", "raton", "loro", "pez", "canario"] for idx, animal in enumerate(animales): - print(animal) - if animal == "loro": - print(f"El loro está escondido en el índice {idx}") - break + print(animal) + if animal == "loro": + print(f"El loro está escondido en el índice {idx}") + break # continue print("\ncontinue:") animales = ["perro", "gato", "raton", "loro", "pez", "canario"] for idx, animal in enumerate(animales): - if animal == "loro": continue - - print(animal) + if animal == "loro": + continue + + print(animal) # Comprensión de listas (list comprehension) animales = ["perro", "gato", "raton", "loro", "pez", "canario"] @@ -61,30 +62,74 @@ # Ejercicio 1: Imprimir números pares # Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. -print("\nEjercicio 1:") +print("\nEjercicio 1: Imprimir números pares:") + +for num in range(2, 21, 2): + print(num) + # Ejercicio 2: Calcular la media de una lista # Dada la siguiente lista de números: # numeros = [10, 20, 30, 40, 50] # Calcula la media de los números usando un bucle for. -print("\nEjercicio 2:") +print("\nEjercicio 2: Calcular la media de na lista") + +numeros: int = [10, 20, 30, 40, 50] +suma: int = 0 + +for num in numeros: + suma += num + +# / da el número con decimales +# // da el número entero. +media: int = suma // numeros.__len__() +print(f"La media de la lista es: {media}") + # Ejercicio 3: Buscar el máximo de una lista # Dada la siguiente lista de números: # numeros = [15, 5, 25, 10, 20] # Encuentra el número máximo en la lista usando un bucle for. -print("\nEjercicio 3:") +print("\nEjercicio 3: Buscar el máximo de una lista") + +numeros = [15, 5, 25, 10, 20] + +numero_maximo = numeros[0] # Iniciando con el primer número de la lista + +for num in numeros: + if num > numero_maximo: + numero_maximo = num # Actualizando el número máximo + +print(f"El número máximo de la lista es: {numero_maximo}") # Ejercicio 4: Filtrar cadenas por longitud # Dada la siguiente lista de palabras: # palabras = ["casa", "arbol", "sol", "elefante", "luna"] # Crea una nueva lista que contenga solo las palabras con más de 5 letras # usando un bucle for y list comprehension. -print("\nEjercicio 4:") + +print("\nEjercicio 4: Filtrar cadenas por longitud") + +palabras = ["casa", "arbol", "sol", "elefante", "luna"] +palabras_largas = [palabra for palabra in palabras if len(palabra) > 5] +print(palabras_largas) # Ejercicio 5: Contar palabras que empiezan con una letra # Dada la siguiente lista de palabras: # palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] # Pide al usuario que introduzca una letra. # Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). -print("\nEjercicio 5:") \ No newline at end of file +print("\nEjercicio 5: Contar palabras que empiezan con una letra") + +palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] + +# Convirtiendo la letra a minúscula +letra = input("Introduce una letra: ").lower() + +contador = 0 + +for palabra in palabras: + if palabra.lower().startswith(letra): + contador += 1 + +print(f"Hay {contador} palabras que empiezan con la letra {letra}") diff --git a/03_loops/02_loop_for_solutions.py b/03_loops/02_loop_for_solutions.py index 54903f0..4a506d6 100644 --- a/03_loops/02_loop_for_solutions.py +++ b/03_loops/02_loop_for_solutions.py @@ -6,7 +6,7 @@ # Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. print("\nEjercicio 1:") for numero in range(2, 21, 2): # range(inicio, fin, paso) - print(numero) + print(numero) # Ejercicio 2: Calcular la media de una lista # Dada la siguiente lista de números: @@ -16,7 +16,7 @@ numeros = [10, 20, 30, 40, 50] suma = 0 for numero in numeros: - suma += numero + suma += numero media = suma / len(numeros) print(f"La media es: {media}") @@ -28,8 +28,8 @@ numeros = [15, 5, 25, 10, 20] maximo = numeros[0] # Inicializamos con el primer elemento for numero in numeros: - if numero > maximo: - maximo = numero + if numero > maximo: + maximo = numero print(f"El número máximo es: {maximo}") # Ejercicio 4: Filtrar cadenas por longitud @@ -47,11 +47,16 @@ # palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] # Pide al usuario que introduzca una letra. # Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). -print("\nEjercicio 5:") + +print("\nEjercicio 5: Contar palabras que empiezan con una letra") + palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] + letra = input("Introduce una letra: ").lower() # Convertimos la letra a minúscula + contador = 0 + for palabra in palabras: - if palabra.lower().startswith(letra): # Comparamos en minúsculas - contador += 1 -print(f"Hay {contador} palabras que empiezan con la letra {letra}") \ No newline at end of file + if palabra.lower().startswith(letra): # Comparamos en minúsculas + contador += 1 +print(f"Hay {contador} palabras que empiezan con la letra {letra}") diff --git a/03_loops/03_range.py b/03_loops/03_range.py index fcc6490..6c51a75 100644 --- a/03_loops/03_range.py +++ b/03_loops/03_range.py @@ -7,24 +7,24 @@ # Generado una secuencia de números del 0 al 9 for num in range(10): - print(num) + print(num) # range(inicio, fin) for num in range(5, 10): - print(num) + print(num) # range(inicio, fin, paso) for num in range(0, 1000, 5): - print(num) + print(num) for num in range(-5, 0): - print(num) + print(num) for num in range(10, 0, -1): - print(num) + print(num) for num in range(0, 444): - print(num) + print(num) nums = range(10) list_of_nums = list(nums) @@ -32,7 +32,7 @@ # seria para hacerlo cinco veces for _ in range(5): - print("hacer cinco veces algo") + print("hacer cinco veces algo") ### # EJERCICIOS (range) @@ -40,25 +40,49 @@ # Ejercicio 1: Imprimir números del 1 al 10 # Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). -print("\nEjercicio 1:") +print("\nEjercicio 1: Imprimir números del 1 al 10") + +for num in range(1, 11): + print(num) # Ejercicio 2: Imprimir números impares del 1 al 20 # Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). -print("\nEjercicio 2:") +print("\nEjercicio 2: Imprimir números impares del 1 al 20") + +for num in range(1, 21, 2): + print(num) # Ejercicio 3: Imprimir múltiplos de 5 # Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). -print("\nEjercicio 3:") +print("\nEjercicio 3: Imprimir múltiplos de 5") + +for num in range(5, 51, 5): + print(num) # Ejercicio 4: Imprimir números en orden inverso # Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). -print("\nEjercicio 4:") +print("\nEjercicio 4: Imprimir números en orden inverso") + +for num in range(10, 0, -1): + print(num) # Ejercicio 5: Suma de números en un rango # Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). -print("\nEjercicio 5:") +print("\nEjercicio 5: Suma de números en un rango") + +suma = 5 + +for num in range(1, 101): + suma += num + +print(f"La suma es: {suma}") # Ejercicio 6: Tabla de multiplicar # Pide al usuario que introduzca un número. # Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle for y range(). -print("\nEjercicio 6:") \ No newline at end of file +print("\nEjercicio 6: Tabla de multiplicar") + +numero = int(input("Introduce un número para la tabla de multiplicar: ")) + +for i in range(1, 11): + print(f"{numero} x {i} = {numero * i}") diff --git a/03_loops/03_range_solutions.py b/03_loops/03_range_solutions.py index e88d560..09a0994 100644 --- a/03_loops/03_range_solutions.py +++ b/03_loops/03_range_solutions.py @@ -6,32 +6,32 @@ # Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). print("\nEjercicio 1:") for i in range(1, 11): # Recuerda que range no incluye el límite superior - print(i) + print(i) # Ejercicio 2: Imprimir números impares del 1 al 20 # Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). print("\nEjercicio 2:") for i in range(1, 21, 2): # El paso 2 asegura que solo se generen impares - print(i) + print(i) # Ejercicio 3: Imprimir múltiplos de 5 # Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). print("\nEjercicio 3:") for i in range(5, 51, 5): # El paso 5 genera los múltiplos de 5 - print(i) + print(i) # Ejercicio 4: Imprimir números en orden inverso # Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). print("\nEjercicio 4:") for i in range(10, 0, -1): # Paso negativo para orden inverso - print(i) + print(i) # Ejercicio 5: Suma de números en un rango # Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). print("\nEjercicio 5:") suma = 0 for i in range(1, 101): - suma += i + suma += i print(f"La suma de los números del 1 al 100 es: {suma}") # Ejercicio 6: Tabla de multiplicar @@ -40,4 +40,4 @@ print("\nEjercicio 6:") numero = int(input("Introduce un número para la tabla de multiplicar: ")) for i in range(1, 11): - print(f"{numero} x {i} = {numero * i}") \ No newline at end of file + print(f"{numero} x {i} = {numero * i}") diff --git a/03_loops/04_functions.py b/03_loops/04_functions.py index dcd21cd..2a0ecb9 100644 --- a/03_loops/04_functions.py +++ b/03_loops/04_functions.py @@ -46,9 +46,11 @@ # print(multiplicar(2)) # print(multiplicar(2, 3)) + # Argumentos por posición def describir_persona(nombre: str, edad: int, sexo: str): - print(f"Soy {nombre}, tengo {edad} años y me identifico como {sexo}") + print(f"Soy {nombre}, tengo {edad} años y me identifico como {sexo}") + # parámetros son posicionales describir_persona(1, 25, "gato") @@ -58,23 +60,27 @@ def describir_persona(nombre: str, edad: int, sexo: str): # Argumentos por clave # parámetros nombrados describir_persona(sexo="gato", nombre="midudev", edad=25) -describir_persona(sexo="hombre", nombre="madeval", edad=21) +describir_persona(sexo="hombre", nombre="madeval", edad=21) + # Argumentos de longitud de variable (*args): def sumar_numeros(*args): - suma = 0 - for numero in args: - suma += numero - return suma + suma = 0 + for numero in args: + suma += numero + return suma + print(sumar_numeros(1, 2, 3, 4, 5)) print(sumar_numeros(1, 2)) -print(sumar_numeros(1, 2,3 ,4, 5, 6, 7, 8, 9, 10)) +print(sumar_numeros(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) + # Argumentos de clave-valor variable (**kwargs): def mostrar_informacion_de(**kwargs): - for clave, valor in kwargs.items(): - print(f"{clave}: {valor}") + for clave, valor in kwargs.items(): + print(f"{clave}: {valor}") + mostrar_informacion_de(nombre="midudev", edad=25, sexo="gato") print("\n") @@ -84,8 +90,8 @@ def mostrar_informacion_de(**kwargs): print("\n") mostrar_informacion_de(super_name="felixicaza", es_modo=True, gatos=40) -# Ejercicios +# Ejercicios # Volver a los ejercicios anteriores # y convertirlos en funciones # e intentar utilizar todos los casos y conceptos -# que hemos visto hasta ahora \ No newline at end of file +# que hemos visto hasta ahora diff --git a/04_logic/01_challenge_fantastic_four.py b/04_logic/01_challenge_fantastic_four.py index 77adbfc..ae6277d 100644 --- a/04_logic/01_challenge_fantastic_four.py +++ b/04_logic/01_challenge_fantastic_four.py @@ -17,23 +17,25 @@ text = "RRRRJJJjjjrrr" + def check_is_balanced(text): - text = text.upper() + text = text.upper() + + # contar facilmente el número de veces que aparece una letra + count_r = text.count("R") # Reed Richards + count_j = text.count("J") # Johnny Storm - # contar facilmente el número de veces que aparece una letra - count_r = text.count("R") # Reed Richards - count_j = text.count("J") # Johnny Storm + print(f"count_r: {count_r} count_j: {count_j}") - print(f"count_r: {count_r} count_j: {count_j}") + # if count_r == count_j: + # return True + # else: + # return False - # if count_r == count_j: - # return True - # else: - # return False + return count_r == count_j - return count_r == count_j print(check_is_balanced("RRJJ")) print(check_is_balanced("RRRRJJ")) print(check_is_balanced("RRJJJJJJ")) -print(check_is_balanced("awwwaqAQAQA")) \ No newline at end of file +print(check_is_balanced("awwwaqAQAQA")) diff --git a/04_logic/04_dictionaries.py b/04_logic/04_dictionaries.py index b643149..fd92235 100644 --- a/04_logic/04_dictionaries.py +++ b/04_logic/04_dictionaries.py @@ -6,15 +6,11 @@ # ejemplo tipico de diccionario persona = { - "nombre": "midudev", - "edad": 25, - "es_estudiante": True, - "calificaciones": [7, 8, 9], - "socials": { - "twitter": "@midudev", - "instagram": "@midudev", - "facebook": "midudev" - } + "nombre": "midudev", + "edad": 25, + "es_estudiante": True, + "calificaciones": [7, 8, 9], + "socials": {"twitter": "@midudev", "instagram": "@midudev", "facebook": "midudev"}, } # para acceder a los valores @@ -30,22 +26,22 @@ del persona["edad"] # print(persona) -es_estudiante = persona.pop("es_estudiante") +es_estudiante = persona.pop("es_estudiante") print(f"es_estudiante: {es_estudiante}") print(persona) # sobreescribir un diccionario con otro diccionario -a = { "name": "miduev", "age": 25 } -b = { "name": "madeval", "es_estudiante": True } +a = {"name": "miduev", "age": 25} +b = {"name": "madeval", "es_estudiante": True} a.update(b) print(a) # comprobar si existe una propiedad -print("name" in persona) # False -print("nombre" in persona) # True +print("name" in persona) # False +print("nombre" in persona) # True -# obtener todas las claves +# obtener todas las claves print("\nkeys:") print(persona.keys()) @@ -58,4 +54,4 @@ print(persona.items()) for key, value in persona.items(): - print(f"{key}: {value}") \ No newline at end of file + print(f"{key}: {value}") From e7abf3927776768e82cdce806fa0f6e5b692773c Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 18 Feb 2025 17:28:21 -0500 Subject: [PATCH 004/187] add new settings on editor --- .vscode/settings.json | 49 ++++++++++++++++------------------------ 01_basic/01_print.py | 12 +++++----- 01_basic/04_variables.py | 2 +- 01_basic/05_input.py | 8 +++---- 4 files changed, 30 insertions(+), 41 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 255a496..261be37 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,19 +1,19 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "JetBrains Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro", + "workbench.colorTheme": "Cursor like theme", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro", - "workbench.preferredLightColorTheme": "One Dark Pro", + "workbench.preferredDarkColorTheme": "Cursor like theme", + "workbench.preferredLightColorTheme": "Cursor like theme", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 15, + "terminal.integrated.fontSize": 18, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -165,12 +165,12 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14.11, + "editor.fontSize": 14.20, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 55, - "window.zoomLevel": 1.89, - "terminal.integrated.fontFamily": "Cascadia code", + "window.zoomLevel": 1, + "terminal.integrated.fontFamily": "Iosevka Nerd Font Mono", "editor.wordWrap": "on", "editor.fontLigatures": true, "editor.formatOnPaste": true, @@ -196,7 +196,7 @@ "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, "editor.fastScrollSensitivity": 10, - "editor.cursorStyle": "line", + "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -207,12 +207,12 @@ "editor.snippetSuggestions": "top", "window.nativeFullScreen": true, "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro", - "workbench.preferredHighContrastColorTheme": "One Dark Pro", + "workbench.preferredHighContrastLightColorTheme": "Cursor like theme", + "workbench.preferredHighContrastColorTheme": "Cursor like theme", "workbench.activityBar.location": "default", - "workbench.iconTheme": "symbols", + "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", - "breadcrumbs.enabled": true, + "breadcrumbs.enabled": false, "breadcrumbs.icons": true, "breadcrumbs.showArrays": false, "breadcrumbs.showBooleans": false, @@ -269,18 +269,8 @@ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "editor.semanticTokenColorCustomizations": { - "[One Dark Pro]": { - "enabled": true, - "rules": { - "*.declaration": { - "bold": true, - } - } - } - }, - "terminal.integrated.defaultProfile.windows": "Git Bash", - "apc.font.family": "Cascadia Code", + "editor.fontWeight": "bold", + "terminal.integrated.defaultProfile.windows": "PowerShell", "git.blame.editorDecoration.enabled": true, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" @@ -288,9 +278,8 @@ "rapidapi.terminalLink.enabled": false, "chat.commandCenter.enabled": false, "editor.scrollbar.vertical": "hidden", - "editor.lineHeight": 23, "editor.linkedEditing": true, - "oneDarkPro.bold": true, - "oneDarkPro.italic": true, - "oneDarkPro.vivid": true + "editor.lineHeight": 19, + "editor.suggest.insertMode": "replace", + "tabnine.experimentalAutoImports": true, } diff --git a/01_basic/01_print.py b/01_basic/01_print.py index 78a8e83..a0a6ef1 100644 --- a/01_basic/01_print.py +++ b/01_basic/01_print.py @@ -9,17 +9,17 @@ print("¡Hola, Twitch!") # También puedes usar comillas simples para imprimir texto -print('Esto también funciona con una comilla') +print("Esto también funciona con una comilla") # Puedes imprimir múltiples elementos separados por un espacio print("Python", "es", "genial") # El parámetro 'sep' permite definir cómo se separan los elementos impresos -print("Python", "es", "brutal", sep = "-") +print("Python", "es", "brutal", sep="-") # El parámetro 'end' define lo que se imprime al final de la línea -print("Esto se imprime", end = "\n") # Aquí, el 'end' tiene un salto de línea explícito -print("en una línea") # Esto se imprime en la línea siguiente +print("Esto se imprime", end="\n") # Aquí, el 'end' tiene un salto de línea explícito +print("en una línea") # Esto se imprime en la línea siguiente # También se pueden imprimir números directamente print(42) @@ -32,7 +32,7 @@ print('Esto es una "pulgada" dentro de un string con comillas simples') # ✅ Solución 2: Usar el carácter de escape \ para incluir comillas dobles dentro de un string con comillas dobles -print("Esto es una \"pulgada\" dentro de un string con comillas dobles") +print('Esto es una "pulgada" dentro de un string con comillas dobles') # ✅ Solución 3: Usar triple comillas para definir el string -print("""Esto es una "pulgada" dentro de un string con triple comillas""") \ No newline at end of file +print("""Esto es una "pulgada" dentro de un string con triple comillas""") diff --git a/01_basic/04_variables.py b/01_basic/04_variables.py index 706a562..1724a6b 100644 --- a/01_basic/04_variables.py +++ b/01_basic/04_variables.py @@ -44,7 +44,7 @@ mi_nombre_de_variable_123 = "ok" -MI_CONSTANTE = 3.14 # UPPER_CASE -> constantes +MI_CONSTANTE: int = 3.14 # UPPER_CASE -> constantes # Nombres NO válidos de variables (esto generaría errores) # 123123_variable = "ko" # ❌ No puede comenzar con un número diff --git a/01_basic/05_input.py b/01_basic/05_input.py index 8db2067..e1f9098 100644 --- a/01_basic/05_input.py +++ b/01_basic/05_input.py @@ -6,13 +6,13 @@ # Para obtener datos del usuario se usa la función input() # La función input() recibe un mensaje que se muestra al usuario # y devuelve el valor introducido por el usuario -nombre = input("Hola, ¿cómo te llamas?\n") +nombre: str = input("Hola, ¿cómo te llamas?\n") print(f"Hola {nombre}, encantado de conocerte") # Ten en cuenta que la función input() devuelve un string # Así que si queremos obtener un número se debe convertir el string a un número -age = input("¿Cuántos años tienes?\n") -age = int(age) +age: int = input("¿Cuántos años tienes?\n") +age: int = int(age) print(f"Tienes {age} años") # La función input() también puede devolver múltiples valores @@ -20,4 +20,4 @@ print("Obtener múltiples valores a la vez") country, city = input("¿En qué país y ciudad vives?\n").split() -print(f"Vives en {country}, {city}") \ No newline at end of file +print(f"Vives en {country}, {city}") From 2ef589738fed5fe9a18294a918b8e96719221829 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 22 Feb 2025 16:40:56 -0500 Subject: [PATCH 005/187] change settings on editor --- .vscode/settings.json | 69 ++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 261be37..4f462ae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrains Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Cursor like theme", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Cursor like theme", - "workbench.preferredLightColorTheme": "Cursor like theme", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -28,7 +28,7 @@ "editor.tabSize": 2, "editor.unicodeHighlight.invisibleCharacters": false, "editor.stickyScroll.enabled": true, - "terminal.integrated.stickyScroll.enabled": true, + "terminal.integrated.stickyScroll.enabled": false, "workbench.tree.enableStickyScroll": true, "editor.hover.sticky": true, "editor.codeActionsOnSave": { @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 18, + "terminal.integrated.fontSize": 14, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -165,20 +165,19 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14.20, + "editor.fontSize": 15.15, "files.autoSave": "afterDelay", - "editor.minimap.enabled": false, - "editor.minimap.maxColumn": 55, - "window.zoomLevel": 1, - "terminal.integrated.fontFamily": "Iosevka Nerd Font Mono", - "editor.wordWrap": "on", + "editor.minimap.enabled": true, + "editor.minimap.maxColumn": 45, + "window.zoomLevel": 1.30, + "terminal.integrated.fontFamily": "JetBrains Mono", + "editor.wordWrap": "bounded", "editor.fontLigatures": true, "editor.formatOnPaste": true, "editor.formatOnSave": true, "prettier.useTabs": false, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.hover.enabled": true, - "eplorer.fileNesting.enabled": true, "[python]": { "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, @@ -192,11 +191,10 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "redhat.telemetry.enabled": false, "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, "editor.fastScrollSensitivity": 10, - "editor.cursorStyle": "block", + "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -205,14 +203,13 @@ }, "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", - "window.nativeFullScreen": true, "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "Cursor like theme", - "workbench.preferredHighContrastColorTheme": "Cursor like theme", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", - "breadcrumbs.enabled": false, + "breadcrumbs.enabled": true, "breadcrumbs.icons": true, "breadcrumbs.showArrays": false, "breadcrumbs.showBooleans": false, @@ -223,15 +220,12 @@ "workbench.editor.enablePreview": false, "workbench.editor.labelFormat": "short", "window.density.editorTabHeight": "default", - "window.systemColorTheme": "dark", - "window.menuBarVisibility": "compact", "editor.formatOnType": true, "editor.inlayHints.enabled": "off", "typescript.tsserver.maxTsServerMemory": 4096, "typescript.tsserver.log": "off", "typescript.suggestionActions.enabled": false, "javascript.suggestionActions.enabled": false, - "files.maxMemoryForLargeFilesMB": 4096, "workbench.tips.enabled": false, "window.commandCenter": true, //APC CUSTOMIZE UI @@ -241,9 +235,6 @@ "zenMode.hideLineNumbers": false, "zenMode.hideStatusBar": false, "zenMode.fullScreen": true, - "security.workspace.trust.untrustedFiles": "open", - "update.mode": "manual", - "java.compile.nullAnalysis.mode": "disabled", "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", @@ -251,35 +242,39 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "window.enableHardwareAcceleration": false, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "other": true, }, - "CodeGPT.apiKey": "CodeGPT Plus Beta", "editor.parameterHints.enabled": false, "editor.glyphMargin": true, "editor.showFoldingControls": "mouseover", "editor.matchBrackets": "never", - "animations.Active": "Indent", "template-string-converter.enabled": true, - "telemetry.telemetryLevel": "off", - "animations.Enabled": true, "vscode_custom_css.imports": [ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "editor.fontWeight": "bold", - "terminal.integrated.defaultProfile.windows": "PowerShell", - "git.blame.editorDecoration.enabled": true, + "terminal.integrated.defaultProfile.windows": "Git Bash", + "git.blame.editorDecoration.enabled": false, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, - "rapidapi.terminalLink.enabled": false, "chat.commandCenter.enabled": false, - "editor.scrollbar.vertical": "hidden", + "editor.scrollbar.vertical": "auto", + "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": true, - "editor.lineHeight": 19, "editor.suggest.insertMode": "replace", - "tabnine.experimentalAutoImports": true, + "oneDarkPro.italic": true, + "oneDarkPro.vivid": true, + "editor.suggestLineHeight": 20, + "editor.detectIndentation": false, + "workbench.editor.showTabs": "single", + "editor.colorDecorators": false, + "editor.renderLineHighlight": "none", + "chat.editor.wordWrap": "on", + "editor.accessibilitySupport": "off", + "terminal.integrated.smoothScrolling": true, + "errorLens.enabled": true, + "editor.lineHeight": 21, } From 426bb4b97357d7742e4d1e4b5d086f458aef3670 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 23 Feb 2025 07:07:13 -0500 Subject: [PATCH 006/187] add new settings on the editor --- .vscode/settings.json | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4f462ae..73e2fa7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "JetBrains Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Halcyon", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Halcyon", + "workbench.preferredLightColorTheme": "Halcyon", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -165,7 +165,7 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 15.15, + "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": true, "editor.minimap.maxColumn": 45, @@ -204,8 +204,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Halcyon", + "workbench.preferredHighContrastColorTheme": "Halcyon", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -265,8 +265,6 @@ "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": true, "editor.suggest.insertMode": "replace", - "oneDarkPro.italic": true, - "oneDarkPro.vivid": true, "editor.suggestLineHeight": 20, "editor.detectIndentation": false, "workbench.editor.showTabs": "single", @@ -276,5 +274,6 @@ "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, - "editor.lineHeight": 21, + "editor.lineHeight": 24, + "editor.fontWeight": "700" } From 0f835b984c6135b76307f3cc51509ecb8c5b5146 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 23 Feb 2025 08:21:31 -0500 Subject: [PATCH 007/187] deleting editor line height on the editor. --- .vscode/settings.json | 1 - 05_regex/01_re.py | 26 +++++++++++++++----------- test.py | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 73e2fa7..1cb4418 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -274,6 +274,5 @@ "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, - "editor.lineHeight": 24, "editor.fontWeight": "700" } diff --git a/05_regex/01_re.py b/05_regex/01_re.py index 48d6305..a0d3fcf 100644 --- a/05_regex/01_re.py +++ b/05_regex/01_re.py @@ -1,6 +1,6 @@ ## # 01 - Expresiones regulares -# +# """ Las expresiones regulares son una secuencia de caracteres que forman un patrón de búsqueda. Se utilizan para la búsqueda de cadenas de texto, validación de datos, etc. """ @@ -17,6 +17,7 @@ # 1. Importar el módulo de expresiones regulares "re" import re + # 2. Crear un patrón, que es una cadena de texto que describe lo que queremos encontrar pattern = "Hola" # 3. El texto donde queremos buscar @@ -25,9 +26,9 @@ result = re.search(pattern, text) if result: - print("He encontrado el patrón en el texto") + print("He encontrado el patrón en el texto") else: - print("No he encontrado el patrón en el texto") + print("No he encontrado el patrón en el texto") # .group() devuelve la cadena que coincide con el pattern print(result.group()) @@ -35,7 +36,7 @@ # .start() devolver la posición inicial de la coincidencia print(result.start()) -# .end() devolver la posición final de la coincidencia +# .end() devolver la posición final de la coincidencia print(result.end()) # EJERCICIO 01 @@ -46,9 +47,11 @@ found_ia = re.search(pattern, text) if found_ia: - print(f"He encontrado el patrón en el texto en la posición {found_ia.start()} y termina en la posición {found_ia.end()}") + print( + f"He encontrado el patrón en el texto en la posición {found_ia.start()} y termina en la posición {found_ia.end()}" + ) else: - print("No he encontrado el patrón en el texto") + print("No he encontrado el patrón en el texto") # ----------------------- @@ -64,7 +67,7 @@ # ------------------------- -# iter() devuelve un iterador que contiene todos los resultados de la búsqueda +# iter() devuelve un iterador que contiene todos los resultados de la búsqueda text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" pattern = "Python" @@ -72,7 +75,7 @@ matches = re.finditer(pattern, text) for match in matches: - print(match.group(), match.start(), match.end()) + print(match.group(), match.start(), match.end()) # EJERCICIO 02 # Encuentra todas las ocurrencias de la palabra "midu" en el siguiente texto e indica en que posición empieza y termina cada coincidencia y cuantas veces se encontró. @@ -82,13 +85,14 @@ # Los modificadores son opciones que se pueden agregar a un patrón para cambiar su comportamiento -# re.IGNORECASE: Ignora las mayúsculas y minúsculas +# re.IGNORECASE: Ignora las mayúsculas y minúsculas text = "Todo el mundo dice que la IA nos va a quitar el trabajo. Pero la ia no es tan mala. ¡Viva la Ia!" pattern = "IA" found = re.findall(pattern, text, re.IGNORECASE) -if found: print(found) +if found: + print(found) # EJERCICIO 03 # Encuentra todas las ocurrencias de la palabra "python" en el siguiente texto, sin distinguir entre mayúsculas y minúsculas. @@ -103,4 +107,4 @@ replacement = "Adiós" new_text = re.sub(pattern, replacement, text, flags=re.IGNORECASE) -print(new_text) \ No newline at end of file +print(new_text) diff --git a/test.py b/test.py index b85aae6..c1e73ee 100644 --- a/test.py +++ b/test.py @@ -43,4 +43,4 @@ def inspeccionar_recinto(recinto_numero): if dinosaurio[2] == recinto_numero: # Comprueba si el recinto (índice 2) coincide con el recinto_numero dado print(f"- Nombre: {dinosaurio[0]}, Estado: {dinosaurio[3]}") -inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 \ No newline at end of file +inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 From 3fcdda153375702dbac770bb92db1d9c055bcc01 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 24 Feb 2025 11:27:30 -0500 Subject: [PATCH 008/187] add new settings on the vscode --- .vscode/settings.json | 16 ++++++++-------- 05_regex/03_quantifiers.py | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1cb4418..169ba9e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Halcyon", + "workbench.colorTheme": "Moonbloom Official Theme", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Halcyon", - "workbench.preferredLightColorTheme": "Halcyon", + "workbench.preferredDarkColorTheme": "Moonbloom Official Theme", + "workbench.preferredLightColorTheme": "Moonbloom Official Theme", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 14, + "terminal.integrated.fontSize": 15, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -165,7 +165,7 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, + "editor.fontSize": 15.40, "files.autoSave": "afterDelay", "editor.minimap.enabled": true, "editor.minimap.maxColumn": 45, @@ -204,8 +204,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "Halcyon", - "workbench.preferredHighContrastColorTheme": "Halcyon", + "workbench.preferredHighContrastLightColorTheme": "Moonbloom Official Theme", + "workbench.preferredHighContrastColorTheme": "Moonbloom Official Theme", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -274,5 +274,5 @@ "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, - "editor.fontWeight": "700" + "editor.fontWeight": "700", } diff --git a/05_regex/03_quantifiers.py b/05_regex/03_quantifiers.py index ccfdc3d..cf8748a 100644 --- a/05_regex/03_quantifiers.py +++ b/05_regex/03_quantifiers.py @@ -11,8 +11,8 @@ matches = re.findall(pattern, text) print(matches) -# Ejercicio 1: -# ¿Cuantas palabras tienen de 0 a más "a" y después una b? +# Ejercicio 1: +# ¿Cuantas palabras tienen de 0 a más "a" y después una b? # +: Una a más veces text = "dddd aaa ccc a bb aa casa" @@ -49,9 +49,9 @@ matches = re.findall(pattern, words) print(matches) -# Ejercicio +# Ejercicio # Encuentra las palabras de más de 6 letras words = "ala fantastico casa árbol león cinco murcielago" pattern = r"\b\w{6,}\b" matches = re.findall(pattern, words) -print(matches) \ No newline at end of file +print(matches) From 3069529c8e35200e2e6899deb6297d8b0d7750b9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 24 Feb 2025 11:28:38 -0500 Subject: [PATCH 009/187] formatting code --- test.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/test.py b/test.py index c1e73ee..82df0d2 100644 --- a/test.py +++ b/test.py @@ -16,31 +16,43 @@ # 1. Contar el número total de dinosaurios total_dinosaurios = 0 for dinosaurio in inventario_dinosaurios: - total_dinosaurios += 1 # Incrementa el contador por cada dinosaurio en la lista + total_dinosaurios += 1 # Incrementa el contador por cada dinosaurio en la lista print(f"\nNúmero total de dinosaurios en el parque: {total_dinosaurios}") # 2. Identificar y listar los nombres de todos los Velociraptors velociraptors_list = [] for dinosaurio in inventario_dinosaurios: - if dinosaurio[1] == "Velociraptor": # Comprueba si la especie (índice 1) es "Velociraptor" - velociraptors_list.append(dinosaurio[0]) # Añade el nombre (índice 0) a la lista + if ( + dinosaurio[1] == "Velociraptor" + ): # Comprueba si la especie (índice 1) es "Velociraptor" + velociraptors_list.append( + dinosaurio[0] + ) # Añade el nombre (índice 0) a la lista print(f"\n--- Listado de Velociraptors ---") print(f"Velociraptors encontrados: {velociraptors_list}") # 3. Determinar cuántos dinosaurios necesitan atención médica dinosaurios_necesitan_atencion = 0 for dinosaurio in inventario_dinosaurios: - if dinosaurio[3] == "Necesita Atención": # Comprueba si el estado de salud (índice 3) es "Necesita Atención" - dinosaurios_necesitan_atencion += 1 # Incrementa el contador + if ( + dinosaurio[3] == "Necesita Atención" + ): # Comprueba si el estado de salud (índice 3) es "Necesita Atención" + dinosaurios_necesitan_atencion += 1 # Incrementa el contador print(f"\n--- Dinosaurios que necesitan atención médica ---") -print(f"Número de dinosaurios que necesitan atención médica: {dinosaurios_necesitan_atencion}") +print( + f"Número de dinosaurios que necesitan atención médica: {dinosaurios_necesitan_atencion}" +) + # 4. Simular una "inspección de recinto" para el Recinto 2 def inspeccionar_recinto(recinto_numero): print(f"\n--- Inspección del Recinto {recinto_numero} ---") print(f"Dinosaurios en el Recinto {recinto_numero}:") for dinosaurio in inventario_dinosaurios: - if dinosaurio[2] == recinto_numero: # Comprueba si el recinto (índice 2) coincide con el recinto_numero dado + if ( + dinosaurio[2] == recinto_numero + ): # Comprueba si el recinto (índice 2) coincide con el recinto_numero dado print(f"- Nombre: {dinosaurio[0]}, Estado: {dinosaurio[3]}") -inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 + +inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 From cd1066105e90defa0be944399c721b213419166f Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 24 Feb 2025 14:56:55 -0500 Subject: [PATCH 010/187] add new theme on the editor. --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 169ba9e..908f0cc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Moonbloom Official Theme", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Moonbloom Official Theme", - "workbench.preferredLightColorTheme": "Moonbloom Official Theme", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -204,8 +204,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "Moonbloom Official Theme", - "workbench.preferredHighContrastColorTheme": "Moonbloom Official Theme", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", From 30c5411c5bc7ce5618bf31607c3e95886fea869b Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 24 Feb 2025 14:59:20 -0500 Subject: [PATCH 011/187] add metachars --- 05_regex/02_metachars.py | 59 +++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/05_regex/02_metachars.py b/05_regex/02_metachars.py index 3304172..5dd4f7b 100644 --- a/05_regex/02_metachars.py +++ b/05_regex/02_metachars.py @@ -9,14 +9,14 @@ # Coincidir con cualquier caracter excepto una nueva linea text = "Hola mundo, H0la de nuevo, H$la otra vez" -pattern = "H.la" # Hola, H0la, H$la +pattern = "H.la" # Hola, H0la, H$la found = re.findall(pattern, text) -if (found): - print(found) +if found: + print(found) else: - print("No se ha encontrado el patrón") + print("No se ha encontrado el patrón") text = "casa caasa cosa cisa cesa causa" @@ -28,14 +28,14 @@ # -------------------- text = "Hola mundo, H0la de nuevo, H$la otra vez" -pattern = r"H.la" # Hola, H0la, H$la +pattern = r"H.la" # Hola, H0la, H$la found = re.findall(pattern, text) -if (found): - print(found) +if found: + print(found) else: - print("No se ha encontrado el patrón") + print("No se ha encontrado el patrón") # Cómo usar la barra invertida para anular el significado especial de un símbolo @@ -49,7 +49,7 @@ # \d: coincide con cualquier dígito (0-9) text = "El número de teléfono es 123456789" -found = re.findall(r'\d{9}', text) +found = re.findall(r"\d{9}", text) print(found) @@ -58,7 +58,8 @@ text = "Mi número de teléfono es +34 688999999 apúntalo vale?" pattern = r"\+34 \d{9}" found = re.search(pattern, text) -if found: print(f"Encontré el número de teléfono {found.group()}") +if found: + print(f"Encontré el número de teléfono {found.group()}") # \w: Coincide con cualquier caracter alfanumerico (a-z, A-Z, 0-9, _) @@ -67,28 +68,32 @@ found = re.findall(pattern, text) print(found) -# \s: Coincide con cualqueir espacio en blanco (espacio, tabulación, salto de línea) +# \s: Coincide con cualqueir espacio en blanco (espacio, tabulación, salto de línea) text = "Hola mundo\n¿Cómo estás?\t" pattern = r"\s" matches = re.findall(pattern, text) print(matches) # ^: Coincide con el principio de una cadena -username = "423_name%22" -pattern = r"^\w" # validar nombre de usuario +username = "423_name%22" +pattern = r"^\w" # validar nombre de usuario valid = re.search(pattern, username) -if valid: print("El nombre de usuario es válido") -else: print("El nombre de usuario no es válido") +if valid: + print("El nombre de usuario es válido") +else: + print("El nombre de usuario no es válido") phone = "+34 688999999" pattern = r"^\+\d{1,3} " valid = re.search(pattern, phone) -if valid: print("El número de teléfono es válido") -else: print("El número de teléfono no es válido") +if valid: + print("El número de teléfono es válido") +else: + print("El número de teléfono no es válido") # $: Coincide con el final de una cadena text = "Hola mundo." @@ -96,23 +101,27 @@ valid = re.search(pattern, text) -if valid: print("La cadena es válida") -else: print("La cadena no es válida") +if valid: + print("La cadena es válida") +else: + print("La cadena no es válida") # EJERCICIO -# Valida que un correo sea de gmail +# Valida que un correo sea de gmail text = "miduga@hotmail.com" pattern = r"@gmail.com$" valid = re.search(pattern, text) -if valid: print("El correo es gmail válido") -else: print("El correo no es válido") +if valid: + print("El correo es gmail válido") +else: + print("El correo no es válido") # EJERCICIO: -# Tenemos una lista de archivos, necesitamos saber los nombres de los ficheros con extension .txt +# Tenemos una lista de archivos, necesitamos saber los nombres de los ficheros con extension .txt files = "file1.txt file2.pdf midu-of.webp secret.txt" -# \b: Coincide con el principio o final de una palabra +# \b: Coincide con el principio o final de una palabra text = "casa casada cosa cosas casado casa" pattern = r"\bc.sa\b" @@ -124,4 +133,4 @@ pattern = r"palta|aguacate|p..a|\b\w{7}\b" matches = re.findall(pattern, fruits) -print(matches) \ No newline at end of file +print(matches) From 65c7b523e532f86d0d0d56bb70c88ea1f926f62b Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 2 Mar 2025 14:03:15 -0500 Subject: [PATCH 012/187] change theme on editor --- .vscode/settings.json | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 908f0cc..7deb50c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrains Mono", + "editor.fontFamily": "cascadia code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -165,11 +165,11 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 15.40, + "editor.fontSize": 14, "files.autoSave": "afterDelay", - "editor.minimap.enabled": true, + "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.30, + "window.zoomLevel": 2, "terminal.integrated.fontFamily": "JetBrains Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -193,7 +193,6 @@ }, "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, - "editor.fastScrollSensitivity": 10, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { @@ -204,9 +203,9 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": false, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", - "workbench.activityBar.location": "default", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.activityBar.location": "bottom", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": true, @@ -229,12 +228,12 @@ "workbench.tips.enabled": false, "window.commandCenter": true, //APC CUSTOMIZE UI - "editor.codeLens": false, + "editor.codeLens": true, "zenMode.centerLayout": false, "zenMode.hideActivityBar": false, "zenMode.hideLineNumbers": false, "zenMode.hideStatusBar": false, - "zenMode.fullScreen": true, + "zenMode.fullScreen": false, "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", @@ -242,7 +241,7 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": true, + "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "other": true, }, @@ -260,19 +259,26 @@ "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, - "chat.commandCenter.enabled": false, + "chat.commandCenter.enabled": true, "editor.scrollbar.vertical": "auto", "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": true, "editor.suggest.insertMode": "replace", "editor.suggestLineHeight": 20, "editor.detectIndentation": false, - "workbench.editor.showTabs": "single", + "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, "editor.renderLineHighlight": "none", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, - "editor.fontWeight": "700", + "github.copilot.selectedCompletionModel": "gpt-4o-copilot", + "supermaven.enable": { + "*": true + }, + "oneDarkPro.vivid": true, + "oneDarkPro.italic": true, + "oneDarkPro.bold": true, + "editor.lineHeight": 21 } From 19e9cc5193d59a6fe70bf5a6059afc2e3777dfdd Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 2 Mar 2025 14:22:06 -0500 Subject: [PATCH 013/187] change theme on editor --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7deb50c..ec3aa3c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,7 +6,7 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Deep Blue", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, From cca87182b55f03a166c17bc4861fd5563b615d2d Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 3 Mar 2025 21:52:46 -0500 Subject: [PATCH 014/187] add new settings --- .vscode/settings.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ec3aa3c..2f24a91 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,7 +6,7 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Deep Blue", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, @@ -165,12 +165,12 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, + "editor.fontSize": 15, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, "window.zoomLevel": 2, - "terminal.integrated.fontFamily": "JetBrains Mono", + "terminal.integrated.fontFamily": "cascadia code", "editor.wordWrap": "bounded", "editor.fontLigatures": true, "editor.formatOnPaste": true, @@ -280,5 +280,4 @@ "oneDarkPro.vivid": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, - "editor.lineHeight": 21 } From 7ca755daae0da1b86f07b0b1defd0f3b25cebcc9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 3 Mar 2025 21:53:31 -0500 Subject: [PATCH 015/187] review file sets --- 05_regex/04_sets.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/05_regex/04_sets.py b/05_regex/04_sets.py index 25c2159..8c7cba6 100644 --- a/05_regex/04_sets.py +++ b/05_regex/04_sets.py @@ -7,9 +7,9 @@ match = re.search(pattern, username) if match: - print("El nombre de usuario es válido: ", match.group()) + print("El nombre de usuario es válido: ", match.group()) else: - print("El nombre de usuario no es válido") + print("El nombre de usuario no es válido") # Buscar todas las vocales de una palabra @@ -19,7 +19,7 @@ print(matches) # Una Regex para encontrar las palabras man, fan y ban -# pero ignora el resto +# pero ignora el resto text = "man ran fan ñan ban" pattern = r"[mfb]an" @@ -30,7 +30,7 @@ # Nos han complicado el asunto, porque ahora hay palabras que encajan pero no empiezan por esas letras. # Solo queremos las palabras man, fan y ban text = "omniman fanatico man bandana" -# \b +# \b text = "22" pattern = r"[4-9]" @@ -50,4 +50,4 @@ text = "Hola mundo" pattern = r"[^aeiou]" matches = re.findall(pattern, text) -print(matches) \ No newline at end of file +print(matches) From 62e6bbad15ced0a461aabf2bd6314f8dd7481053 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 6 Mar 2025 17:31:07 -0500 Subject: [PATCH 016/187] change on icon theme: symbols --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f24a91..e509a76 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -206,7 +206,7 @@ "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "bottom", - "workbench.iconTheme": "material-icon-theme", + "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": true, "breadcrumbs.icons": true, From 24f7c3a00e53c3ccf826285771e3a13b01e7c1e5 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 6 Mar 2025 18:12:46 -0500 Subject: [PATCH 017/187] working with dates on pythno --- 06_request_at_dates/01_dates.py | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 06_request_at_dates/01_dates.py diff --git a/06_request_at_dates/01_dates.py b/06_request_at_dates/01_dates.py new file mode 100644 index 0000000..8dad2b2 --- /dev/null +++ b/06_request_at_dates/01_dates.py @@ -0,0 +1,44 @@ +# Trabajando con fechas y horas en Python +from datetime import datetime, timedelta + +# 1. Obtener la fecha y hora actual +now = datetime.now() +print(f"Fecha y hora actual: {now}") + +# 2. Crear una fecha y hora específica +specific_date = datetime(2025, 2, 12, 15, 30, 0) +print(f"Fecha y hora específica: {specific_date}") + +# 3. Formatear fechas +# Método strftime() para formatear fechas +# pasarle el objeto datetime y el formato de especificado +import locale + +locale.setlocale(locale.LC_TIME, "es_ES.UTF-8") + +format_date = now.strftime("%A/%B/%Y %H:%M:%S") +print(f"Fecha formateada: {format_date}") + +# 4. Operciones con fechas: (sumar/restar dias, minutos, horas, meses) +yesterday = datetime.now() - timedelta(days=1) +print(f"Ayer: {yesterday}") + +tomorrow = datetime.now() + timedelta(days=1) +print(f"Mañana: {tomorrow}") + +one_hour_after = datetime.now() + timedelta(hours=1) +print(f"Una hora después: {one_hour_after}") + +# 5. Obtener componentes individuales de una fecha +year = now.year +print(f"Año: {year}") + +month = now.month +print(f"Mes: {month}") + +# 6. Calcular la diferencia entre 2 fechas +date1 = datetime.now() +date2 = datetime(2025, 2, 12, 15, 30, 0) + +difference = date2 - date1 +print(f"Diferencia entre las fechas: {difference}") From 509a8c3b2e0733452cbf8f2373a14fb4333b1eee Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 6 Mar 2025 18:13:07 -0500 Subject: [PATCH 018/187] working with requests (APIs) --- 06_request_at_dates/02_requests.py | 103 +++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 06_request_at_dates/02_requests.py diff --git a/06_request_at_dates/02_requests.py b/06_request_at_dates/02_requests.py new file mode 100644 index 0000000..c5790b0 --- /dev/null +++ b/06_request_at_dates/02_requests.py @@ -0,0 +1,103 @@ +# Como hacer peticiones APIS con Python +# con y sin dependencias + +# 1. Sin dependencias (dificil y sin dependencias) +import urllib.request +import json + +DEEPSEEK_API_KEY = "xxx" + +api_post = "https://jsonplaceholder.typicode.com/posts" + +try: + response = urllib.request.urlopen(api_post) + data = response.read() + json_data = json.loads(data.decode("utf-8")) + print(json_data) + response.close() +except urllib.error.URLError as err: + print(f"Error en la solicitud: {err}") + +# 2. Con dependencias (request) + +import requests + +print("\nGET:") +api_post = "https://jsonplaceholder.typicode.com/posts" +response = requests.get(api_post) +reponse_json = response.json() # Convert to JSON + +# 3. Un POST +print("\nPOST:") +try: + response = requests.post( + "https://jsonplaceholder.typicode.com/posts", + json={"title": "foo", "body": "hola", "userId": 1}, + ) + print(response.status_code) +except requests.exceptions.RequestException as e: + print(f"Error en la solicitud: {e}") + +# 4. Un PUT +print("\nPUT:") +try: + response = requests.put( + "https://jsonplaceholder.typicode.com/posts/1", + json={ + "title": "foo", + "body": "bar", + "userId": 1, + }, + ) + + print(response.status_code) +except requests.exceptions.RequestException as e: + print(f"Error en la solicitud: {e}") + +# Usar la API de GPT-4o de OpenAI +# Ref: https://platform.openai.com/docs/api-reference/making-requests + +OPENAI_KEY = "sk-XXXXXXXX" + +import json + + +def call_openai_gpt(api_key, prompt): + url = "https://api.openai.com/v1/chat/completions" + headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"} + data = {"model": "gpt-4o-mini", "messages": [{"role": "user", "content": prompt}]} + + response = requests.post(url, json=data, headers=headers) + return response.json() + + +api_response = call_openai_gpt( + OPENAI_KEY, "Escribe un breve poema sobre la programación" +) + +# print(json.dumps(api_response, indent=2)) + +print(api_response["choices"][0]["message"]["content"]) + +# Llamar a la API de DEEPSEEK + +import json + + +def call_deepseek(api_key, prompt): + url = "https://api.deepseek.com/chat/completions" + headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"} + data = {"model": "deepseek-chat", "messages": [{"role": "user", "content": prompt}]} + + response = requests.post(url, json=data, headers=headers) + print(response.json()) + return response.json() + + +api_response = call_deepseek( + DEEPSEEK_API_KEY, "Escribe un breve poema sobre la programación" +) + +# print(json.dumps(api_response, indent=2)) + +print(api_response["choices"][0]["message"]["content"]) From 78c4f820ca08ee972024b3b5b2df025485c32e94 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 6 Mar 2025 18:14:05 -0500 Subject: [PATCH 019/187] working with classes --- 06_request_at_dates/03_clases.py | 80 ++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 06_request_at_dates/03_clases.py diff --git a/06_request_at_dates/03_clases.py b/06_request_at_dates/03_clases.py new file mode 100644 index 0000000..2de00c5 --- /dev/null +++ b/06_request_at_dates/03_clases.py @@ -0,0 +1,80 @@ +# 1. Introducción a las Clases en Python +# Las clases son plantillas para crear objetos. Un objeto es una instancia de una clase. +# Nos permite agrupar datos (atributos o propiedades) y funciones (métodos) en un solo lugar. + +OPENAI_KEY = "" +DEEPSEEK_API_KEY = "" + + +# Ejemplo básico de una clase +class Coche: + # atributo de clase (comparte todas las instancias) + tipo = "vehículo de cuatro ruedas" + ruedas = 4 + + # método especial que es el que construye el objeto + # se llama automáticamente este método cuando creas la instancia + def __init__(self, marca, modelo, color): + # atributos de la instancia + self.marca = marca + self.modelo = modelo + self.color = color + + # método (actions) + def arrancar(self): + print(f"El coche {self.marca} {self.modelo} arrancó! 🚗") + + +# instance of the class +mi_coche = Coche("Toyota", "Corolla", "rojo") +mi_coche.arrancar() + +print(mi_coche.marca) + +coche_de_pheralb = Coche("Ford", "Fiesta", "azul") +coche_de_pheralb.arrancar() + +print(coche_de_pheralb.marca) + +# Encapsulación: es ocultar los detalles internos de una clase y exponer solo la interfaz pública + +# Crear una clase para llamar a la AI de OpenAI, DeepSeek O LO QUE SEA + +import requests + + +class AI_API: + def __init__(self, api_key, url, model): + self.api_key = api_key + self.url = url + self.model = model + + def call(self, prompt): + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {self.api_key}", + } + data = {"model": self.model, "messages": [{"role": "user", "content": prompt}]} + + try: + response = requests.post(self.url, json=data, headers=headers) + res_json = response.json() + print(res_json["choices"][0]["message"]["content"]) + except requests.exceptions.RequestException as e: + print(f"Error en la solicitud: {e}") + return None + + +print("\nOPEN_AI:") +openai_api = AI_API( + OPENAI_KEY, "https://api.openai.com/v1/chat/completions", "gpt-4o-mini" +) + +openai_api.call("Escribe un breve poema sobre la programación") + +print("\nDEEPSEEK:") +deepseek_api = AI_API( + DEEPSEEK_API_KEY, "https://api.deepseek.com/chat/completions", "deepseek-chat" +) + +deepseek_api.call("Escribe un breve poema sobre la programación") From f8d4c1cc3877033bd2b11dce1cbe03ec933325f9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 7 Mar 2025 20:49:57 -0500 Subject: [PATCH 020/187] changing status bar visible to false and add new file with clases on python --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e509a76..d68872e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -237,7 +237,7 @@ "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", - "workbench.statusBar.visible": true, + "workbench.statusBar.visible": false, "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, From d51c90e0070a061851b41b6fa68fe38faa619602 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 9 Mar 2025 07:03:17 -0500 Subject: [PATCH 021/187] chaging the font size on the editor to 14 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d68872e..3f4cf2d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -165,7 +165,7 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 15, + "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, From 62d0a27ce86c8a22632ff164b91a9ee57a399fce Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 15 Mar 2025 12:09:37 -0500 Subject: [PATCH 022/187] adding new settings for the editor --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3f4cf2d..8952314 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "cascadia code", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -165,12 +165,12 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, + "editor.fontSize": 13, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, "window.zoomLevel": 2, - "terminal.integrated.fontFamily": "cascadia code", + "terminal.integrated.fontFamily": "JetBrains Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, "editor.formatOnPaste": true, @@ -237,7 +237,7 @@ "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", - "workbench.statusBar.visible": false, + "workbench.statusBar.visible": true, "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, @@ -259,7 +259,7 @@ "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, - "chat.commandCenter.enabled": true, + "chat.commandCenter.enabled": false, "editor.scrollbar.vertical": "auto", "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": true, @@ -268,7 +268,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, - "editor.renderLineHighlight": "none", + "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, From df3e9eae84a13bc8bc17506970562e521898f958 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 15 Mar 2025 21:10:01 -0500 Subject: [PATCH 023/187] add new config on editor --- .vscode/settings.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8952314..a7bac30 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "JetBrains Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -165,11 +165,12 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13, + "editor.fontSize": 13.10, + "editor.fontWeight": "bold", "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 2, + "window.zoomLevel": 1.75, "terminal.integrated.fontFamily": "JetBrains Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -202,10 +203,10 @@ }, "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", - "editor.guides.indentation": false, + "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", - "workbench.activityBar.location": "bottom", + "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": true, @@ -280,4 +281,5 @@ "oneDarkPro.vivid": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, + "editor.lineHeight": 25 } From 8e9e89887a4db711bf444a5820657af793f46bdc Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 16 Mar 2025 20:45:42 -0500 Subject: [PATCH 024/187] changes on config to make it work --- .vscode/settings.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a7bac30..7d2cd80 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrains Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -165,12 +165,11 @@ "prettier.singleQuote": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13.10, - "editor.fontWeight": "bold", + "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.75, + "window.zoomLevel": 2, "terminal.integrated.fontFamily": "JetBrains Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -281,5 +280,5 @@ "oneDarkPro.vivid": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, - "editor.lineHeight": 25 + "security.workspace.trust.untrustedFiles": "open", } From e8ca51ea306b5465ef942d0254d84461dab9fa1d Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 16 Mar 2025 20:46:53 -0500 Subject: [PATCH 025/187] learning python --- 02_flow_control/03_list.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/02_flow_control/03_list.py b/02_flow_control/03_list.py index 947731d..c069027 100644 --- a/02_flow_control/03_list.py +++ b/02_flow_control/03_list.py @@ -4,14 +4,14 @@ # Pueden contener elementos de diferentes tipos. ### -# Creación de listas +# Creación de listas print("\nCrear listas") -lista1 = [1, 2, 3, 4, 5] # lista de enteros -lista2 = ["manzanas", "peras", "plátanos"] # lista de cadenas -lista3 = [1, "hola", 3.14, True] # lista de tipos mixtos +lista1 = [1, 2, 3, 4, 5] # lista de enteros +lista2 = ["manzanas", "peras", "plátanos"] # lista de cadenas +lista3 = [1, "hola", 3.14, True] # lista de tipos mixtos lista_vacia = [] -lista_de_listas = [[1, 2], ['calcetin', 4]] +lista_de_listas = [[1, 2], ["calcetin", 4]] matrix = [[1, 2], [2, 3], [4, 5]] print(lista1) @@ -25,22 +25,22 @@ print("\nAcceso a elementos por índice") print(lista2[0]) # manzanas print(lista2[1]) # peras -print(lista2[-1]) # plátanos -print(lista2[-2]) # peras +print(lista2[-1]) # plátanos +print(lista2[-2]) # peras print(lista_de_listas[1][0]) # Slicing (rebanado) de listas lista1 = [1, 2, 3, 4, 5] -print(lista1[1:4]) # [2, 3, 4] -print(lista1[:3]) # [1, 2, 3] -print(lista1[3:]) # [4, 5] -print(lista1[:]) # [1, 2, 3, 4, 5] +print(lista1[1:4]) # [2, 3, 4] +print(lista1[:3]) # [1, 2, 3] +print(lista1[3:]) # [4, 5] +print(lista1[:]) # [1, 2, 3, 4, 5] # El tercer parámetro es el paso (step) lista1 = [1, 2, 3, 4, 5, 6, 7, 8] -print(lista1[::2]) # para devolver índices pares -print(lista1[::-1]) # para devolver índices inversos +print(lista1[::2]) # para devolver índices pares +print(lista1[::-1]) # para devolver índices inversos # Modificar una lista lista1[0] = 20 @@ -53,7 +53,7 @@ lista1 = lista1 + [4, 5, 6] print(lista1) -# forma corta y más eficiente +# forma corta y más eficiente lista1 += [7, 8, 9] print(lista1) From b8e5269be79c3644849a01f8e61d52ac8c2fb8a7 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 18 Mar 2025 21:14:23 -0500 Subject: [PATCH 026/187] add new settings to editor --- .vscode/settings.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7d2cd80..013172f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -169,7 +169,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 2, + "window.zoomLevel": 1.5, "terminal.integrated.fontFamily": "JetBrains Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -233,7 +233,7 @@ "zenMode.hideActivityBar": false, "zenMode.hideLineNumbers": false, "zenMode.hideStatusBar": false, - "zenMode.fullScreen": false, + "zenMode.fullScreen": true, "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", @@ -241,7 +241,7 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": false, + "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "other": true, }, @@ -274,9 +274,6 @@ "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, "github.copilot.selectedCompletionModel": "gpt-4o-copilot", - "supermaven.enable": { - "*": true - }, "oneDarkPro.vivid": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, From 6358ffdcfb1412f7755d299415ee762487d2c062 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 22 Mar 2025 17:50:07 -0500 Subject: [PATCH 027/187] add new settings --- .vscode/settings.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 013172f..d6e23d3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -169,8 +169,8 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.5, - "terminal.integrated.fontFamily": "JetBrains Mono", + "window.zoomLevel": 1.6, + "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, "editor.formatOnPaste": true, @@ -191,7 +191,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "blink", + "editor.cursorBlinking": "solid", "editor.smoothScrolling": true, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, @@ -254,7 +254,7 @@ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "terminal.integrated.defaultProfile.windows": "Git Bash", + "terminal.integrated.defaultProfile.windows": "PowerShell", "git.blame.editorDecoration.enabled": false, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" @@ -278,4 +278,7 @@ "oneDarkPro.italic": true, "oneDarkPro.bold": true, "security.workspace.trust.untrustedFiles": "open", + "supermaven.enable": { + "*": true + }, } From 7e458f73bcf47f4916387bb616b3bec30bd3971b Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 23 Mar 2025 09:29:04 -0500 Subject: [PATCH 028/187] change font family --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d6e23d3..e6d3fe9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Hack Nerd Font Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From f7e762a142f7d0ab9e4fd3f7a2646d73e8f86622 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 23 Mar 2025 19:23:01 -0500 Subject: [PATCH 029/187] add new settings on editor --- .vscode/settings.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e6d3fe9..b5ddae5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Hack Nerd Font Mono", + "editor.fontFamily": "Hack FC Ligatured", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -163,13 +163,14 @@ "prettier.printWidth": 200, "prettier.semi": true, "prettier.singleQuote": true, + "prettier.arrowParens": "avoid", // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, + "editor.fontSize": 13.5, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.6, + "window.zoomLevel": 1.8, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -191,7 +192,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "solid", + "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, From 2a47c45435e0ba4ed4988af4fe754d218eea927f Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 23 Mar 2025 22:14:54 -0500 Subject: [PATCH 030/187] add new settings on editor --- .vscode/settings.json | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b5ddae5..88752e5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Hack FC Ligatured", + "editor.fontFamily": "Cascadia code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -166,7 +166,7 @@ "prettier.arrowParens": "avoid", // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13.5, + "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, @@ -204,8 +204,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -247,7 +247,7 @@ "other": true, }, "editor.parameterHints.enabled": false, - "editor.glyphMargin": true, + "editor.glyphMargin": false, "editor.showFoldingControls": "mouseover", "editor.matchBrackets": "never", "template-string-converter.enabled": true, @@ -265,7 +265,6 @@ "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": true, "editor.suggest.insertMode": "replace", - "editor.suggestLineHeight": 20, "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, @@ -282,4 +281,7 @@ "supermaven.enable": { "*": true }, + "telemetry.enabledTelemetry": false, + "telemetry.enableCrashReporter": false, + "telemetry.telemetryLevel": "off" } From 000c709aec1f8483620920116f36ab441a0842ad Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 23 Mar 2025 23:22:42 -0500 Subject: [PATCH 031/187] change theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 88752e5..16eb3c3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -204,8 +204,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From f5ff67ba933ba08ad2a8432cce7490327bea171b Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 24 Mar 2025 12:29:08 -0500 Subject: [PATCH 032/187] add new settings --- .vscode/settings.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 16eb3c3..4c9620a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -170,7 +170,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.8, + "window.zoomLevel": 2, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -283,5 +283,8 @@ }, "telemetry.enabledTelemetry": false, "telemetry.enableCrashReporter": false, - "telemetry.telemetryLevel": "off" + "telemetry.telemetryLevel": "off", + "editor.quickSuggestionsDelay": 500, + "editor.trimAutoWhitespace": false, + "explorer.autoReveal": false, } From c343674c663ae9d7eea78aa7e6012bd4f7e50df5 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 24 Mar 2025 20:25:46 -0500 Subject: [PATCH 033/187] add new settings on editor --- .vscode/settings.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4c9620a..b67e311 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia code", + "editor.fontFamily": "Hack Nerd Font Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -192,7 +192,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "blink", + "editor.cursorBlinking": "expand", "editor.smoothScrolling": true, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, @@ -266,7 +266,7 @@ "editor.linkedEditing": true, "editor.suggest.insertMode": "replace", "editor.detectIndentation": false, - "workbench.editor.showTabs": "multiple", + "workbench.editor.showTabs": "single", "editor.colorDecorators": false, "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", @@ -287,4 +287,6 @@ "editor.quickSuggestionsDelay": 500, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, + "editor.suggest.preview": false, + "editor.lineHeight": 23 } From 7640647b7128c8dcc560446cbf12d854d9f8802f Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 24 Mar 2025 22:37:29 -0500 Subject: [PATCH 034/187] change font family on the editor --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b67e311..fd00bba 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Hack Nerd Font Mono", + "editor.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From 27efbe99311bf85b6077a2b9df7f7f8f2c5c23ee Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 25 Mar 2025 12:28:02 -0500 Subject: [PATCH 035/187] add new settings on the editor --- .vscode/settings.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fd00bba..cbe4df3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -166,7 +166,7 @@ "prettier.arrowParens": "avoid", // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, + "editor.fontSize": 13, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, @@ -245,6 +245,8 @@ "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "other": true, + "comments": false, + "strings": false }, "editor.parameterHints.enabled": false, "editor.glyphMargin": false, @@ -284,7 +286,7 @@ "telemetry.enabledTelemetry": false, "telemetry.enableCrashReporter": false, "telemetry.telemetryLevel": "off", - "editor.quickSuggestionsDelay": 500, + "editor.quickSuggestionsDelay": 5, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, "editor.suggest.preview": false, From d6718daa001d92df9d9fba334098d5b40b7253e2 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Wed, 26 Mar 2025 20:35:14 -0500 Subject: [PATCH 036/187] add new settings --- .vscode/settings.json | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cbe4df3..3fe1192 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -166,7 +166,7 @@ "prettier.arrowParens": "avoid", // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13, + "editor.fontSize": 13.3, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, @@ -206,10 +206,10 @@ "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", - "workbench.activityBar.location": "default", + "workbench.activityBar.location": "top", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", - "breadcrumbs.enabled": true, + "breadcrumbs.enabled": false, "breadcrumbs.icons": true, "breadcrumbs.showArrays": false, "breadcrumbs.showBooleans": false, @@ -242,7 +242,7 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": true, + "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "other": true, "comments": false, @@ -270,7 +270,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "single", "editor.colorDecorators": false, - "editor.renderLineHighlight": "line", + "editor.renderLineHighlight": "none", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, @@ -281,14 +281,24 @@ "oneDarkPro.bold": true, "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true + "*": true, + "supermaven.inlineCompletion.enabled": false, + "supermaven.inlineCompletion.delayMs": 1, }, "telemetry.enabledTelemetry": false, "telemetry.enableCrashReporter": false, "telemetry.telemetryLevel": "off", - "editor.quickSuggestionsDelay": 5, + "editor.quickSuggestionsDelay": 1, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, "editor.suggest.preview": false, - "editor.lineHeight": 23 + "editor.lineHeight": 19, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true, + "**/.vscode/**": true, + "**/dist/**": true, + "**/build/**": true + }, } From 5927e231614cc176e841863b5a4cef4b2cd1304d Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 27 Mar 2025 09:17:03 -0500 Subject: [PATCH 037/187] add new settings on the editor --- .vscode/settings.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3fe1192..5e5b835 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -192,7 +192,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "expand", + "editor.cursorBlinking": "solid", "editor.smoothScrolling": true, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, @@ -217,7 +217,7 @@ "breadcrumbs.showConstants": false, "breadcrumbs.showConstructors": false, "workbench.editor.empty.hint": "hidden", - "workbench.editor.enablePreview": false, + "workbench.editor.enablePreview": true, "workbench.editor.labelFormat": "short", "window.density.editorTabHeight": "default", "editor.formatOnType": true, @@ -235,6 +235,7 @@ "zenMode.hideLineNumbers": false, "zenMode.hideStatusBar": false, "zenMode.fullScreen": true, + "zenMode.showTabs": "single", "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", @@ -301,4 +302,7 @@ "**/dist/**": true, "**/build/**": true }, + "files.enableTrash": false, + "editor.largeFileOptimizations": true, + "editor.unicodeHighlight.ambiguousCharacters": false } From 76ebfae5eee9a7813a486d52bc65b8cc48d372eb Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 28 Mar 2025 23:34:24 -0500 Subject: [PATCH 038/187] add new settings --- .vscode/settings.json | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5e5b835..9a33a04 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "CaskaydiaCove Nerd Font Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -33,7 +33,7 @@ "editor.hover.sticky": true, "editor.codeActionsOnSave": { "source.fixAll": "never", - "source.fixAll.eslint": "explicit", + "source.fixAll.eslint": "never", "source.organizeImports": "never" }, "explorer.confirmDelete": false, @@ -166,7 +166,7 @@ "prettier.arrowParens": "avoid", // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 13.3, + "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, @@ -183,7 +183,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.black-formatter", + "editor.defaultFormatter": "charliermarsh.ruff", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" @@ -192,7 +192,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "solid", + "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, @@ -202,7 +202,7 @@ } }, "liveServer.settings.donotShowInfoMsg": true, - "editor.snippetSuggestions": "top", + "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", @@ -250,7 +250,7 @@ "strings": false }, "editor.parameterHints.enabled": false, - "editor.glyphMargin": false, + "editor.glyphMargin": true, "editor.showFoldingControls": "mouseover", "editor.matchBrackets": "never", "template-string-converter.enabled": true, @@ -266,12 +266,12 @@ "chat.commandCenter.enabled": false, "editor.scrollbar.vertical": "auto", "editor.scrollbar.horizontal": "hidden", - "editor.linkedEditing": true, + "editor.linkedEditing": false, "editor.suggest.insertMode": "replace", "editor.detectIndentation": false, "workbench.editor.showTabs": "single", "editor.colorDecorators": false, - "editor.renderLineHighlight": "none", + "editor.renderLineHighlight": "all", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, @@ -283,17 +283,16 @@ "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { "*": true, - "supermaven.inlineCompletion.enabled": false, - "supermaven.inlineCompletion.delayMs": 1, + "supermaven.inlineCompletion.enabled": true, + "supermaven.inlineCompletion.delayMs": 400, }, "telemetry.enabledTelemetry": false, "telemetry.enableCrashReporter": false, "telemetry.telemetryLevel": "off", - "editor.quickSuggestionsDelay": 1, + "editor.quickSuggestionsDelay": 400, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, "editor.suggest.preview": false, - "editor.lineHeight": 19, "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, @@ -303,6 +302,12 @@ "**/build/**": true }, "files.enableTrash": false, - "editor.largeFileOptimizations": true, - "editor.unicodeHighlight.ambiguousCharacters": false + "editor.largeFileOptimizations": false, + "editor.unicodeHighlight.ambiguousCharacters": false, + "window.customTitleBarVisibility": "windowed", + "editor.wordBasedSuggestions": "off", + "editor.semanticHighlighting.enabled": true, + "editor.acceptSuggestionOnEnter": "on", + "editor.autoSurround": "never", + "editor.lineHeight": 23, } From c4b1027588f1e7ac7c494b829f4c170ca97d1e68 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 28 Mar 2025 23:36:24 -0500 Subject: [PATCH 039/187] fix format document --- .vscode/settings.json | 2 +- 01_basic/01_print.py | 3 ++- 01_basic/02_types.py | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9a33a04..a50d5e9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -183,7 +183,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "charliermarsh.ruff", + "editor.defaultFormatter": "ms-python.autopep8", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" diff --git a/01_basic/01_print.py b/01_basic/01_print.py index a0a6ef1..3435852 100644 --- a/01_basic/01_print.py +++ b/01_basic/01_print.py @@ -18,7 +18,8 @@ print("Python", "es", "brutal", sep="-") # El parámetro 'end' define lo que se imprime al final de la línea -print("Esto se imprime", end="\n") # Aquí, el 'end' tiene un salto de línea explícito +# Aquí, el 'end' tiene un salto de línea explícito +print("Esto se imprime", end="\n") print("en una línea") # Esto se imprime en la línea siguiente # También se pueden imprimir números directamente diff --git a/01_basic/02_types.py b/01_basic/02_types.py index c8379ba..91dfd3d 100644 --- a/01_basic/02_types.py +++ b/01_basic/02_types.py @@ -11,7 +11,8 @@ print(type(10)) # Número entero positivo print(type(0)) # El número cero también es un entero print(type(-5)) # Número entero negativo -print(type(7238424723784278934789239874)) # Python permite enteros de gran tamaño +# Python permite enteros de gran tamaño +print(type(7238424723784278934789239874)) print("float:") # Números decimales (de punto flotante) print(type(3.14)) # Número con punto decimal @@ -23,7 +24,8 @@ print("complex:") # Números complejos (con parte real e imaginaria) print( type(1 + 2j) -) # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) + # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) +) print("str:") # Cadenas de texto (strings) print(type("Hola")) # Un string con texto From 756e2725d50fa9b0361e4dab1e984b63101f9058 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 29 Mar 2025 21:34:42 -0500 Subject: [PATCH 040/187] fix settings --- .vscode/settings.json | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a50d5e9..071b0d1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -83,7 +83,7 @@ }, "window.nativeTabs": true, // this is great, macOS only "window.title": "${rootName}", // this make tabs more readable - "extensions.autoUpdate": "onlyEnabledExtensions", + "extensions.autoUpdate": "false", // ========== Extension configs ========== "emmet.showSuggestionsAsSnippets": true, "emmet.triggerExpansionOnTab": false, @@ -160,17 +160,21 @@ "css.lint.hexColorLength": "ignore", // I only use Prettier for manually formatting "prettier.enable": true, - "prettier.printWidth": 200, + "prettier.printWidth": 80, "prettier.semi": true, "prettier.singleQuote": true, "prettier.arrowParens": "avoid", + "prettier.tabWidth": 2, + "prettier.bracketSpacing": true, + "prettier.embeddedLanguageFormatting": "auto", + "prettier.htmlWhitespaceSensitivity": "ignore", + "prettier.vueIndentScriptAndStyle": true, // ========== File Nesting ========== "explorer.fileNesting.enabled": true, - "editor.fontSize": 14, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 2, + "window.zoomLevel": 1.65, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -271,7 +275,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "single", "editor.colorDecorators": false, - "editor.renderLineHighlight": "all", + "editor.renderLineHighlight": "none", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, @@ -283,13 +287,14 @@ "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { "*": true, - "supermaven.inlineCompletion.enabled": true, - "supermaven.inlineCompletion.delayMs": 400, + "supermaven.inlineCompletions.enabled": true, + "supermaven.inlineCompletions.delayMs": 20, + "supermaven.inlineCompletions.maxResults": 10, }, "telemetry.enabledTelemetry": false, "telemetry.enableCrashReporter": false, "telemetry.telemetryLevel": "off", - "editor.quickSuggestionsDelay": 400, + "editor.quickSuggestionsDelay": 20, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, "editor.suggest.preview": false, @@ -309,5 +314,8 @@ "editor.semanticHighlighting.enabled": true, "editor.acceptSuggestionOnEnter": "on", "editor.autoSurround": "never", - "editor.lineHeight": 23, + "editor.lineHeight": 22, + "workbench.enableExperiments": false, + "workbench.autoCheckUpdates": false, + "keyboard.dispatch": "keyCode", } From 00449e653d7e372ea4c83bd5fac51b11bb9d19f1 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 30 Mar 2025 14:15:24 -0500 Subject: [PATCH 041/187] add new settings on the editor --- .vscode/settings.json | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 071b0d1..7815a6e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -187,7 +187,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.autopep8", + "editor.defaultFormatter": "charliermarsh.ruff", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" @@ -233,7 +233,7 @@ "workbench.tips.enabled": false, "window.commandCenter": true, //APC CUSTOMIZE UI - "editor.codeLens": true, + "editor.codeLens": false, "zenMode.centerLayout": false, "zenMode.hideActivityBar": false, "zenMode.hideLineNumbers": false, @@ -247,9 +247,9 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": false, + "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": true, + "other": false, "comments": false, "strings": false }, @@ -275,7 +275,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "single", "editor.colorDecorators": false, - "editor.renderLineHighlight": "none", + "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, @@ -314,8 +314,22 @@ "editor.semanticHighlighting.enabled": true, "editor.acceptSuggestionOnEnter": "on", "editor.autoSurround": "never", - "editor.lineHeight": 22, + //"editor.lineHeight": 22, "workbench.enableExperiments": false, "workbench.autoCheckUpdates": false, "keyboard.dispatch": "keyCode", + "workbench.colorCustomizations": { + "editor.lineHighlightBackground": "#2a2d2e", + "editor.lineHighlightBorder": "#404040", + "editor.renderLineHighlight": "gutter", + }, + "editor.autoClosingBrackets": "always", + "editor.autoClosingQuotes": "always", + "html.autoClosingTags": true, + "update.showReleaseNotes": false, + "update.enableWindowsBackgroundUpdates": false, + "extensions.autoCheckUpdates": false, + "extensions.ignoreRecommendations": true, + "editor.bracketPairColorization.enabled": true, + "editor.lightbulb.enabled": "off" } From 96bb4f1437624bac6d4a609cd0ebaedba3c759f7 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 30 Mar 2025 14:16:08 -0500 Subject: [PATCH 042/187] change formatter default on python --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7815a6e..3c7a692 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -187,7 +187,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "charliermarsh.ruff", + "editor.defaultFormatter": "ms-python.autopep8", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" From e25feea59fc7b49acd23340cc64f75bde3610e0f Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 30 Mar 2025 14:16:58 -0500 Subject: [PATCH 043/187] comment to request on the line 43 --- 06_request_at_dates/03_clases.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/06_request_at_dates/03_clases.py b/06_request_at_dates/03_clases.py index 2de00c5..98fc495 100644 --- a/06_request_at_dates/03_clases.py +++ b/06_request_at_dates/03_clases.py @@ -40,7 +40,7 @@ def arrancar(self): # Crear una clase para llamar a la AI de OpenAI, DeepSeek O LO QUE SEA -import requests +# import requests class AI_API: @@ -54,7 +54,8 @@ def call(self, prompt): "Content-Type": "application/json", "Authorization": f"Bearer {self.api_key}", } - data = {"model": self.model, "messages": [{"role": "user", "content": prompt}]} + data = {"model": self.model, "messages": [ + {"role": "user", "content": prompt}]} try: response = requests.post(self.url, json=data, headers=headers) From 644cfcf2a98cae256ebd8ed9899ff33419a38ede Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 30 Mar 2025 14:17:47 -0500 Subject: [PATCH 044/187] enabled request --- 06_request_at_dates/03_clases.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/06_request_at_dates/03_clases.py b/06_request_at_dates/03_clases.py index 98fc495..1fd7f63 100644 --- a/06_request_at_dates/03_clases.py +++ b/06_request_at_dates/03_clases.py @@ -2,6 +2,7 @@ # Las clases son plantillas para crear objetos. Un objeto es una instancia de una clase. # Nos permite agrupar datos (atributos o propiedades) y funciones (métodos) en un solo lugar. +import requests OPENAI_KEY = "" DEEPSEEK_API_KEY = "" @@ -40,8 +41,6 @@ def arrancar(self): # Crear una clase para llamar a la AI de OpenAI, DeepSeek O LO QUE SEA -# import requests - class AI_API: def __init__(self, api_key, url, model): From fad2dc36710ed57a7e83e76c59c89c0e653b58bf Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 1 Apr 2025 20:51:43 -0500 Subject: [PATCH 045/187] fix settings on the editor --- .vscode/settings.json | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3c7a692..8328e27 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -24,7 +24,7 @@ "editor.find.addExtraSpaceOnTop": false, "editor.inlineSuggest.enabled": true, "editor.multiCursorModifier": "ctrlCmd", - "editor.suggestSelection": "first", + "editor.suggestSelection": "recentlyUsedByPrefix", "editor.tabSize": 2, "editor.unicodeHighlight.invisibleCharacters": false, "editor.stickyScroll.enabled": true, @@ -174,7 +174,8 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, - "window.zoomLevel": 1.65, + "window.zoomLevel": 1.99, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -187,7 +188,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.autopep8", + "editor.defaultFormatter": "charliermarsh.ruff", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" @@ -249,7 +250,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": false, + "other": "on", "comments": false, "strings": false }, @@ -287,17 +288,15 @@ "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { "*": true, - "supermaven.inlineCompletions.enabled": true, - "supermaven.inlineCompletions.delayMs": 20, + "supermaven.inlineCompletions.enabled": false, + "supermaven.inlineCompletions.delayMs": 10, "supermaven.inlineCompletions.maxResults": 10, }, "telemetry.enabledTelemetry": false, - "telemetry.enableCrashReporter": false, "telemetry.telemetryLevel": "off", - "editor.quickSuggestionsDelay": 20, "editor.trimAutoWhitespace": false, "explorer.autoReveal": false, - "editor.suggest.preview": false, + "editor.suggest.preview": true, "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, @@ -314,7 +313,6 @@ "editor.semanticHighlighting.enabled": true, "editor.acceptSuggestionOnEnter": "on", "editor.autoSurround": "never", - //"editor.lineHeight": 22, "workbench.enableExperiments": false, "workbench.autoCheckUpdates": false, "keyboard.dispatch": "keyCode", @@ -331,5 +329,13 @@ "extensions.autoCheckUpdates": false, "extensions.ignoreRecommendations": true, "editor.bracketPairColorization.enabled": true, - "editor.lightbulb.enabled": "off" + "editor.lightbulb.enabled": "off", + "editor.suggest.snippetsPreventQuickSuggestions": false, + "editor.suggest.showStatusBar": false, + "editor.suggest.filterGraceful": true, + "editor.suggest.shareSuggestSelections": false, + "editor.acceptSuggestionOnCommitCharacter": false, + "editor.suggest.showIcons": true, + "editor.suggest.showSnippets": true, + "debug.showInStatusBar": "never", } From b40cebdffe9cfaacab05d731b058166cf54f29ff Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 3 Apr 2025 15:24:49 -0500 Subject: [PATCH 046/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8328e27..596daf8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 15, + "terminal.integrated.fontSize": 13, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, From 791ca89820c69f3512bffa117af71df302935c92 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 4 Apr 2025 16:25:58 -0500 Subject: [PATCH 047/187] fix settings on the editor --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 596daf8..f6af699 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -175,7 +175,7 @@ "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, "window.zoomLevel": 1.99, - "editor.fontSize": 13, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -188,7 +188,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "charliermarsh.ruff", + "editor.defaultFormatter": "ms-python.autopep8", }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" @@ -250,7 +250,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": "on", + "other": false, "comments": false, "strings": false }, @@ -263,13 +263,13 @@ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "terminal.integrated.defaultProfile.windows": "PowerShell", + "terminal.integrated.defaultProfile.windows": "Git Bash", "git.blame.editorDecoration.enabled": false, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, "chat.commandCenter.enabled": false, - "editor.scrollbar.vertical": "auto", + "editor.scrollbar.vertical": "hidden", "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": false, "editor.suggest.insertMode": "replace", From 65e06094a97fdebc3f386f58e2b77ec4d4828dd0 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 4 Apr 2025 16:27:24 -0500 Subject: [PATCH 048/187] formatter file --- 02_flow_control/02_booleans.py | 8 ++++---- 02_flow_control/04_list_methods.py | 30 ++++++++++++++++-------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/02_flow_control/02_booleans.py b/02_flow_control/02_booleans.py index 2c5997f..aa43336 100644 --- a/02_flow_control/02_booleans.py +++ b/02_flow_control/02_booleans.py @@ -19,8 +19,8 @@ print("5 <= 3:", 5 <= 3) # False (menor o igual que) print("\nComparación de cadenas:") -print("'manzana' < 'pera':", "manzana" < "pera") # True -print("'Hola' == 'hola'", "Hola" == "hola") # False +print("'manzana' < 'pera':", "manzana" < "pera") # True +print("'Hola' == 'hola'", "Hola" == "hola") # False # Operadores lógicos: and, or, not print("\nOperadores lógicos:") @@ -47,7 +47,7 @@ print("False True ", False or True) print("False False", False or False) -print("\n not:") +print("\n not:") print("A not A") print("True ", not True) -print("False", not False) \ No newline at end of file +print("False", not False) diff --git a/02_flow_control/04_list_methods.py b/02_flow_control/04_list_methods.py index fdcc676..6b147a4 100644 --- a/02_flow_control/04_list_methods.py +++ b/02_flow_control/04_list_methods.py @@ -7,36 +7,38 @@ lista1 = ['a', 'b', 'c', 'd'] # Añadir o insertar elementos a la lista -lista1.append('e') # Añade un elemento al final +lista1.append('e') # Añade un elemento al final print(lista1) -lista1.insert(1, '@') # Inserta un elemento en la posición que le indiquemos como primer argumento +# Inserta un elemento en la posición que le indiquemos como primer argumento +lista1.insert(1, '@') print(lista1) -lista1.extend(['😃', '😍']) # Agrega elementos al final de la lista +lista1.extend(['😃', '😍']) # Agrega elementos al final de la lista print(lista1) # Eliminar elementos de la lista -lista1.remove('@') # Eliminar la primera aparición de la cadena de texto @ +lista1.remove('@') # Eliminar la primera aparición de la cadena de texto @ print(lista1) -ultimo = lista1.pop() # Eliminar el último elemento de la lista y además te lo devuelve +ultimo = lista1.pop() # Eliminar el último elemento de la lista y además te lo devuelve print(ultimo) print(lista1) -lista1.pop(1) # Eliminar el segundo elemento de la lista (es el índice 1) +lista1.pop(1) # Eliminar el segundo elemento de la lista (es el índice 1) print(lista1) # Eliminar por lo bestia un índice del lista1[-1] print(lista1) -lista1.clear() # Eliminar todos los elementos de la lista +lista1.clear() # Eliminar todos los elementos de la lista print(lista1) # Eliminar un rango de elementos lista1 = ['🐼', '🐨', '🐶', '😿', '🐹'] -del lista1[1:3] # eliminamos los elementos del índice 1 al 3 (no incluye el índice 3) +# eliminamos los elementos del índice 1 al 3 (no incluye el índice 3) +del lista1[1:3] print(lista1) # Más métodos útiles @@ -60,12 +62,12 @@ frutas.sort(key=str.lower) print(frutas) -# Más cositas útiles +#  Más cositas útiles animals = ['🐶', '🐼', '🐨', '🐶'] -print(len(animals)) # Tamaño de la listas -> 4 -print(animals.count('🐶')) # Cuantas veces aparece el elemento '🐶' -> 2 -print('🐼' in animals) # Comprueba si hay un '🐼' en la lista -> True -print('🐹' in animals) # -> False +print(len(animals)) # Tamaño de la listas -> 4 +print(animals.count('🐶')) # Cuantas veces aparece el elemento '🐶' -> 2 +print('🐼' in animals) # Comprueba si hay un '🐼' en la lista -> True +print('🐹' in animals) # -> False ### # EJERCICIOS @@ -108,4 +110,4 @@ # Ejercicio 6: Ordenar strings sin diferenciar mayúsculas y minúsculas. # Crea una lista con las siguientes cadenas: ["Manzana", "pera", "BANANA", "naranja"]. -# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. \ No newline at end of file +# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. From ef97af7f75a969e263df9c121961450b7f280299 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 5 Apr 2025 14:03:36 -0500 Subject: [PATCH 049/187] fix settings on editor --- .vscode/settings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f6af699..f6f357b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -175,7 +175,7 @@ "editor.minimap.enabled": false, "editor.minimap.maxColumn": 45, "window.zoomLevel": 1.99, - "editor.fontSize": 14, + "editor.fontSize": 13.80, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -240,7 +240,7 @@ "zenMode.hideLineNumbers": false, "zenMode.hideStatusBar": false, "zenMode.fullScreen": true, - "zenMode.showTabs": "single", + "zenMode.showTabs": "multiple", "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", @@ -250,7 +250,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": false, + "other": true, "comments": false, "strings": false }, @@ -274,7 +274,7 @@ "editor.linkedEditing": false, "editor.suggest.insertMode": "replace", "editor.detectIndentation": false, - "workbench.editor.showTabs": "single", + "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", From 0c67b98f4434115e19eb263def05e877ddd97412 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 6 Apr 2025 07:54:12 -0500 Subject: [PATCH 050/187] changing some settings on editor --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f6f357b..37fbdae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -172,8 +172,8 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": false, - "editor.minimap.maxColumn": 45, + "editor.minimap.enabled": true, + "editor.minimap.maxColumn": 150, "window.zoomLevel": 1.99, "editor.fontSize": 13.80, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", @@ -199,7 +199,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "line", + "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -211,7 +211,7 @@ "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", - "workbench.activityBar.location": "top", + "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -276,7 +276,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, - "editor.renderLineHighlight": "line", + "editor.renderLineHighlight": "none", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, From 3f37f971e6e1059cde28fa4219f6bd1f426ebc0d Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 6 Apr 2025 10:01:24 -0500 Subject: [PATCH 051/187] changed terminal default integrated profile --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 37fbdae..9fb1552 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -263,7 +263,7 @@ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "terminal.integrated.defaultProfile.windows": "Git Bash", + "terminal.integrated.defaultProfile.windows": "PowerShell", "git.blame.editorDecoration.enabled": false, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" From 026da524992913851026125b2d9470bf8d7be95a Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 7 Apr 2025 20:17:24 -0500 Subject: [PATCH 052/187] change cursor style on editor --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9fb1552..68eac5f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -199,7 +199,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "block", + "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { From 4824d5c6179cc39db51675aa4108ebb7990142c9 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 7 Apr 2025 23:36:07 -0500 Subject: [PATCH 053/187] add new settings --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 68eac5f..9f93969 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "CaskaydiaCove Nerd Font Mono", + "editor.fontFamily": "Iosevka Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Palenight Theme", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Palenight Theme", + "workbench.preferredLightColorTheme": "Palenight Theme", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -172,10 +172,10 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": true, + "editor.minimap.enabled": false, "editor.minimap.maxColumn": 150, "window.zoomLevel": 1.99, - "editor.fontSize": 13.80, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -209,8 +209,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Palenight Theme", + "workbench.preferredHighContrastColorTheme": "Palenight Theme", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 0a8fba960e57c87a6ee358c92605d777796e68cc Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 8 Apr 2025 08:12:09 -0500 Subject: [PATCH 054/187] add new settings --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9f93969..d5517bd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Iosevka Nerd Font", + "editor.fontFamily": "CaskaydiaCove Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -174,8 +174,8 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "editor.minimap.maxColumn": 150, - "window.zoomLevel": 1.99, - "editor.fontSize": 15, + "window.zoomLevel": 1.30, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From 650230f994736a0c8e8aa9f72cc1faca0db0ba5d Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 8 Apr 2025 17:41:13 -0500 Subject: [PATCH 055/187] adding new settings --- .vscode/settings.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d5517bd..b57f95b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Palenight Theme", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Palenight Theme", - "workbench.preferredLightColorTheme": "Palenight Theme", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -175,7 +175,7 @@ "editor.minimap.enabled": false, "editor.minimap.maxColumn": 150, "window.zoomLevel": 1.30, - "editor.fontSize": 14, + "editor.fontSize": 14.35, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -209,8 +209,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Palenight Theme", - "workbench.preferredHighContrastColorTheme": "Palenight Theme", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -338,4 +338,5 @@ "editor.suggest.showIcons": true, "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", + "editor.lineHeight": 20 } From 461cec1e1e785095b0cc14e745f045bb750b6451 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Wed, 9 Apr 2025 18:45:24 -0500 Subject: [PATCH 056/187] agregar nuevas configuraciones --- .vscode/settings.json | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b57f95b..01aabfa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "CaskaydiaCove Nerd Font", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "SynthWave '84", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "SynthWave '84", + "workbench.preferredLightColorTheme": "SynthWave '84", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -175,7 +175,7 @@ "editor.minimap.enabled": false, "editor.minimap.maxColumn": 150, "window.zoomLevel": 1.30, - "editor.fontSize": 14.35, + "editor.fontSize": 14.20, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -209,9 +209,9 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", - "workbench.activityBar.location": "default", + "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", + "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.activityBar.location": "bottom", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -276,15 +276,12 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", "editor.colorDecorators": false, - "editor.renderLineHighlight": "none", + "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, "errorLens.enabled": true, "github.copilot.selectedCompletionModel": "gpt-4o-copilot", - "oneDarkPro.vivid": true, - "oneDarkPro.italic": true, - "oneDarkPro.bold": true, "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { "*": true, @@ -316,11 +313,6 @@ "workbench.enableExperiments": false, "workbench.autoCheckUpdates": false, "keyboard.dispatch": "keyCode", - "workbench.colorCustomizations": { - "editor.lineHighlightBackground": "#2a2d2e", - "editor.lineHighlightBorder": "#404040", - "editor.renderLineHighlight": "gutter", - }, "editor.autoClosingBrackets": "always", "editor.autoClosingQuotes": "always", "html.autoClosingTags": true, @@ -338,5 +330,6 @@ "editor.suggest.showIcons": true, "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", - "editor.lineHeight": 20 + "editor.lineHeight": 20, + "github.copilot.nextEditSuggestions.enabled": true } From 6234b6c3375f9762102ad100163b211c7f8203ab Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Wed, 9 Apr 2025 23:42:44 -0500 Subject: [PATCH 057/187] =?UTF-8?q?ajustar=20la=20altura=20de=20l=C3=ADnea?= =?UTF-8?q?=20del=20editor=20a=2025?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 01aabfa..e9d6411 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -330,6 +330,6 @@ "editor.suggest.showIcons": true, "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", - "editor.lineHeight": 20, + "editor.lineHeight": 25, "github.copilot.nextEditSuggestions.enabled": true } From 8d214a67e4c5c5e1d744d6e01ee7173f0c0b5d6f Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 10 Apr 2025 14:35:30 -0500 Subject: [PATCH 058/187] =?UTF-8?q?ajustar=20el=20tama=C3=B1o=20de=20fuent?= =?UTF-8?q?e=20del=20editor=20y=20cambiar=20sugerencias=20a=20modo=20en=20?= =?UTF-8?q?l=C3=ADnea?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e9d6411..cc55d90 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -175,7 +175,7 @@ "editor.minimap.enabled": false, "editor.minimap.maxColumn": 150, "window.zoomLevel": 1.30, - "editor.fontSize": 14.20, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -250,7 +250,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": true, + "other": "inline", "comments": false, "strings": false }, From d7a5ea8b7f2cdd9cd594d979a8ab3fbaa98bab13 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 10 Apr 2025 18:16:30 -0500 Subject: [PATCH 059/187] changing all the settings on editor. --- .vscode/settings.json | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cc55d90..5f12246 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,14 +6,14 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SynthWave '84", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SynthWave '84", - "workbench.preferredLightColorTheme": "SynthWave '84", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -173,9 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "editor.minimap.maxColumn": 150, - "window.zoomLevel": 1.30, - "editor.fontSize": 14, + "window.zoomLevel": 1.50, + "editor.fontSize": 14.90, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -209,13 +208,13 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", - "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "bottom", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, - "breadcrumbs.icons": true, + "breadcrumbs.icons": false, "breadcrumbs.showArrays": false, "breadcrumbs.showBooleans": false, "breadcrumbs.showClasses": false, @@ -250,7 +249,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": "inline", + "other": true, "comments": false, "strings": false }, @@ -330,6 +329,9 @@ "editor.suggest.showIcons": true, "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", - "editor.lineHeight": 25, - "github.copilot.nextEditSuggestions.enabled": true + "github.copilot.nextEditSuggestions.enabled": true, + "oneDarkPro.bold": true, + "oneDarkPro.italic": true, + "oneDarkPro.vivid": true, + "editor.lineHeight": 18 } From 58cb612fe432378c6230d6a11cdbfa1e94298b9d Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 11 Apr 2025 23:16:09 -0500 Subject: [PATCH 060/187] fix settings on the editor --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5f12246..5279d31 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 13, + "terminal.integrated.fontSize": 15, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.50, - "editor.fontSize": 14.90, + "window.zoomLevel": 1.40, + "editor.fontSize": 13.20, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -268,7 +268,7 @@ "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, "chat.commandCenter.enabled": false, - "editor.scrollbar.vertical": "hidden", + "editor.scrollbar.vertical": "visible", "editor.scrollbar.horizontal": "hidden", "editor.linkedEditing": false, "editor.suggest.insertMode": "replace", @@ -333,5 +333,5 @@ "oneDarkPro.bold": true, "oneDarkPro.italic": true, "oneDarkPro.vivid": true, - "editor.lineHeight": 18 + "editor.lineHeight": 24 } From 4da7f271b16fbce2b68602822864529569da0034 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 14 Apr 2025 09:51:14 -0500 Subject: [PATCH 061/187] add new settings on the editor --- .vscode/settings.json | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5279d31..ec272b8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.40, - "editor.fontSize": 13.20, + "editor.fontSize": 15.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -210,8 +210,8 @@ "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", - "workbench.activityBar.location": "bottom", - "workbench.iconTheme": "symbols", + "workbench.activityBar.location": "default", + "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, "breadcrumbs.icons": false, @@ -221,7 +221,7 @@ "breadcrumbs.showConstants": false, "breadcrumbs.showConstructors": false, "workbench.editor.empty.hint": "hidden", - "workbench.editor.enablePreview": true, + "workbench.editor.enablePreview": false, "workbench.editor.labelFormat": "short", "window.density.editorTabHeight": "default", "editor.formatOnType": true, @@ -330,8 +330,6 @@ "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, - "oneDarkPro.bold": true, "oneDarkPro.italic": true, - "oneDarkPro.vivid": true, "editor.lineHeight": 24 } From 10a2123b617a2fa441a24746f0a17985e9c7a7de Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Tue, 15 Apr 2025 09:37:54 -0500 Subject: [PATCH 062/187] chages on font size and window zoom level from the editor. --- .vscode/settings.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ec272b8..d402604 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.40, - "editor.fontSize": 15.5, + "window.zoomLevel": 1, + "editor.fontSize": 15.8, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -331,5 +331,4 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, - "editor.lineHeight": 24 } From 9a52dce3280e31026dcdf9cd6816ae6412964a91 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 17 Apr 2025 12:05:56 -0500 Subject: [PATCH 063/187] add new settings on the editor --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d402604..0c5b150 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,10 +174,10 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 15.8, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", - "editor.fontLigatures": true, + "editor.fontLigatures": false, "editor.formatOnPaste": true, "editor.formatOnSave": true, "prettier.useTabs": false, @@ -243,7 +243,7 @@ "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", - "workbench.statusBar.visible": true, + "workbench.statusBar.visible": false, "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, From 2d2049a74aabe33e28a0af846104cd3db4c43ee5 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 17 Apr 2025 12:07:38 -0500 Subject: [PATCH 064/187] formatting --- 05_regex/01_re.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/05_regex/01_re.py b/05_regex/01_re.py index a0d3fcf..1ca9228 100644 --- a/05_regex/01_re.py +++ b/05_regex/01_re.py @@ -16,9 +16,9 @@ """ # 1. Importar el módulo de expresiones regulares "re" -import re # 2. Crear un patrón, que es una cadena de texto que describe lo que queremos encontrar +import re pattern = "Hola" # 3. El texto donde queremos buscar text = "Hola mundo" @@ -55,7 +55,7 @@ # ----------------------- -### Encontrar todas las coincidencias de un patrón +#  Encontrar todas las coincidencias de un patrón # .findall() devuelve una lista con todas las coincidencias text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" @@ -81,7 +81,7 @@ # Encuentra todas las ocurrencias de la palabra "midu" en el siguiente texto e indica en que posición empieza y termina cada coincidencia y cuantas veces se encontró. text = "Este es el curso de Python de midudev. ¡Suscríbete a midudev si te gusta este contenido! midu" -### Modificadores +# Modificadores # Los modificadores son opciones que se pueden agregar a un patrón para cambiar su comportamiento @@ -98,7 +98,7 @@ # Encuentra todas las ocurrencias de la palabra "python" en el siguiente texto, sin distinguir entre mayúsculas y minúsculas. text = "Este es el curso de Python de midudev. ¡Suscríbete a python si te gusta este contenido! PYTHON" -### Reemplazar el texto +# Reemplazar el texto # .sub() reemplaza todas las coincidencias de un patrón en un texto From ded9add5e2bdea73c2736a30d2b3520c4d1f9d4a Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 18 Apr 2025 22:02:48 -0500 Subject: [PATCH 065/187] change font size on editor. --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0c5b150..4f4ae05 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 15, + "editor.fontSize": 16, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 06e60e6269cae36c7c3e7b399b4de78bf66dfc5e Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Fri, 18 Apr 2025 22:03:49 -0500 Subject: [PATCH 066/187] formatter for python. --- 06_request_at_dates/01_dates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/06_request_at_dates/01_dates.py b/06_request_at_dates/01_dates.py index 8dad2b2..02416f7 100644 --- a/06_request_at_dates/01_dates.py +++ b/06_request_at_dates/01_dates.py @@ -1,4 +1,5 @@ # Trabajando con fechas y horas en Python +import locale from datetime import datetime, timedelta # 1. Obtener la fecha y hora actual @@ -12,7 +13,6 @@ # 3. Formatear fechas # Método strftime() para formatear fechas # pasarle el objeto datetime y el formato de especificado -import locale locale.setlocale(locale.LC_TIME, "es_ES.UTF-8") From f9f473dbb50ab36a882c54a57737fca0255866da Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sat, 19 Apr 2025 20:18:12 -0500 Subject: [PATCH 067/187] change sidebar position on the editor --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4f4ae05..cd8adac 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, From 1131c1e874a3e07a05cdfa1527b2709ebb420237 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 20 Apr 2025 13:28:38 -0500 Subject: [PATCH 068/187] add new settings on vscode --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cd8adac..59eadb9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 16, + "editor.fontSize": 15.44, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", From cdf21043bbe96366fd2f840974e106b23b5de3b7 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Sun, 20 Apr 2025 22:59:45 -0500 Subject: [PATCH 069/187] change font size, line height, and zoom level --- .vscode/settings.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 59eadb9..75fbdd1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1, - "editor.fontSize": 15.44, + "window.zoomLevel": 2, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -331,4 +331,5 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, + "editor.lineHeight": 28 } From 03d9f4341c9b5f9b382c8e537ef21782c31e9de7 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 21 Apr 2025 16:37:10 -0500 Subject: [PATCH 070/187] changes on settings.json --- .vscode/settings.json | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 75fbdd1..0c79185 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 2, - "editor.fontSize": 13, + "window.zoomLevel": 1, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -331,5 +331,4 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, - "editor.lineHeight": 28 } From 3c4c3ef989da36c0557aee58ae74c628d587fdb0 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 21 Apr 2025 16:38:00 -0500 Subject: [PATCH 071/187] add bold on the theme --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0c79185..eaa8567 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -331,4 +331,5 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, + "oneDarkPro.bold": true } From 43203054273265b9629688689d8b5074d3f7ca73 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Mon, 21 Apr 2025 20:39:39 -0500 Subject: [PATCH 072/187] delete one dark pro bold and adding font weight 500 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index eaa8567..5e3de0b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -331,5 +331,5 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, - "oneDarkPro.bold": true + "editor.fontWeight": "500" } From 02e488b2956b72932b19d5cfec9dc41bef095d49 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Wed, 23 Apr 2025 17:16:04 -0500 Subject: [PATCH 073/187] change on statusbar visibility --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5e3de0b..9529016 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -243,7 +243,7 @@ "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", - "workbench.statusBar.visible": false, + "workbench.statusBar.visible": true, "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, From dd571c7dc05303c065194829c38aca11c5e8a2dd Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Wed, 23 Apr 2025 21:47:33 -0500 Subject: [PATCH 074/187] changes on settings to make it more like vscode --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9529016..4e1f84c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1, - "editor.fontSize": 15, + "window.zoomLevel": 1.8, + "editor.fontSize": 16, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 33fc975f9e7960b88688c88e5f8070e514639131 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 24 Apr 2025 06:48:11 -0500 Subject: [PATCH 075/187] changes font size on the editor. --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4e1f84c..02308b3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 16, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From b25d8d8a4f179d4617f1e15b219aa25630c23c20 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 24 Apr 2025 07:22:57 -0500 Subject: [PATCH 076/187] change theme on the editor. --- .vscode/settings.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 02308b3..c64f41d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Andromeda Italic", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Andromeda Italic", + "workbench.preferredLightColorTheme": "Andromeda Italic", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Andromeda Italic", + "workbench.preferredHighContrastColorTheme": "Andromeda Italic", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -331,5 +331,4 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, - "editor.fontWeight": "500" } From 9157713cc642a07716d6209a10c1f40f475d3d55 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 24 Apr 2025 14:21:50 -0500 Subject: [PATCH 077/187] change font size on the editor. --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c64f41d..42ca851 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 15, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From f894a04af89684b349e88eee207c4f75d87a6567 Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 24 Apr 2025 17:17:00 -0500 Subject: [PATCH 078/187] change theme to github dark --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 42ca851..00ce9f3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Andromeda Italic", + "workbench.colorTheme": "GitHub Dark", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Andromeda Italic", - "workbench.preferredLightColorTheme": "Andromeda Italic", + "workbench.preferredDarkColorTheme": "GitHub Dark", + "workbench.preferredLightColorTheme": "GitHub Dark", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Andromeda Italic", - "workbench.preferredHighContrastColorTheme": "Andromeda Italic", + "workbench.preferredHighContrastLightColorTheme": "GitHub Dark", + "workbench.preferredHighContrastColorTheme": "GitHub Dark", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", From d101e624645c892237a1a1af54ecbf766d1b858e Mon Sep 17 00:00:00 2001 From: JEFFERSON CHAVEZ DIAZ Date: Thu, 24 Apr 2025 17:30:59 -0500 Subject: [PATCH 079/187] disabled editor suggestions --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 00ce9f3..aac3424 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -249,7 +249,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": true, + "other": false, "comments": false, "strings": false }, From 9cc89e5ac3bf3abe7b1c991f96983725a6236064 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 25 Apr 2025 23:48:36 -0500 Subject: [PATCH 080/187] chanage theme on the editor. --- .vscode/settings.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index aac3424..9bdbddb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "GitHub Dark", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "GitHub Dark", - "workbench.preferredLightColorTheme": "GitHub Dark", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 13, + "editor.fontSize": 13.8, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "GitHub Dark", - "workbench.preferredHighContrastColorTheme": "GitHub Dark", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -249,7 +249,7 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { - "other": false, + "other": true, "comments": false, "strings": false }, @@ -331,4 +331,5 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, + "oneDarkPro.bold": true } From 0acf9f9e5039566e1fff12c9c200ed20c72598f9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 25 Apr 2025 23:57:59 -0500 Subject: [PATCH 081/187] change cursor style --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9bdbddb..c4bd005 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -198,7 +198,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "line", + "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { From 7184574a6fbf11d255c083b8fdc03efea5d6444e Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 26 Apr 2025 10:25:56 -0500 Subject: [PATCH 082/187] changes on the editor. --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c4bd005..8162ec5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 13.8, + "editor.fontSize": 12.6, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -331,5 +331,5 @@ "debug.showInStatusBar": "never", "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, - "oneDarkPro.bold": true + "oneDarkPro.bold": true, } From f757d6a0633e1fc58ec54033f24462dc59e30af9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 26 Apr 2025 13:33:15 -0500 Subject: [PATCH 083/187] add new theme on the editor --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8162ec5..e53d4d3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "inline", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", From f9867c712cdf197a38084f09b57b999104107adc Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 26 Apr 2025 18:01:38 -0500 Subject: [PATCH 084/187] add new settings on the suggestions --- .vscode/settings.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e53d4d3..d3082b5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -206,7 +206,7 @@ } }, "liveServer.settings.donotShowInfoMsg": true, - "editor.snippetSuggestions": "inline", + "editor.snippetSuggestions": "none", "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", @@ -247,7 +247,7 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": true, + "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "other": true, "comments": false, @@ -332,4 +332,5 @@ "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, + "editor.quickSuggestionsDelay": 0, } From 08528a3e3c0bb8afa8819561375d3f1d8185f8e1 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 26 Apr 2025 22:28:38 -0500 Subject: [PATCH 085/187] add settings --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d3082b5..4015644 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.8, - "editor.fontSize": 12.6, + "window.zoomLevel": 1.3, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -206,7 +206,7 @@ } }, "liveServer.settings.donotShowInfoMsg": true, - "editor.snippetSuggestions": "none", + "editor.snippetSuggestions": "top", "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", @@ -249,7 +249,6 @@ "editor.folding": true, "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { - "other": true, "comments": false, "strings": false }, @@ -332,5 +331,6 @@ "github.copilot.nextEditSuggestions.enabled": true, "oneDarkPro.italic": true, "oneDarkPro.bold": true, - "editor.quickSuggestionsDelay": 0, + "editor.quickSuggestionsDelay": 130, + "editor.lineHeight": 25 } From 7f597395788021e86e542d73e3b0728e48bca3ef Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 27 Apr 2025 21:30:18 -0500 Subject: [PATCH 086/187] change theme and sidebar location to left --- .vscode/settings.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4015644..5f9a647 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,14 +6,14 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Palenight (Mild Contrast)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Palenight (Mild Contrast)", + "workbench.preferredLightColorTheme": "Palenight (Mild Contrast)", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Palenight (Mild Contrast)", + "workbench.preferredHighContrastColorTheme": "Palenight (Mild Contrast)", "workbench.activityBar.location": "default", "workbench.iconTheme": "material-icon-theme", "workbench.tree.renderIndentGuides": "none", @@ -332,5 +332,4 @@ "oneDarkPro.italic": true, "oneDarkPro.bold": true, "editor.quickSuggestionsDelay": 130, - "editor.lineHeight": 25 } From df3394e80ba1430b3af975e452ee817ec5658cc3 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 28 Apr 2025 16:33:12 -0500 Subject: [PATCH 087/187] change font size and cursor style. --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5f9a647..0c8fb59 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.3, - "editor.fontSize": 14, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -198,7 +198,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "block", + "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { From 778f16ce775f41be66c55a0f8260d15b81909441 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 29 Apr 2025 10:39:24 -0500 Subject: [PATCH 088/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0c8fb59..964500a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.3, - "editor.fontSize": 15, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 01d1c5acbcf64cca3268da41c0d10c25c3f81512 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 29 Apr 2025 20:44:55 -0500 Subject: [PATCH 089/187] add editor line height --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 964500a..eb1a400 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -332,4 +332,5 @@ "oneDarkPro.italic": true, "oneDarkPro.bold": true, "editor.quickSuggestionsDelay": 130, + "editor.lineHeight": 23 } From 4453dc64a77781a1e490aba1ffdc9ee96cb2dd56 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 30 Apr 2025 09:10:27 -0500 Subject: [PATCH 090/187] change theme and add glassit --- .vscode/settings.json | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index eb1a400..8a09565 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Palenight (Mild Contrast)", + "workbench.colorTheme": "Hack The Box", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Palenight (Mild Contrast)", - "workbench.preferredLightColorTheme": "Palenight (Mild Contrast)", + "workbench.preferredDarkColorTheme": "Hack The Box", + "workbench.preferredLightColorTheme": "Hack The Box", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -208,10 +208,10 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Palenight (Mild Contrast)", - "workbench.preferredHighContrastColorTheme": "Palenight (Mild Contrast)", + "workbench.preferredHighContrastLightColorTheme": "Hack The Box", + "workbench.preferredHighContrastColorTheme": "Hack The Box", "workbench.activityBar.location": "default", - "workbench.iconTheme": "material-icon-theme", + "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, "breadcrumbs.icons": false, @@ -332,5 +332,7 @@ "oneDarkPro.italic": true, "oneDarkPro.bold": true, "editor.quickSuggestionsDelay": 130, - "editor.lineHeight": 23 + "terminal.integrated.sendKeybindingsToShell": true, + "editor.lineHeight": 23, + "glassit.alpha": 220 } From 397ea8507d0f62b1575f7926334ec1d475dd122d Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 30 Apr 2025 21:20:21 -0500 Subject: [PATCH 091/187] change font size, window zoom level and theme --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8a09565..59a2a6b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "JetBrains Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Hack The Box", + "workbench.colorTheme": "SynthWave '84", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Hack The Box", - "workbench.preferredLightColorTheme": "Hack The Box", + "workbench.preferredDarkColorTheme": "SynthWave '84", + "workbench.preferredLightColorTheme": "SynthWave '84", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.3, - "editor.fontSize": 14, + "window.zoomLevel": 1, + "editor.fontSize": 13.3, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Hack The Box", - "workbench.preferredHighContrastColorTheme": "Hack The Box", + "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", + "workbench.preferredHighContrastColorTheme": "SynthWave '84", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From e2697f035a4ca6095e05ee3f5868a09d21368a38 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 1 May 2025 19:36:04 -0500 Subject: [PATCH 092/187] add new settings on the editor. --- .vscode/settings.json | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 59a2a6b..22ac0ce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrains Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SynthWave '84", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SynthWave '84", - "workbench.preferredLightColorTheme": "SynthWave '84", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 13.3, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", - "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -334,5 +334,6 @@ "editor.quickSuggestionsDelay": 130, "terminal.integrated.sendKeybindingsToShell": true, "editor.lineHeight": 23, - "glassit.alpha": 220 + "glassit.alpha": 220, + "oneDarkPro.vivid": true } From fd7516038a185e3bd6e9f09f32acd8c94569a0fb Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 1 May 2025 20:11:08 -0500 Subject: [PATCH 093/187] add new setting --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 22ac0ce..28d6073 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -333,7 +333,6 @@ "oneDarkPro.bold": true, "editor.quickSuggestionsDelay": 130, "terminal.integrated.sendKeybindingsToShell": true, - "editor.lineHeight": 23, "glassit.alpha": 220, "oneDarkPro.vivid": true } From c8d0389116d504901c2641b31599858d503df71c Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 3 May 2025 21:31:49 -0500 Subject: [PATCH 094/187] add new settings --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 28d6073..ec609b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -172,9 +172,9 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": false, - "window.zoomLevel": 1, - "editor.fontSize": 14, + "editor.minimap.enabled": true, + "window.zoomLevel": 2, + "editor.fontSize": 14.4, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 0260a0255dd092df825a279bc1289d1335d136b1 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 4 May 2025 07:09:17 -0500 Subject: [PATCH 095/187] add new theme --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ec609b6..42a0025 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Black Italic", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Black Italic", + "workbench.preferredLightColorTheme": "Black Italic", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": true, - "window.zoomLevel": 2, - "editor.fontSize": 14.4, + "window.zoomLevel": 1.4, + "editor.fontSize": 14.1, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Black Italic", + "workbench.preferredHighContrastColorTheme": "Black Italic", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 09e78deb00b3a62745a57a76a0dd15e8d7e66f79 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 4 May 2025 07:57:30 -0500 Subject: [PATCH 096/187] add new theme on the editor --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 42a0025..0830b0b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Black Italic", + "workbench.colorTheme": "One Dark Pro Mix", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Black Italic", - "workbench.preferredLightColorTheme": "Black Italic", + "workbench.preferredDarkColorTheme": "One Dark Pro Mix", + "workbench.preferredLightColorTheme": "One Dark Pro Mix", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -172,9 +172,9 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": true, - "window.zoomLevel": 1.4, - "editor.fontSize": 14.1, + "editor.minimap.enabled": false, + "window.zoomLevel": 1, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Black Italic", - "workbench.preferredHighContrastColorTheme": "Black Italic", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Mix", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Mix", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 4b9256d60704116cc007506620a9c556a1e83ca1 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 4 May 2025 16:20:48 -0500 Subject: [PATCH 097/187] enable color decorator --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0830b0b..ee0ede1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -273,7 +273,7 @@ "editor.suggest.insertMode": "replace", "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", - "editor.colorDecorators": false, + "editor.colorDecorators": true, "editor.renderLineHighlight": "line", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", From 80314ea31d4a0989bf4df742b4681afacde5f8eb Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 4 May 2025 21:09:10 -0500 Subject: [PATCH 098/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ee0ede1..a175884 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 14, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 80a2ae256317d1c664de2ae7157052c5b007b024 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 6 May 2025 18:37:51 -0500 Subject: [PATCH 099/187] add theme one dark pro darker --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a175884..76d1aba 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Mix", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Mix", - "workbench.preferredLightColorTheme": "One Dark Pro Mix", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Mix", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Mix", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From ecad0b3cf2d42fb639f932e094456a2be4569b36 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 7 May 2025 07:34:24 -0500 Subject: [PATCH 100/187] add new settings --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 76d1aba..8609e83 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1, - "editor.fontSize": 15, + "window.zoomLevel": 1.4, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 70abbff899aaa7ba456f87397b3ad38c690b55ad Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 8 May 2025 21:15:11 -0500 Subject: [PATCH 101/187] add new theme and font family --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8609e83..f06e82a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "JetBrains Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "ReUI II Dark (Italic)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "ReUI II Dark (Italic)", + "workbench.preferredLightColorTheme": "ReUI II Dark (Italic)", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13, + "editor.fontSize": 13.8, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "ReUI II Dark (Italic)", + "workbench.preferredHighContrastColorTheme": "ReUI II Dark (Italic)", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -334,5 +334,5 @@ "editor.quickSuggestionsDelay": 130, "terminal.integrated.sendKeybindingsToShell": true, "glassit.alpha": 220, - "oneDarkPro.vivid": true + "oneDarkPro.vivid": true, } From 75d9437c332bf4c5f7d1af800ea0c4ccd0ac3cef Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 9 May 2025 13:12:29 -0500 Subject: [PATCH 102/187] change font family on the editor. --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f06e82a..30fc055 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrains Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From eba7965d69933bb9ee5482937757ac961167342c Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 9 May 2025 16:17:09 -0500 Subject: [PATCH 103/187] add new theme --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 30fc055..c65f777 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "ReUI II Dark (Italic)", + "workbench.colorTheme": "Shades of Purple (Super Dark)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "ReUI II Dark (Italic)", - "workbench.preferredLightColorTheme": "ReUI II Dark (Italic)", + "workbench.preferredDarkColorTheme": "Shades of Purple (Super Dark)", + "workbench.preferredLightColorTheme": "Shades of Purple (Super Dark)", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -27,7 +27,7 @@ "editor.suggestSelection": "recentlyUsedByPrefix", "editor.tabSize": 2, "editor.unicodeHighlight.invisibleCharacters": false, - "editor.stickyScroll.enabled": true, + "editor.stickyScroll.enabled": false, "terminal.integrated.stickyScroll.enabled": false, "workbench.tree.enableStickyScroll": true, "editor.hover.sticky": true, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13.8, + "editor.fontSize": 13.7, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -198,7 +198,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "line", + "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "ReUI II Dark (Italic)", - "workbench.preferredHighContrastColorTheme": "ReUI II Dark (Italic)", + "workbench.preferredHighContrastLightColorTheme": "Shades of Purple (Super Dark)", + "workbench.preferredHighContrastColorTheme": "Shades of Purple (Super Dark)", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 093b20114de4f2d29bce1c49115530c30d929c92 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 9 May 2025 17:12:52 -0500 Subject: [PATCH 104/187] theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c65f777..22cc590 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Shades of Purple (Super Dark)", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Shades of Purple (Super Dark)", - "workbench.preferredLightColorTheme": "Shades of Purple (Super Dark)", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Shades of Purple (Super Dark)", - "workbench.preferredHighContrastColorTheme": "Shades of Purple (Super Dark)", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 9af7d528ad74ced759c2af378b56862ab0ff8906 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 11 May 2025 07:48:13 -0500 Subject: [PATCH 105/187] add theme oh lucy --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 22cc590..e5c9bb7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "lucy", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "lucy", + "workbench.preferredLightColorTheme": "lucy", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "lucy", + "workbench.preferredHighContrastColorTheme": "lucy", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 1a6971266da445cd3154e26f39d366044fe599ff Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 12 May 2025 22:20:56 -0500 Subject: [PATCH 106/187] add new configs --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e5c9bb7..dcac0d2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.4, - "editor.fontSize": 13.7, + "window.zoomLevel": 2, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -198,7 +198,7 @@ }, "editor.cursorBlinking": "smooth", "editor.smoothScrolling": true, - "editor.cursorStyle": "block", + "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { From 3a415633386582df6fde63ec0f527223e21ecc28 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 13 May 2025 14:26:53 -0500 Subject: [PATCH 107/187] new settings --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index dcac0d2..3716915 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "lucy", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "lucy", - "workbench.preferredLightColorTheme": "lucy", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 13, + "editor.fontSize": 12.8, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -208,8 +208,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "lucy", - "workbench.preferredHighContrastColorTheme": "lucy", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 3ce68a87d6ef039bc80098558f7f0a53b3e855f6 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 14 May 2025 07:32:31 -0500 Subject: [PATCH 108/187] changeon font size and window zoom level --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3716915..fbadbdb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 2, - "editor.fontSize": 12.8, + "window.zoomLevel": 1.66, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 2fd5e96fe95d83e7c11d7ea31134d17deb79420d Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 14 May 2025 09:12:51 -0500 Subject: [PATCH 109/187] change on font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fbadbdb..7a248c9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.66, - "editor.fontSize": 15, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 452b9691400ee9020dffd92c9a48455a818b531c Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 23 May 2025 16:06:03 -0500 Subject: [PATCH 110/187] add autopep8 --- .vscode/settings.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7a248c9..c37e2aa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -189,6 +189,10 @@ "editor.wordBasedSuggestions": "off", "editor.defaultFormatter": "ms-python.autopep8", }, + "autopep8.args": [ + "--max-line-length", + "100" + ], "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" }, From e86da8b6bd8236f7e383e9a17dfe8fb45a92992f Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 25 May 2025 13:04:53 -0500 Subject: [PATCH 111/187] add new theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c37e2aa..2b1d0cf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 9141c8f132b139b4fdd1b35f51550e1b14aba1a9 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 27 May 2025 18:55:49 -0500 Subject: [PATCH 112/187] add new font --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 2b1d0cf..5471148 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "FiraCode Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From c28c586b798577a4dd760e39fba7a44ee6821808 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 27 May 2025 21:41:05 -0500 Subject: [PATCH 113/187] add quick suggestions on the editor --- .vscode/settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5471148..031ca1c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -254,7 +254,8 @@ "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "comments": false, - "strings": false + "strings": false, + "other": true }, "editor.parameterHints.enabled": false, "editor.glyphMargin": true, From dbc8a71b8e5a5587b63b2afdf8fa6b7727ee0987 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 27 May 2025 21:59:11 -0500 Subject: [PATCH 114/187] add new theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 031ca1c..b98c198 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 80f5f495fb63d788cbb15a83ed4aff7975c54053 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 30 May 2025 17:33:41 -0500 Subject: [PATCH 115/187] `Update VSCode settings to use Catppuccin Mocha theme and adjust font size` --- .vscode/settings.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b98c198..dcea693 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "FiraCode Nerd Font", + "editor.fontFamily": "Victor Mono", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Catppuccin Mocha", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Catppuccin Mocha", + "workbench.preferredLightColorTheme": "Catppuccin Mocha", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.66, - "editor.fontSize": 13, + "editor.fontSize": 12.70, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Catppuccin Mocha", + "workbench.preferredHighContrastColorTheme": "Catppuccin Mocha", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", @@ -287,10 +287,10 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true, + "*": false, "supermaven.inlineCompletions.enabled": false, "supermaven.inlineCompletions.delayMs": 10, - "supermaven.inlineCompletions.maxResults": 10, + "supermaven.inlineCompletions.maxResults": 10 }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", From 8c3931aac2cbab3b8ed178bfd8a1b43cbfdb5c94 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sat, 31 May 2025 21:19:31 -0500 Subject: [PATCH 116/187] change font family --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index dcea693..2dcdf7a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Victor Mono", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From aae93f0f33fb9de36bd093295f06f3f003e1bc46 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 1 Jun 2025 07:56:09 -0500 Subject: [PATCH 117/187] upgrade font size, window zoom level and sidebar location on the editor. --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 2dcdf7a..c2ae1fb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "Catppuccin Mocha", "workbench.preferredLightColorTheme": "Catppuccin Mocha", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.66, - "editor.fontSize": 12.70, + "window.zoomLevel": 1.4, + "editor.fontSize": 13.4, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 22b7e5804efd29456215abe5a38778295a8eb212 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 1 Jun 2025 07:59:42 -0500 Subject: [PATCH 118/187] adding check types pylance extension. --- 01_basic/05_input.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/01_basic/05_input.py b/01_basic/05_input.py index e1f9098..8d8ab28 100644 --- a/01_basic/05_input.py +++ b/01_basic/05_input.py @@ -11,7 +11,7 @@ # Ten en cuenta que la función input() devuelve un string # Así que si queremos obtener un número se debe convertir el string a un número -age: int = input("¿Cuántos años tienes?\n") +age: int = int(input("¿Cuántos años tienes?\n")) age: int = int(age) print(f"Tienes {age} años") From 60d7690e8ca8dc61ba82ae18e4d569e284364f07 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 1 Jun 2025 17:58:18 -0500 Subject: [PATCH 119/187] upgrade font size and theme. --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c2ae1fb..caba3d3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Catppuccin Mocha", + "workbench.colorTheme": "One Dark Pro Flat", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Catppuccin Mocha", - "workbench.preferredLightColorTheme": "Catppuccin Mocha", + "workbench.preferredDarkColorTheme": "One Dark Pro Flat", + "workbench.preferredLightColorTheme": "One Dark Pro Flat", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 15, + "terminal.integrated.fontSize": 13, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13.4, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Catppuccin Mocha", - "workbench.preferredHighContrastColorTheme": "Catppuccin Mocha", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Flat", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Flat", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From ee5fcbf9004377b1b281c211ac9cfdaa67cd2731 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Thu, 5 Jun 2025 15:08:54 -0500 Subject: [PATCH 120/187] enable editor line height --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index caba3d3..0f6ddca 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -340,4 +340,5 @@ "terminal.integrated.sendKeybindingsToShell": true, "glassit.alpha": 220, "oneDarkPro.vivid": true, + "editor.lineHeight": 20 } From fc18dd91fe13b05cded90668044b2869a9f98b42 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Fri, 6 Jun 2025 21:25:58 -0500 Subject: [PATCH 121/187] upgrade font size and sidebar --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f6ddca..314499f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Flat", "workbench.preferredLightColorTheme": "One Dark Pro Flat", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 0b7a6a27e749c247961184f26e537496450c6bb3 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Wed, 11 Jun 2025 18:39:51 -0500 Subject: [PATCH 122/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 314499f..ed55bfe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 14, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From dab613dc167bd9b8414b19dc8726db655d88ed41 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez DIaz Date: Sat, 14 Jun 2025 15:38:13 -0500 Subject: [PATCH 123/187] add new settings and formattede --- .vscode/settings.json | 12 +- 001_Abre_esta_carpeta/iformacion_del_curso.md | 74 +- .../preguntas_resueltas_aqu\303\255.md" | 1260 ++++++++--------- 01_basic/01_print.py | 78 +- 01_basic/02_types.py | 104 +- 01_basic/03_cast.py | 80 +- 01_basic/04_variables.py | 138 +- 01_basic/05_input.py | 46 +- 01_basic/exercises.py | 134 +- 01_basic/soluciones.py | 164 +-- 02_flow_control/01_if.py | 448 +++--- 02_flow_control/01_if_solutions.py | 150 +- 02_flow_control/02_booleans.py | 106 +- 02_flow_control/03_list.py | 192 +-- 02_flow_control/03_list_solutions.py | 120 +- 02_flow_control/04_list_methods.py | 226 +-- 02_flow_control/04_list_methods_solutions.py | 164 +-- 03_loops/01_loop_while.py | 348 ++--- 03_loops/01_loop_while_solutions.py | 188 +-- 03_loops/02_loop_for.py | 270 ++-- 03_loops/02_loop_for_solutions.py | 124 +- 03_loops/03_range.py | 176 +-- 03_loops/03_range_solutions.py | 86 +- 03_loops/04_functions.py | 194 +-- 04_logic/01_challenge_fantastic_four.py | 82 +- 04_logic/02_challenge_jurassic_park.py | 58 +- 04_logic/03_challenge_find_first_sum.py | 66 +- 04_logic/04_dictionaries.py | 114 +- 04_logic/05_challenge_battle.py | 104 +- 05_regex/01_re.py | 220 +-- 05_regex/02_metachars.py | 272 ++-- 05_regex/03_quantifiers.py | 114 +- 05_regex/04_sets.py | 106 +- LICENSE | 312 ++-- README.md | 392 ++--- test.py | 116 +- 36 files changed, 3419 insertions(+), 3419 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ed55bfe..d607508 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Flat", + "workbench.colorTheme": "SynthWave '84", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Flat", - "workbench.preferredLightColorTheme": "One Dark Pro Flat", + "workbench.preferredDarkColorTheme": "SynthWave '84", + "workbench.preferredLightColorTheme": "SynthWave '84", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Flat", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Flat", + "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", + "workbench.preferredHighContrastColorTheme": "SynthWave '84", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", diff --git a/001_Abre_esta_carpeta/iformacion_del_curso.md b/001_Abre_esta_carpeta/iformacion_del_curso.md index b367bf7..c703792 100644 --- a/001_Abre_esta_carpeta/iformacion_del_curso.md +++ b/001_Abre_esta_carpeta/iformacion_del_curso.md @@ -1,37 +1,37 @@ -# **¡Bienvenido@ al Curso de Python! 🐍🚀** - -En esta sección, te guiaremos en todo lo que necesitas saber para comenzar tu **emocionante** viaje en el mundo de la programación con Python. No importa si nunca has programado antes, este curso comienza desde cero, respondiendo **TODAS** las preguntas que puedas tener. Te ayudaremos a resolver tus dudas de forma independiente, y esto lo podrás ver en el siguiente archivo llamado: **preguntas_resueltas_aquí.md**. 📄✨ - -## **Plataformas y Acceso al Curso 🌐🔓** - -### **Dónde Ver las Clases 📺** - -Las clases se transmitirán en vivo en [Twitch](https://www.twitch.tv/midudev) y permanecerán almacenadas allí. Por ahora, no se subirán a YouTube, pero en el futuro, una vez completadas todas las sesiones, estarán disponibles en dicha plataforma. - -Las clases se impartirán todos los **miércoles**, con una duración de **1 hora y media a 2 horas** como máximo. Este calendario se mantendrá al menos un mes y medio, es decir, hasta aproximadamente **marzo de 2025**. Posteriormente, podríamos ampliar el contenido hacia temas como Django, Inteligencia Artificial, entre otros, si vemos que el curso es bien recibido. Así que dale una estrella ⭐ a este repositorio y ¡compártelo con tus amigos! - -### **Recursos que Tendrás a tu Disposición 📚🔧** - -- **Academia de Midu:** ¡Sí, como lo lees! 🎉 Tenemos abierta la academia donde encontrarás una **gran cantidad** de cursos, incluyendo este mismo curso de Python. Aquí encontrarás mejoras en las explicaciones con código, por minuto, por tema, realizaremos proyectos, y quizás en un futuro certificados y muchas cosas más. Solo entra a [midu.dev](https://midu.dev/). 🚀 - -- **Nota:** Solo los suscriptores de Twitch tienen acceso gratuito a la academia. Si tu suscripción en [Twitch](https://www.twitch.tv/midudev) expira y no la renuevas, también se cerrará tu acceso a la academia. Y buenas noticias: no importa si eres suscriptor con sub regalada o con Prime, solo basta que tengas una suscripción en Twitch, te logueas con esa cuenta y tienes acceso a la academia. 👍✨ - -- **Temario - Página Oficial del Curso 📋⏳:** Si quieres ver todos los temas que abordaremos por el momento, visita el siguiente enlace. Además de mostrarte el temario, tiene cuentas regresivas y anuncios de la próxima clase, además de poder guardar el evento en Discord: [cursopython.dev](https://www.cursopython.dev/). 🗓️🔔 - -- **Repositorio de Código 💻📂:** - - Todo el código, ejercicios y materiales estarán disponibles en este [repositorio de GitHub](https://github.com/midudev/curso-python). 📂✨ Te recomendamos leer el archivo `README.md` 📖🔍 donde encontrarás enlaces a las clases y más información útil. Además, revisa la última modificación del repositorio 🕒🔄 para estar al tanto de las actualizaciones, como soluciones a ejercicios y mejoras en los comentarios. Por ejemplo, el archivo [01_basic](https://github.com/midudev/curso-python/tree/main/01_basic) fue actualizado una semana y media después de su primera versión. Próximamente, en cada archivo encontrarás enlaces directos al minuto exacto de la clase donde se aborda ese tema, facilitando así tu repaso rápido. ¡Mantente atento! 🚀🔗 - -## **Comunidad y Soporte 🤝💬** - -¿Quieres una comunidad que te ayude con tus dudas de forma **amigable**? ¿Que te ayude a resolver tus preguntas y a encontrar gente con la que colaborar en proyectos? Pues únete a nuestra **comunidad en Discord** [aquí](https://discord.com/invite/midudev) para resolver dudas, compartir conocimientos y colaborar con otros estudiantes. Dentro de Discord, encontrarás una sección dedicada exclusivamente a Python 🐍💬, donde podrás recibir y brindar apoyo, así como otras secciones que te pueden interesar. No pierdas esta oportunidad para sacar el **máximo provecho** de este curso. 🌟🤗 - -## **¿Tienes Más Dudas? 🤔❓** - -Si te preguntas qué requisitos necesitas, como hemos comentado, mira el [README](https://github.com/midudev/curso-python/blob/main/README.md) 📄🔗. Allí encontrarás enlaces a las clases, así sabrás cuántas clases hemos tenido. Además, en esas clases desde la primera explicamos los requisitos, configuración, instalación de Python, historia de Python y mucho más. También en el README te enseñamos cómo clonar o descargar todo el código de este repositorio 🖥️⬇️, y mucho más. - -¡Ayúdanos a mejorar! 🌟💬 Coméntanos tus dudas en las transmisiones de las próximas clases y tus sugerencias. Como podrás ver en el archivo llamado **preguntas_resueltas_aquí.md** 📄✨, leemos todas tus preguntas, por muy básicas que sean, y se te responderán. Así que si tienes alguna duda, ¡no dudes en comentarla! Y si tienes alguna sugerencia, curiosidad o si ya sabes algo de programación y quieres saber más, como la configuración de VSCode de Midudev 🖥️⚙️, atajos de teclado ⌨️, herramientas para depurar código en Python 🐍🔍, documentación oficial de Python 📚🖋️, o más recursos de aprendizaje 📖🚀, no dudes en mencionarlas durante las transmisiones de las futuras clases. Aunque no se te responda inmediatamente, seguramente se abordará en esta carpeta que has ingresado. 📁✅ - ---- - -✨ **¡Estamos emocionados de comenzar este viaje contigo!** Si tienes alguna pregunta o necesitas asistencia, no dudes en unirte a nuestra comunidad en [Discord](https://discord.com/invite/midudev) o visitar nuestra [página del curso](https://www.cursopython.dev/). 🎉🐍 +# **¡Bienvenido@ al Curso de Python! 🐍🚀** + +En esta sección, te guiaremos en todo lo que necesitas saber para comenzar tu **emocionante** viaje en el mundo de la programación con Python. No importa si nunca has programado antes, este curso comienza desde cero, respondiendo **TODAS** las preguntas que puedas tener. Te ayudaremos a resolver tus dudas de forma independiente, y esto lo podrás ver en el siguiente archivo llamado: **preguntas_resueltas_aquí.md**. 📄✨ + +## **Plataformas y Acceso al Curso 🌐🔓** + +### **Dónde Ver las Clases 📺** + +Las clases se transmitirán en vivo en [Twitch](https://www.twitch.tv/midudev) y permanecerán almacenadas allí. Por ahora, no se subirán a YouTube, pero en el futuro, una vez completadas todas las sesiones, estarán disponibles en dicha plataforma. + +Las clases se impartirán todos los **miércoles**, con una duración de **1 hora y media a 2 horas** como máximo. Este calendario se mantendrá al menos un mes y medio, es decir, hasta aproximadamente **marzo de 2025**. Posteriormente, podríamos ampliar el contenido hacia temas como Django, Inteligencia Artificial, entre otros, si vemos que el curso es bien recibido. Así que dale una estrella ⭐ a este repositorio y ¡compártelo con tus amigos! + +### **Recursos que Tendrás a tu Disposición 📚🔧** + +- **Academia de Midu:** ¡Sí, como lo lees! 🎉 Tenemos abierta la academia donde encontrarás una **gran cantidad** de cursos, incluyendo este mismo curso de Python. Aquí encontrarás mejoras en las explicaciones con código, por minuto, por tema, realizaremos proyectos, y quizás en un futuro certificados y muchas cosas más. Solo entra a [midu.dev](https://midu.dev/). 🚀 + +- **Nota:** Solo los suscriptores de Twitch tienen acceso gratuito a la academia. Si tu suscripción en [Twitch](https://www.twitch.tv/midudev) expira y no la renuevas, también se cerrará tu acceso a la academia. Y buenas noticias: no importa si eres suscriptor con sub regalada o con Prime, solo basta que tengas una suscripción en Twitch, te logueas con esa cuenta y tienes acceso a la academia. 👍✨ + +- **Temario - Página Oficial del Curso 📋⏳:** Si quieres ver todos los temas que abordaremos por el momento, visita el siguiente enlace. Además de mostrarte el temario, tiene cuentas regresivas y anuncios de la próxima clase, además de poder guardar el evento en Discord: [cursopython.dev](https://www.cursopython.dev/). 🗓️🔔 + +- **Repositorio de Código 💻📂:** + + Todo el código, ejercicios y materiales estarán disponibles en este [repositorio de GitHub](https://github.com/midudev/curso-python). 📂✨ Te recomendamos leer el archivo `README.md` 📖🔍 donde encontrarás enlaces a las clases y más información útil. Además, revisa la última modificación del repositorio 🕒🔄 para estar al tanto de las actualizaciones, como soluciones a ejercicios y mejoras en los comentarios. Por ejemplo, el archivo [01_basic](https://github.com/midudev/curso-python/tree/main/01_basic) fue actualizado una semana y media después de su primera versión. Próximamente, en cada archivo encontrarás enlaces directos al minuto exacto de la clase donde se aborda ese tema, facilitando así tu repaso rápido. ¡Mantente atento! 🚀🔗 + +## **Comunidad y Soporte 🤝💬** + +¿Quieres una comunidad que te ayude con tus dudas de forma **amigable**? ¿Que te ayude a resolver tus preguntas y a encontrar gente con la que colaborar en proyectos? Pues únete a nuestra **comunidad en Discord** [aquí](https://discord.com/invite/midudev) para resolver dudas, compartir conocimientos y colaborar con otros estudiantes. Dentro de Discord, encontrarás una sección dedicada exclusivamente a Python 🐍💬, donde podrás recibir y brindar apoyo, así como otras secciones que te pueden interesar. No pierdas esta oportunidad para sacar el **máximo provecho** de este curso. 🌟🤗 + +## **¿Tienes Más Dudas? 🤔❓** + +Si te preguntas qué requisitos necesitas, como hemos comentado, mira el [README](https://github.com/midudev/curso-python/blob/main/README.md) 📄🔗. Allí encontrarás enlaces a las clases, así sabrás cuántas clases hemos tenido. Además, en esas clases desde la primera explicamos los requisitos, configuración, instalación de Python, historia de Python y mucho más. También en el README te enseñamos cómo clonar o descargar todo el código de este repositorio 🖥️⬇️, y mucho más. + +¡Ayúdanos a mejorar! 🌟💬 Coméntanos tus dudas en las transmisiones de las próximas clases y tus sugerencias. Como podrás ver en el archivo llamado **preguntas_resueltas_aquí.md** 📄✨, leemos todas tus preguntas, por muy básicas que sean, y se te responderán. Así que si tienes alguna duda, ¡no dudes en comentarla! Y si tienes alguna sugerencia, curiosidad o si ya sabes algo de programación y quieres saber más, como la configuración de VSCode de Midudev 🖥️⚙️, atajos de teclado ⌨️, herramientas para depurar código en Python 🐍🔍, documentación oficial de Python 📚🖋️, o más recursos de aprendizaje 📖🚀, no dudes en mencionarlas durante las transmisiones de las futuras clases. Aunque no se te responda inmediatamente, seguramente se abordará en esta carpeta que has ingresado. 📁✅ + +--- + +✨ **¡Estamos emocionados de comenzar este viaje contigo!** Si tienes alguna pregunta o necesitas asistencia, no dudes en unirte a nuestra comunidad en [Discord](https://discord.com/invite/midudev) o visitar nuestra [página del curso](https://www.cursopython.dev/). 🎉🐍 diff --git "a/001_Abre_esta_carpeta/preguntas_resueltas_aqu\303\255.md" "b/001_Abre_esta_carpeta/preguntas_resueltas_aqu\303\255.md" index 5c455a3..da7fb2d 100644 --- "a/001_Abre_esta_carpeta/preguntas_resueltas_aqu\303\255.md" +++ "b/001_Abre_esta_carpeta/preguntas_resueltas_aqu\303\255.md" @@ -1,630 +1,630 @@ -# Dudas de Python ---- - -## Resuelve tus dudas de Python de forma rápida y sencilla - -Durante las transmisiones en vivo surgen numerosas preguntas que, por limitaciones de tiempo, no siempre podemos responder en el momento. Por esta razón, hemos creado este **repositorio de dudas**, donde recopilamos todas las preguntas realizadas en el chat durante las clases de Python. - -Reconocemos que hay personas que están iniciándose en la programación o que desconocen las mejores herramientas para buscar información de manera autónoma. ¡No te preocupes! Aquí te ayudamos a resolver tus dudas de manera eficiente. - ---- - -### Cómo buscar una pregunta rápidamente -Para encontrar una respuesta en esta sección, utiliza el buscador de tu navegador: - -- **Windows**: `Ctrl + F` -- **Mac**: `Command (⌘) + F` -- **Linux**: `Ctrl + F` - -Simplemente escribe una palabra clave relacionada con tu duda y accede a la información en segundos. - ---- - -### Antes de continuar, recuerda -Como programadores, es fundamental desarrollar la **habilidad de buscar soluciones por nosotros mismos**. Esto implica leer, investigar y formular preguntas de manera efectiva. A continuación, algunas herramientas clave para mejorar tu aprendizaje: - -- **Inteligencia Artificial**: Utiliza herramientas como [ChatGPT](https://chat.openai.com/) de manera responsable para obtener respuestas rápidas y explicaciones detalladas. -- **YouTube**: Busca tutoriales con frases como _"Cómo configurar mi terminal en VS Code en Windows"_. -- **Google (u otro buscador de tu preferencia)**: Escribe consultas específicas como _"Instalar Python en Windows paso a paso"_. - -**Otros recursos útiles**: -- [Documentación oficial de Python](https://docs.python.org/es/) -- [Stack Overflow: Preguntas y respuestas de programadores](https://stackoverflow.com/) - ---- - -En esta sección, encontrarás **preguntas y respuestas de las primeras clases**. Dado que son muchas, es imposible cubrirlas todas en las transmisiones en vivo. **Si no encuentras lo que buscas, utiliza las herramientas mencionadas anteriormente y continúa practicando.** Si observas algún error, infórmanos; estamos trabajando para mejorar la experiencia de este curso. - -¡Explora, aprende y sigue creciendo como programador! - -## Índice - -1. [Básica](#basica) -2. [Intermedia](#intermedia) - ---- - -## Básica - -### Dudas de las clases de Python [Curso Python de midudev](https://github.com/midudev/curso-python/tree/main/01_basic) - -1. **Pregunta:** ¿Cómo le hiciste para tener la terminal a la izquierda? - **Respuesta:** Lo explico en el siguiente enlace: [Video](https://www.twitch.tv/videos/2366925887?t=0h58m8s) - -2. **Pregunta:** ¿Qué versión de Python usaremos? ¿Podemos usar una versión anterior? - **Respuesta:** Sí, puedes usar una versión anterior, siempre y cuando no sea demasiado antigua, como las versiones anteriores a Python 3. Se recomienda utilizar la **última versión estable de Python**. Sin embargo, puedes continuar trabajando con la versión que tienes; si en algún momento encuentras algún error, puedes [actualizar Python](https://www.python.org/) desde su página oficial. - -3. **Pregunta:** ¿Cómo configuramos `Cmd + Enter` para ejecutar el código de Python en VS Code sin tener que hacer clic en ejecutar? - **Respuesta:** - 1. **Instala la extensión [Code Runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner)**. - 2. Siempre hay un ícono para compilar código que dice "Ejecutar". Al pasar el cursor sobre él, puedes ver si tiene un atajo de teclado. - 3. Te recomendamos ver el siguiente video: [Tutorial](https://youtu.be/rQ6JQxMio2Q?si=dT3ZS6bndqATu7-8). - 4. Según tu sistema operativo, puedes buscar más información en videos de YouTube o consultar una herramienta de inteligencia artificial. - -4. **Pregunta:** ¿Qué terminal usa midudev? - **Respuesta:** Midudev utiliza la **terminal de Warp**, que puedes encontrar [aquí](https://www.warp.dev/). En VS Code, puedes usar la terminal integrada, que puede ser `PowerShell`, `cmd`, `Git Bash` o `WSL` según la configuración. Para abrir tu terminal, consulta [este video](https://www.youtube.com/watch?v=gXVI3PxFajU). - -5. **Pregunta:** ¿Por qué se autocompletan los comentarios? - **Respuesta:** VS Code cuenta con funcionalidades de **autocompletado** y extensiones como **Python IntelliSense** que ayudan a completar automáticamente código y comentarios. Además, midudev utiliza un asistente llamado **Supermaven**, que puedes encontrar [aquí](https://supermaven.com/). - -6. **Pregunta:** No entendí cómo se abre la consola y se muestra el mensaje. - **Respuesta:** Consulta el siguiente [video](https://www.youtube.com/watch?v=xuuVY52sjdo). Si no funciona, puedes buscar más información en videos de YouTube o utilizar ChatGPT. - -7. **Pregunta:** Si tenemos Visual Studio, ¿podemos usar Python igual o es necesario usar VS Code? - **Respuesta:** Si te refieres a Visual Studio (el IDE de Microsoft), puedes usarlo para programar en Python. Sin embargo, **Visual Studio Code (VS Code)** es más ligero y está **recomendado para Python**. De todas formas, te dejamos un [enlace](https://youtu.be/oUwz2mc4BFA?si=ArsENSojSvSzf5ty) para que puedas usar Python en ese IDE. - -8. **Pregunta:** ¿Dónde se ve la configuración de Python? ¿De type checking en VS Code? - **Respuesta:** En VS Code, puedes configurar el type checking siguiendo las instrucciones que explico en el siguiente enlace: [video](https://www.twitch.tv/videos/2354087841?t=1h32m53s). Para acceder a las configuraciones: - 1. Abre VS Code y haz clic en el menú superior que dice Archivo. - 2. Selecciona Preferencias y luego Configuración. - -9. **Pregunta:** ¿Se puede tener muchas versiones de Python instaladas? - **Respuesta:** Sí, puedes tener varias versiones de Python instaladas y gestionarlas con herramientas como `pyenv`, `conda` o configurando correctamente las rutas de Python en tu sistema. Puedes buscar más información en videos de YouTube como [este](https://www.youtube.com/watch?v=aF0Ml39oRrE) o utilizar una herramienta de inteligencia artificial. - -10. **Pregunta:** ¿PIP o Conda? - **Respuesta:** Depende de tus necesidades: - - **`pip`**: Gestor de paquetes oficial de Python que funciona con el repositorio de PyPI. - - **`conda`**: Gestor de paquetes y entornos más avanzado, usado en ciencia de datos y desarrollo en Python. - -11. **Pregunta:** ¿Se pueden concatenar `end` y `sep` en `print()`? - **Respuesta:** Sí, ambos parámetros pueden combinarse en `print()`. - - **`sep`** define cómo se separan los valores. - - **`end`** define qué se imprime al final. - - **Ejemplo:** - ```python - print("Hola", "Mundo", sep=" ", end="!") - ``` - Esto imprimirá: `Hola Mundo!` - -12. **Pregunta:** Si utilizamos `"""`, ¿podemos imprimir muchas líneas con una sola cadena? - **Respuesta:** Sí, las triples comillas (`"""` o `'''`) permiten definir **cadenas multilínea**. - -13. **Pregunta:** ¿Se puede cambiar la terminal de VS Code para Python? - **Respuesta:** Sí, en `Archivo > Preferencias > Configuración`, busca `"terminal.integrated.defaultProfile"` y cambia la terminal predeterminada. Si tienes problemas, puedes consultar [ChatGPT](https://chatgpt.com/). - -14. **Pregunta:** ¿Se puede usar backticks en Python? - **Respuesta:** No, Python no utiliza backticks para definir cadenas como en JavaScript. En Python, se usan comillas simples (`'`), dobles (`"`), o triples (`'''` o `"""`). Para interpolación, se utilizan **f-strings** (`f""` o `f''`). - -15. **Pregunta:** ¿Qué otros parámetros tiene `print()`? - **Respuesta:** Algunos parámetros útiles son: - - **`sep`**: Define el separador entre valores. - - **`end`**: Define lo que se imprime al final de la línea. - - **`file`**: Permite escribir en un archivo en lugar de la consola. - - **`flush`**: Si es `True`, fuerza la impresión inmediata en la salida. - -16. **Pregunta:** ¿`end` permite continuar en la misma línea si el `print` es demasiado largo? - **Respuesta:** Sí, `end` permite que el siguiente `print()` continúe en la misma línea sin salto de línea. - - **Pregunta adicional:** ¿Por qué no escribir directamente en la misma línea? - **Respuesta adicional:** Usar los parámetros `end` y `sep` en `print()` permite **controlar cómo se muestran los valores** sin necesidad de escribir todo manualmente en una sola línea. - - **Ejemplos:** - - **Barra de progreso:** - ```python - import time - - for i in range(1, 6): - print(f"\rCargando: {i * 20}%", end="", flush=True) - time.sleep(0.5) - ``` - - - **Formato con separadores:** - ```python - print("Python", "JavaScript", "C++", sep=" | ") - # Output: Python | JavaScript | C++ - ``` - -17. **Pregunta:** Si no quiero que haya espacio entre valores, ¿qué hago? - **Respuesta:** Usa `sep=""` en `print()`, por ejemplo: - ```python - print("Hola", "Mundo", sep="") - ``` - Imprimirá: `HolaMundo`. - -18. **Pregunta:** ¿Podemos pasar variables a nuestro `print()`? ¿Cuál es la diferencia entre método y función? - **Respuesta:** - - **Sí**, puedes pasar variables en `print()`. - ```python - nombre = "Juan" - print("Hola,", nombre) - ``` - - **Método vs Función:** - - Un **método** es una función asociada a un objeto. - - Una **función** es un bloque de código independiente. - - **Ejemplo:** - ```python - # Función independiente - print("Hola", "Mundo", sep=", ") # Output: Hola, Mundo - - # Método de un objeto - lista = [1, 2, 3] - lista.append(4) # append() es un método de listas - print(lista) # Output: [1, 2, 3, 4] - ``` - Aquí, `print()` es una **función**, mientras que `.append()` es un **método** de la lista `lista`. - -19. **Pregunta:** ¿Existe la función `printF` como en Groovy? - **Respuesta:** No existe `printF` en Python, pero puedes usar **f-strings** para formatear texto: - ```python - nombre = "Juan" - print(f"Hola, {nombre}") - ``` - -20. **Pregunta:** ¿En algunos casos se pueden usar backticks? - **Respuesta:** No, en Python los backticks no se usan como en JavaScript. En su lugar, se utilizan **f-strings** (`f""`) para interpolación y **comillas triples** (`"""` o `'''`) para cadenas multilínea. - -21. **Pregunta:** ¿Cuál es la diferencia entre comillas dobles y simples? - **Respuesta:** No hay diferencia funcional, pero: - - Usa `"` cuando la cadena contiene `'`. - - Usa `'` cuando la cadena contiene `"`. - - Para cadenas multilínea, usa `"""` o `'''`. - -22. **Pregunta:** ¿Se puede colorear la salida? ¿Tiene alguna propiedad de error/warning similar a `console.log()`? - **Respuesta:** `print()` por sí solo no colorea, pero puedes usar **`colorama`**: - ```python - from colorama import Fore - print(Fore.RED + "Esto es rojo") - ``` - -23. **Pregunta:** ¿Cómo se manejan los caracteres especiales (tildes en las cadenas, por ejemplo)? - **Respuesta:** Python maneja **UTF-8** por defecto, así que puedes usar tildes sin problemas: - ```python - print("¡Hola, cómo estás!") - ``` - -24. **Pregunta:** ¿Realmente tiene uso? - **Respuesta:** Sí, los parámetros `sep` y `end` en `print()` son muy útiles para controlar el formato de la salida sin concatenar manualmente. - - **Ejemplo útil: Registro en tiempo real** - ```python - import time - - print("Progreso:", end=" ") - for i in range(1, 6): - print(f"{i * 20}%", end=" ", flush=True) - time.sleep(0.5) - - # Output en la misma línea: Progreso: 20% 40% 60% 80% 100% - ``` - -25. **Pregunta:** ¿Para imprimir una variable, simplemente se coloca después de las comillas? - **Respuesta:** No, debes usar una coma o **f-strings**: - ```python - edad = 25 - print("Mi edad es", edad) # O usando f-string: - print(f"Mi edad es {edad}") - ``` - -26. **Pregunta:** ¿También se pueden usar números en `print()`? - **Respuesta:** Sí, puedes imprimir números directamente: - ```python - print(42) - ``` - -27. **Pregunta:** ¿Existen templates en Python? - **Respuesta:** Sí, puedes usar **f-strings** o **`str.format()`**. - -28. **Pregunta:** ¿Se pueden usar valores `chr` como parámetros? - **Respuesta:** Sí, `chr()` convierte números en caracteres Unicode: - ```python - print(chr(65)) # Imprime 'A' - ``` - -29. **Pregunta:** ¿Hay tipos y constructores para los tipos aquí también? - **Respuesta:** Sí, Python tiene tipos y constructores como `int()`, `float()`, `str()`, etc. - -30. **Pregunta:** ¿Cómo ver la información de un método? - **Respuesta:** Usa `help()` o `dir()`: - ```python - help(print) - ``` - O simplemente pasa el cursor sobre la función `print()` o la que te interese en tu editor de código. - -31. **Pregunta:** ¿Cómo hago para que el resultado aparezca en la terminal? - **Respuesta:** Consulta [este video](https://www.youtube.com/watch?v=xuuVY52sjdo) o, en caso de no funcionar, utiliza [ChatGPT](https://chatgpt.com/). - -32. **Pregunta:** ¿Por qué se usa "def" para definir funciones? ¿De qué significa? - **Respuesta:** `def` proviene de **"define"** en inglés y se utiliza para definir funciones en Python. - -### Más Dudas - -1. **Pregunta:** No necesitas inicializarlas, solo nombras y asignas, ¿no? - **Respuesta:** Correcto, en Python no necesitas declarar o inicializar variables antes de usarlas. Simplemente asignas un valor a un nombre de variable. - ```python - x = 10 - y = "Hola" - ``` - -2. **Pregunta:** ¿No crea confusión que se reemplace la variable? - **Respuesta:** Puede causar confusión si reutilizas nombres de variables de manera inconsistente. Es una buena práctica usar nombres descriptivos y evitar reutilizar nombres para diferentes propósitos en el mismo ámbito. - -3. **Pregunta:** ¿Tipado fuerte y tipado dinámico? - **Respuesta:** Python es un lenguaje **tipado dinámico** y **tipado fuerte**. - - **Tipado dinámico:** No necesitas declarar el tipo de una variable, el tipo se determina en tiempo de ejecución. - - **Tipado fuerte:** Las operaciones entre tipos incompatibles (como sumar un `str` y un `int`) no se realizan automáticamente y generan errores. - -4. **Pregunta:** ¿Y qué ventaja da eso? - **Respuesta:** - - **Tipado dinámico:** Facilita la escritura de código más rápido y flexible, sin necesidad de declarar tipos explícitamente. - - **Tipado fuerte:** Previene errores sutiles al evitar conversiones implícitas de tipos que podrían llevar a comportamientos inesperados. - -5. **Pregunta:** ¿Afecta la indentación al tipado? - **Respuesta:** La indentación en Python no afecta el tipado, pero es crucial para definir bloques de código y estructuras de control como bucles y condicionales. Una indentación incorrecta puede causar errores de sintaxis. - -6. **Pregunta:** Si cambio el valor de una variable a un tipo diferente y hago `print`, ¿debería causar un error? - **Respuesta:** No debería causar error. En Python, puedes reasignar variables a diferentes tipos sin problemas. - ```python - x = "Hola" - x = 10 - print(x) # Output: 10 - ``` - -7. **Pregunta:** ¿Se puede forzar un tipado estático en Python? - **Respuesta:** Python es dinámico por naturaleza, pero puedes usar **anotaciones de tipo** para indicar tipos de variables y funciones. Herramientas como **mypy** pueden verificar tipos estáticamente, pero esto es opcional y no cambia el comportamiento en tiempo de ejecución. - - **Ejemplo:** - ```python - def suma(a: int, b: int) -> int: - return a + b - ``` - -8. **Pregunta:** ¿Por qué no se recomienda usar camelCase u otros estilos de nomenclatura en Python y solo se usa snake_case como convención de nombres? - **Respuesta:** - En Python, se prefiere usar **snake_case** para variables, funciones y métodos siguiendo las guías de estilo [PEP 8](https://pep8.org/). Esto mejora la **legibilidad** y **consistencia** del código dentro de la comunidad de Python. - -9. **Pregunta:** ¿Y el camelCase? ¿No sirve? ¿Se usa camelCase? - **Respuesta:** En Python, la convención es usar **snake_case** para variables y funciones, y **CamelCase** para nombres de clases. Aunque puedes usar camelCase, no es la convención estándar y puede disminuir la legibilidad para otros desarrolladores. - - **Ejemplo:** - ```python - # Convención de Python - nombre_variable = "valor" - - class MiClase: - pass - ``` - -10. **Pregunta:** ¿Cómo obtuviste la lista de palabras reservadas? - **Respuesta:** Si te refieres a las palabras reservadas, puedes obtener una lista usando el módulo `keyword`. - ```python - import keyword - print(keyword.kwlist) - ``` - -11. **Pregunta:** ¿Cómo se llama el proceso de convertir un tipo de dato a otro, parsear? - **Respuesta:** Cuando conviertes un tipo de dato a otro, se le llama **casting** o **conversión de tipos**. El término "parsear" generalmente se refiere a analizar una cadena de texto para extraer información o convertirla en otra estructura de datos. - -12. **Pregunta:** ¿Por qué concatenar con `+` y no con comas? - **Respuesta:** Al usar el operador `+` para concatenar cadenas (`str`), estás uniendo los contenidos de las cadenas directamente. Usar comas en `print` separa los argumentos con espacios por defecto y no requiere que conviertas tipos de datos a cadenas. - - **Ejemplo:** - ```python - a = "Hola" - b = "Mundo" - print(a + b) # Output: HolaMundo - print(a, b) # Output: Hola Mundo - ``` - -13. **Pregunta:** ¿Qué sucede si convierto `None` a booleano con `bool(None)`? - **Respuesta:** Convertir `None` a booleano usando `bool(None)` devuelve `False`. - ```python - print(bool(None)) # Output: False - ``` - -14. **Pregunta:** ¿Cómo se manejan los números hexadecimales? - **Respuesta:** En Python, puedes trabajar con números hexadecimales utilizando el prefijo `0x` o `0X`. Puedes convertir hexadecimales a enteros y viceversa. - - **Ejemplo:** - ```python - hex_num = 0x1A # 26 en decimal - print(hex_num) # Output: 26 - print(hex(hex_num)) # Output: '0x1a' - ``` - ---- - -## Intermedia - -### Más dudas - -1. **Pregunta:** ¿Existe algún límite para números enteros? Si usan 32, 64 bits, ¿habrá algún límite? - **Respuesta:** - En Python, los enteros (`int`) tienen **precisión ilimitada**, ya que Python ajusta automáticamente el tamaño según sea necesario. A diferencia de otros lenguajes que limitan los enteros a 32 o 64 bits, en Python no hay un límite práctico más allá de la memoria disponible en el sistema. - - **Ejemplos relacionados:** - - - **Precisión de números flotantes:** - ```python - print(0.1 + 0.2 == 0.3) # Output: False - ``` - Los números de punto flotante (`float`) en Python pueden tener pequeñas imprecisiones debido a su representación binaria. - -2. **Pregunta:** ¿Existe un linter para Python? - **Respuesta:** Sí, existen varios linters para Python que ayudan a mantener un código limpio y libre de errores. Uno de ellos es: - - **[Pylint](https://marketplace.visualstudio.com/items?itemName=ms-python.pylint):** Analiza el código en busca de errores y mejora la calidad del código. - -3. **Pregunta:** ¿El número complejo es equivalente a los doubles? - **Respuesta:** No, los números complejos y los números de punto flotante (`float` o `double`) son tipos de datos diferentes en Python. - - **Números de punto flotante (`float`):** Representan números reales con decimales. - - **Números complejos (`complex`):** Tienen una parte real y una parte imaginaria, representados como `a + bj`. - - **Ejemplo:** - ```python - real = 3.14 # float - complejo = 2 + 3j # complex - ``` - -4. **Pregunta:** ¿Qué pasa si sumo un string y un entero `"1" + 1`? - **Respuesta:** Intentar sumar un string y un entero directamente (`"1" + 1`) resultará en un error de tipo (`TypeError`) en Python, ya que no se pueden concatenar directamente diferentes tipos de datos. - - **Ejemplo:** - ```python - "1" + 1 # TypeError: can only concatenate str (not "int") to str - ``` - - **Solución:** Convertir el entero a string o viceversa según la necesidad. - ```python - "1" + str(1) # Resultado: "11" - str(1) + "1" # Resultado: "11" - 1 + int("1") # Resultado: 2 - ``` - -5. **Pregunta:** ¿No existen valores "truthy" o "falsy"? - **Respuesta:** En Python, sí existen valores "truthy" y "falsy". Estos determinan cómo se evalúan las expresiones en contextos booleanos, como en sentencias `if`. - - - **Valores "falsy":** Se consideran como `False` en contextos booleanos. - - `None` - - `False` - - Cero de cualquier tipo (`0`, `0.0`, `0j`, etc.) - - Secuencias y colecciones vacías (`""`, `[]`, `{}`, `()`, etc.) - - - **Valores "truthy":** Todos los demás valores que no son "falsy". - - **Ejemplo:** - ```python - if []: - print("Truthy") - else: - print("Falsy") # Se imprimirá "Falsy" - - if [1, 2, 3]: - print("Truthy") # Se imprimirá "Truthy" - ``` - -6. **Pregunta:** ¿Qué pasa si hago `print(True * False)`? - **Respuesta:** En Python, `True` se interpreta como `1` y `False` como `0`. Al multiplicarlos: - ```python - print(True * False) # Resultado: 0 - ``` - -7. **Pregunta:** ¿El tipo complejo solo funciona con la letra "j"? - **Respuesta:** Sí, en Python, la unidad imaginaria se representa con la letra minúscula `j` o `J`. No se usan otras letras para denotar la parte imaginaria. - - **Ejemplo:** - ```python - z1 = 3 + 4j - z2 = 5 - 2J - ``` - -8. **Pregunta:** ¿Los booleanos siempre están capitalizados? - **Respuesta:** Sí, en Python los valores booleanos se escriben con la primera letra en mayúscula: - - `True` - - `False` - - Es importante respetar la capitalización, ya que `true` y `false` en minúsculas no son reconocidos como booleanos y resultarán en un error. - ```python - print(True) # Correcto - print(true) # Error - ``` - -9. **Pregunta:** ¿Qué sucede si uso `1 > 2j`? - **Respuesta:** Intentar comparar un número entero con un número complejo (`1 > 2j`) resultará en un error de tipo (`TypeError`) en Python, ya que no hay una definición clara para comparar estos tipos. - - **Ejemplo:** - ```python - 1 > 2j # TypeError: '>' not supported between instances of 'int' and 'complex' - ``` - -10. **Pregunta:** ¿Para qué sirve el `None`? - **Respuesta:** `None` es un objeto especial en Python que representa la ausencia de un valor o un valor nulo. Se utiliza comúnmente para: - - Indicar que una variable no tiene un valor asignado. - - Funciones que no retornan explícitamente un valor retornan `None` por defecto. - - Parámetros por defecto en funciones. - - **Ejemplo:** - ```python - def sin_retorno(): - pass - - resultado = sin_retorno() - print(resultado) # Output: None - ``` - -11. **Pregunta:** ¿Para qué se usa el `NoneType`? - **Respuesta:** `NoneType` es el tipo de dato de `None`. Se utiliza principalmente para: - - Verificar si una variable es `None`. - - Tipar funciones que pueden retornar `None`. - - **Ejemplo:** - ```python - x = None - if isinstance(x, type(None)): - print("x es None") - ``` - -12. **Pregunta:** ¿Cómo comento un párrafo completo? - **Respuesta:** En Python, no hay una sintaxis específica para comentarios multilínea como en otros lenguajes. Sin embargo, puedes utilizar comillas triples (`'''` o `"""`) para crear cadenas de texto que no se asignan a ninguna variable, lo que efectivamente actúa como comentarios. - - **Ejemplo:** - ```python - """ - Este es un comentario - de múltiples líneas - """ - ``` - - También puedes usar el carácter `#` al inicio de cada línea: - ```python - # Este es un comentario - # de múltiples líneas - ``` - -13. **Pregunta:** ¿`None` es igual a `null`? ¿Qué da `"" == None`? - **Respuesta:** En Python, `None` es similar a `null` en otros lenguajes, representando la ausencia de valor. Sin embargo, no es lo mismo que una cadena vacía `""`. - - - **Comparación:** - ```python - None == None # True - "" == None # False - ``` - - **Explicación:** `None` representa la ausencia de un valor, mientras que `""` es una cadena vacía, que es un valor válido. - -14. **Pregunta:** ¿Existe `null` en Python? - **Respuesta:** En Python, no existe `null`. En su lugar, se utiliza `None` para representar la ausencia de valor. - -15. **Pregunta:** ¿Un caso práctico para usar `NoneType` en un proyecto? - **Respuesta:** Un caso común es cuando una función puede no retornar un valor significativo y quieres indicar explícitamente que no hay resultado. - - **Ejemplo:** - ```python - def buscar_usuario(usuario_id): - usuario = base_de_datos.obtener(usuario_id) - if not usuario: - return None - return usuario - - resultado = buscar_usuario(10) - if resultado is None: - print("Usuario no encontrado") - else: - print("Usuario encontrado:", resultado) - ``` - -16. **Pregunta:** ¿"none" indica ausencia de parámetro o ausencia de valor? - **Respuesta:** En Python, `None` (con mayúscula) se utiliza para indicar la ausencia de un valor. Usar la cadena `"none"` (en minúsculas) es simplemente una cadena de texto y no tiene el mismo significado que `None`. - - **Ejemplo:** - ```python - def funcion(param=None): - if param is None: - print("No se proporcionó un parámetro") - else: - print(f"Parametro: {param}") - - funcion() # Output: No se proporcionó un parámetro - funcion("none") # Output: Parametro: none - ``` - -17. **Pregunta:** ¿`NoneType` es como `null`? - **Respuesta:** Sí, en Python, `NoneType` es el tipo de dato de `None`, que es equivalente a `null` en otros lenguajes. Representa la ausencia de un valor. - -18. **Pregunta:** ¿Se usa `None` frecuentemente en sentencias `if`? - **Respuesta:** Sí, es común utilizar `None` en sentencias `if` para verificar si una variable tiene un valor asignado o no. - - **Ejemplo:** - ```python - usuario = obtener_usuario(id_usuario) - if usuario is None: - print("Usuario no encontrado") - else: - print("Usuario:", usuario) - ``` - -19. **Pregunta:** ¿Se usan backticks al usar `print` en Python? - **Respuesta:** No, en Python los backticks no se utilizan para formatear salidas en `print`. Para la interpolación de cadenas, se usan **f-strings** (`f""`), comillas simples (`'`), dobles (`"`), o comillas triples (`'''` o `"""`). - - **Ejemplo con f-strings:** - ```python - nombre = "Juan" - print(f"Hola, {nombre}!") # Output: Hola, Juan! - ``` - -20. **Pregunta:** ¿Para qué sirve `None` en el contexto de usuarios sin datos en su cuenta? - **Respuesta:** Usar `None` es útil para representar la ausencia de datos, como en el caso de un usuario que no tiene información registrada aún. - - **Ejemplo:** - ```python - class Usuario: - def __init__(self, nombre, edad=None): - self.nombre = nombre - self.edad = edad - - nuevo_usuario = Usuario("Ana") - if nuevo_usuario.edad is None: - print("Edad no especificada") - ``` - -21. **Pregunta:** ¿Cuál es la diferencia entre `double` y `float` en Python? - **Respuesta:** En Python, no existen los tipos `double` y `float` como en otros lenguajes. Python utiliza el tipo `float` para representar números de punto flotante, que generalmente corresponden a los `double` de precisión doble en otros lenguajes. - - **Ejemplo:** - ```python - numero = 3.141592653589793 # float en Python, equivalente a double en otros lenguajes - ``` - -22. **Pregunta:** ¿Qué tipo de dato usar para trabajar con dinero debido a la precisión? - **Respuesta:** Para manejar dinero y evitar problemas de precisión con números de punto flotante, es recomendable usar el módulo `decimal` de Python, que ofrece aritmética de punto decimal con precisión exacta. - - **Ejemplo:** - ```python - from decimal import Decimal - - precio = Decimal('19.99') - impuesto = Decimal('0.07') - total = precio + (precio * impuesto) - print(total) # Output: 21.39 - ``` - -23. **Pregunta:** ¿Qué sucede si hago `print(print("Hola"))`? - **Respuesta:** En Python, la función `print()` retorna `None`. Si haces un `print` de un `print`, se ejecutará el primer `print` mostrando el contenido, y luego el segundo `print` mostrará `None`. - - **Ejemplo:** - ```python - resultado = print("Hola Mundo") # Output: Hola Mundo - print(resultado) # Output: None - ``` - -24. **Pregunta:** ¿Se pueden agregar comas en el `float`? - **Respuesta:** Si te refieres a formatear números de punto flotante con comas como separadores de miles, sí, se puede hacer utilizando formateo de cadenas. - - **Ejemplo usando f-strings:** - ```python - numero = 1234567.89 - print(f"{numero:,}") # Output: 1,234,567.89 - ``` - - **Ejemplo usando `format`:** - ```python - numero = 1234567.89 - print("{:,}".format(numero)) # Output: 1,234,567.89 - ``` - - **Nota:** El separador de miles por defecto es la coma `,`. Si necesitas otro separador, puedes especificarlo: - ```python - numero = 1234567.89 - print(f"{numero:_}") # Output: 1_234_567.89 - ``` - ---- +# Dudas de Python +--- + +## Resuelve tus dudas de Python de forma rápida y sencilla + +Durante las transmisiones en vivo surgen numerosas preguntas que, por limitaciones de tiempo, no siempre podemos responder en el momento. Por esta razón, hemos creado este **repositorio de dudas**, donde recopilamos todas las preguntas realizadas en el chat durante las clases de Python. + +Reconocemos que hay personas que están iniciándose en la programación o que desconocen las mejores herramientas para buscar información de manera autónoma. ¡No te preocupes! Aquí te ayudamos a resolver tus dudas de manera eficiente. + +--- + +### Cómo buscar una pregunta rápidamente +Para encontrar una respuesta en esta sección, utiliza el buscador de tu navegador: + +- **Windows**: `Ctrl + F` +- **Mac**: `Command (⌘) + F` +- **Linux**: `Ctrl + F` + +Simplemente escribe una palabra clave relacionada con tu duda y accede a la información en segundos. + +--- + +### Antes de continuar, recuerda +Como programadores, es fundamental desarrollar la **habilidad de buscar soluciones por nosotros mismos**. Esto implica leer, investigar y formular preguntas de manera efectiva. A continuación, algunas herramientas clave para mejorar tu aprendizaje: + +- **Inteligencia Artificial**: Utiliza herramientas como [ChatGPT](https://chat.openai.com/) de manera responsable para obtener respuestas rápidas y explicaciones detalladas. +- **YouTube**: Busca tutoriales con frases como _"Cómo configurar mi terminal en VS Code en Windows"_. +- **Google (u otro buscador de tu preferencia)**: Escribe consultas específicas como _"Instalar Python en Windows paso a paso"_. + +**Otros recursos útiles**: +- [Documentación oficial de Python](https://docs.python.org/es/) +- [Stack Overflow: Preguntas y respuestas de programadores](https://stackoverflow.com/) + +--- + +En esta sección, encontrarás **preguntas y respuestas de las primeras clases**. Dado que son muchas, es imposible cubrirlas todas en las transmisiones en vivo. **Si no encuentras lo que buscas, utiliza las herramientas mencionadas anteriormente y continúa practicando.** Si observas algún error, infórmanos; estamos trabajando para mejorar la experiencia de este curso. + +¡Explora, aprende y sigue creciendo como programador! + +## Índice + +1. [Básica](#basica) +2. [Intermedia](#intermedia) + +--- + +## Básica + +### Dudas de las clases de Python [Curso Python de midudev](https://github.com/midudev/curso-python/tree/main/01_basic) + +1. **Pregunta:** ¿Cómo le hiciste para tener la terminal a la izquierda? + **Respuesta:** Lo explico en el siguiente enlace: [Video](https://www.twitch.tv/videos/2366925887?t=0h58m8s) + +2. **Pregunta:** ¿Qué versión de Python usaremos? ¿Podemos usar una versión anterior? + **Respuesta:** Sí, puedes usar una versión anterior, siempre y cuando no sea demasiado antigua, como las versiones anteriores a Python 3. Se recomienda utilizar la **última versión estable de Python**. Sin embargo, puedes continuar trabajando con la versión que tienes; si en algún momento encuentras algún error, puedes [actualizar Python](https://www.python.org/) desde su página oficial. + +3. **Pregunta:** ¿Cómo configuramos `Cmd + Enter` para ejecutar el código de Python en VS Code sin tener que hacer clic en ejecutar? + **Respuesta:** + 1. **Instala la extensión [Code Runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner)**. + 2. Siempre hay un ícono para compilar código que dice "Ejecutar". Al pasar el cursor sobre él, puedes ver si tiene un atajo de teclado. + 3. Te recomendamos ver el siguiente video: [Tutorial](https://youtu.be/rQ6JQxMio2Q?si=dT3ZS6bndqATu7-8). + 4. Según tu sistema operativo, puedes buscar más información en videos de YouTube o consultar una herramienta de inteligencia artificial. + +4. **Pregunta:** ¿Qué terminal usa midudev? + **Respuesta:** Midudev utiliza la **terminal de Warp**, que puedes encontrar [aquí](https://www.warp.dev/). En VS Code, puedes usar la terminal integrada, que puede ser `PowerShell`, `cmd`, `Git Bash` o `WSL` según la configuración. Para abrir tu terminal, consulta [este video](https://www.youtube.com/watch?v=gXVI3PxFajU). + +5. **Pregunta:** ¿Por qué se autocompletan los comentarios? + **Respuesta:** VS Code cuenta con funcionalidades de **autocompletado** y extensiones como **Python IntelliSense** que ayudan a completar automáticamente código y comentarios. Además, midudev utiliza un asistente llamado **Supermaven**, que puedes encontrar [aquí](https://supermaven.com/). + +6. **Pregunta:** No entendí cómo se abre la consola y se muestra el mensaje. + **Respuesta:** Consulta el siguiente [video](https://www.youtube.com/watch?v=xuuVY52sjdo). Si no funciona, puedes buscar más información en videos de YouTube o utilizar ChatGPT. + +7. **Pregunta:** Si tenemos Visual Studio, ¿podemos usar Python igual o es necesario usar VS Code? + **Respuesta:** Si te refieres a Visual Studio (el IDE de Microsoft), puedes usarlo para programar en Python. Sin embargo, **Visual Studio Code (VS Code)** es más ligero y está **recomendado para Python**. De todas formas, te dejamos un [enlace](https://youtu.be/oUwz2mc4BFA?si=ArsENSojSvSzf5ty) para que puedas usar Python en ese IDE. + +8. **Pregunta:** ¿Dónde se ve la configuración de Python? ¿De type checking en VS Code? + **Respuesta:** En VS Code, puedes configurar el type checking siguiendo las instrucciones que explico en el siguiente enlace: [video](https://www.twitch.tv/videos/2354087841?t=1h32m53s). Para acceder a las configuraciones: + 1. Abre VS Code y haz clic en el menú superior que dice Archivo. + 2. Selecciona Preferencias y luego Configuración. + +9. **Pregunta:** ¿Se puede tener muchas versiones de Python instaladas? + **Respuesta:** Sí, puedes tener varias versiones de Python instaladas y gestionarlas con herramientas como `pyenv`, `conda` o configurando correctamente las rutas de Python en tu sistema. Puedes buscar más información en videos de YouTube como [este](https://www.youtube.com/watch?v=aF0Ml39oRrE) o utilizar una herramienta de inteligencia artificial. + +10. **Pregunta:** ¿PIP o Conda? + **Respuesta:** Depende de tus necesidades: + - **`pip`**: Gestor de paquetes oficial de Python que funciona con el repositorio de PyPI. + - **`conda`**: Gestor de paquetes y entornos más avanzado, usado en ciencia de datos y desarrollo en Python. + +11. **Pregunta:** ¿Se pueden concatenar `end` y `sep` en `print()`? + **Respuesta:** Sí, ambos parámetros pueden combinarse en `print()`. + - **`sep`** define cómo se separan los valores. + - **`end`** define qué se imprime al final. + + **Ejemplo:** + ```python + print("Hola", "Mundo", sep=" ", end="!") + ``` + Esto imprimirá: `Hola Mundo!` + +12. **Pregunta:** Si utilizamos `"""`, ¿podemos imprimir muchas líneas con una sola cadena? + **Respuesta:** Sí, las triples comillas (`"""` o `'''`) permiten definir **cadenas multilínea**. + +13. **Pregunta:** ¿Se puede cambiar la terminal de VS Code para Python? + **Respuesta:** Sí, en `Archivo > Preferencias > Configuración`, busca `"terminal.integrated.defaultProfile"` y cambia la terminal predeterminada. Si tienes problemas, puedes consultar [ChatGPT](https://chatgpt.com/). + +14. **Pregunta:** ¿Se puede usar backticks en Python? + **Respuesta:** No, Python no utiliza backticks para definir cadenas como en JavaScript. En Python, se usan comillas simples (`'`), dobles (`"`), o triples (`'''` o `"""`). Para interpolación, se utilizan **f-strings** (`f""` o `f''`). + +15. **Pregunta:** ¿Qué otros parámetros tiene `print()`? + **Respuesta:** Algunos parámetros útiles son: + - **`sep`**: Define el separador entre valores. + - **`end`**: Define lo que se imprime al final de la línea. + - **`file`**: Permite escribir en un archivo en lugar de la consola. + - **`flush`**: Si es `True`, fuerza la impresión inmediata en la salida. + +16. **Pregunta:** ¿`end` permite continuar en la misma línea si el `print` es demasiado largo? + **Respuesta:** Sí, `end` permite que el siguiente `print()` continúe en la misma línea sin salto de línea. + + **Pregunta adicional:** ¿Por qué no escribir directamente en la misma línea? + **Respuesta adicional:** Usar los parámetros `end` y `sep` en `print()` permite **controlar cómo se muestran los valores** sin necesidad de escribir todo manualmente en una sola línea. + + **Ejemplos:** + - **Barra de progreso:** + ```python + import time + + for i in range(1, 6): + print(f"\rCargando: {i * 20}%", end="", flush=True) + time.sleep(0.5) + ``` + + - **Formato con separadores:** + ```python + print("Python", "JavaScript", "C++", sep=" | ") + # Output: Python | JavaScript | C++ + ``` + +17. **Pregunta:** Si no quiero que haya espacio entre valores, ¿qué hago? + **Respuesta:** Usa `sep=""` en `print()`, por ejemplo: + ```python + print("Hola", "Mundo", sep="") + ``` + Imprimirá: `HolaMundo`. + +18. **Pregunta:** ¿Podemos pasar variables a nuestro `print()`? ¿Cuál es la diferencia entre método y función? + **Respuesta:** + - **Sí**, puedes pasar variables en `print()`. + ```python + nombre = "Juan" + print("Hola,", nombre) + ``` + - **Método vs Función:** + - Un **método** es una función asociada a un objeto. + - Una **función** es un bloque de código independiente. + + **Ejemplo:** + ```python + # Función independiente + print("Hola", "Mundo", sep=", ") # Output: Hola, Mundo + + # Método de un objeto + lista = [1, 2, 3] + lista.append(4) # append() es un método de listas + print(lista) # Output: [1, 2, 3, 4] + ``` + Aquí, `print()` es una **función**, mientras que `.append()` es un **método** de la lista `lista`. + +19. **Pregunta:** ¿Existe la función `printF` como en Groovy? + **Respuesta:** No existe `printF` en Python, pero puedes usar **f-strings** para formatear texto: + ```python + nombre = "Juan" + print(f"Hola, {nombre}") + ``` + +20. **Pregunta:** ¿En algunos casos se pueden usar backticks? + **Respuesta:** No, en Python los backticks no se usan como en JavaScript. En su lugar, se utilizan **f-strings** (`f""`) para interpolación y **comillas triples** (`"""` o `'''`) para cadenas multilínea. + +21. **Pregunta:** ¿Cuál es la diferencia entre comillas dobles y simples? + **Respuesta:** No hay diferencia funcional, pero: + - Usa `"` cuando la cadena contiene `'`. + - Usa `'` cuando la cadena contiene `"`. + - Para cadenas multilínea, usa `"""` o `'''`. + +22. **Pregunta:** ¿Se puede colorear la salida? ¿Tiene alguna propiedad de error/warning similar a `console.log()`? + **Respuesta:** `print()` por sí solo no colorea, pero puedes usar **`colorama`**: + ```python + from colorama import Fore + print(Fore.RED + "Esto es rojo") + ``` + +23. **Pregunta:** ¿Cómo se manejan los caracteres especiales (tildes en las cadenas, por ejemplo)? + **Respuesta:** Python maneja **UTF-8** por defecto, así que puedes usar tildes sin problemas: + ```python + print("¡Hola, cómo estás!") + ``` + +24. **Pregunta:** ¿Realmente tiene uso? + **Respuesta:** Sí, los parámetros `sep` y `end` en `print()` son muy útiles para controlar el formato de la salida sin concatenar manualmente. + + **Ejemplo útil: Registro en tiempo real** + ```python + import time + + print("Progreso:", end=" ") + for i in range(1, 6): + print(f"{i * 20}%", end=" ", flush=True) + time.sleep(0.5) + + # Output en la misma línea: Progreso: 20% 40% 60% 80% 100% + ``` + +25. **Pregunta:** ¿Para imprimir una variable, simplemente se coloca después de las comillas? + **Respuesta:** No, debes usar una coma o **f-strings**: + ```python + edad = 25 + print("Mi edad es", edad) # O usando f-string: + print(f"Mi edad es {edad}") + ``` + +26. **Pregunta:** ¿También se pueden usar números en `print()`? + **Respuesta:** Sí, puedes imprimir números directamente: + ```python + print(42) + ``` + +27. **Pregunta:** ¿Existen templates en Python? + **Respuesta:** Sí, puedes usar **f-strings** o **`str.format()`**. + +28. **Pregunta:** ¿Se pueden usar valores `chr` como parámetros? + **Respuesta:** Sí, `chr()` convierte números en caracteres Unicode: + ```python + print(chr(65)) # Imprime 'A' + ``` + +29. **Pregunta:** ¿Hay tipos y constructores para los tipos aquí también? + **Respuesta:** Sí, Python tiene tipos y constructores como `int()`, `float()`, `str()`, etc. + +30. **Pregunta:** ¿Cómo ver la información de un método? + **Respuesta:** Usa `help()` o `dir()`: + ```python + help(print) + ``` + O simplemente pasa el cursor sobre la función `print()` o la que te interese en tu editor de código. + +31. **Pregunta:** ¿Cómo hago para que el resultado aparezca en la terminal? + **Respuesta:** Consulta [este video](https://www.youtube.com/watch?v=xuuVY52sjdo) o, en caso de no funcionar, utiliza [ChatGPT](https://chatgpt.com/). + +32. **Pregunta:** ¿Por qué se usa "def" para definir funciones? ¿De qué significa? + **Respuesta:** `def` proviene de **"define"** en inglés y se utiliza para definir funciones en Python. + +### Más Dudas + +1. **Pregunta:** No necesitas inicializarlas, solo nombras y asignas, ¿no? + **Respuesta:** Correcto, en Python no necesitas declarar o inicializar variables antes de usarlas. Simplemente asignas un valor a un nombre de variable. + ```python + x = 10 + y = "Hola" + ``` + +2. **Pregunta:** ¿No crea confusión que se reemplace la variable? + **Respuesta:** Puede causar confusión si reutilizas nombres de variables de manera inconsistente. Es una buena práctica usar nombres descriptivos y evitar reutilizar nombres para diferentes propósitos en el mismo ámbito. + +3. **Pregunta:** ¿Tipado fuerte y tipado dinámico? + **Respuesta:** Python es un lenguaje **tipado dinámico** y **tipado fuerte**. + - **Tipado dinámico:** No necesitas declarar el tipo de una variable, el tipo se determina en tiempo de ejecución. + - **Tipado fuerte:** Las operaciones entre tipos incompatibles (como sumar un `str` y un `int`) no se realizan automáticamente y generan errores. + +4. **Pregunta:** ¿Y qué ventaja da eso? + **Respuesta:** + - **Tipado dinámico:** Facilita la escritura de código más rápido y flexible, sin necesidad de declarar tipos explícitamente. + - **Tipado fuerte:** Previene errores sutiles al evitar conversiones implícitas de tipos que podrían llevar a comportamientos inesperados. + +5. **Pregunta:** ¿Afecta la indentación al tipado? + **Respuesta:** La indentación en Python no afecta el tipado, pero es crucial para definir bloques de código y estructuras de control como bucles y condicionales. Una indentación incorrecta puede causar errores de sintaxis. + +6. **Pregunta:** Si cambio el valor de una variable a un tipo diferente y hago `print`, ¿debería causar un error? + **Respuesta:** No debería causar error. En Python, puedes reasignar variables a diferentes tipos sin problemas. + ```python + x = "Hola" + x = 10 + print(x) # Output: 10 + ``` + +7. **Pregunta:** ¿Se puede forzar un tipado estático en Python? + **Respuesta:** Python es dinámico por naturaleza, pero puedes usar **anotaciones de tipo** para indicar tipos de variables y funciones. Herramientas como **mypy** pueden verificar tipos estáticamente, pero esto es opcional y no cambia el comportamiento en tiempo de ejecución. + + **Ejemplo:** + ```python + def suma(a: int, b: int) -> int: + return a + b + ``` + +8. **Pregunta:** ¿Por qué no se recomienda usar camelCase u otros estilos de nomenclatura en Python y solo se usa snake_case como convención de nombres? + **Respuesta:** + En Python, se prefiere usar **snake_case** para variables, funciones y métodos siguiendo las guías de estilo [PEP 8](https://pep8.org/). Esto mejora la **legibilidad** y **consistencia** del código dentro de la comunidad de Python. + +9. **Pregunta:** ¿Y el camelCase? ¿No sirve? ¿Se usa camelCase? + **Respuesta:** En Python, la convención es usar **snake_case** para variables y funciones, y **CamelCase** para nombres de clases. Aunque puedes usar camelCase, no es la convención estándar y puede disminuir la legibilidad para otros desarrolladores. + + **Ejemplo:** + ```python + # Convención de Python + nombre_variable = "valor" + + class MiClase: + pass + ``` + +10. **Pregunta:** ¿Cómo obtuviste la lista de palabras reservadas? + **Respuesta:** Si te refieres a las palabras reservadas, puedes obtener una lista usando el módulo `keyword`. + ```python + import keyword + print(keyword.kwlist) + ``` + +11. **Pregunta:** ¿Cómo se llama el proceso de convertir un tipo de dato a otro, parsear? + **Respuesta:** Cuando conviertes un tipo de dato a otro, se le llama **casting** o **conversión de tipos**. El término "parsear" generalmente se refiere a analizar una cadena de texto para extraer información o convertirla en otra estructura de datos. + +12. **Pregunta:** ¿Por qué concatenar con `+` y no con comas? + **Respuesta:** Al usar el operador `+` para concatenar cadenas (`str`), estás uniendo los contenidos de las cadenas directamente. Usar comas en `print` separa los argumentos con espacios por defecto y no requiere que conviertas tipos de datos a cadenas. + + **Ejemplo:** + ```python + a = "Hola" + b = "Mundo" + print(a + b) # Output: HolaMundo + print(a, b) # Output: Hola Mundo + ``` + +13. **Pregunta:** ¿Qué sucede si convierto `None` a booleano con `bool(None)`? + **Respuesta:** Convertir `None` a booleano usando `bool(None)` devuelve `False`. + ```python + print(bool(None)) # Output: False + ``` + +14. **Pregunta:** ¿Cómo se manejan los números hexadecimales? + **Respuesta:** En Python, puedes trabajar con números hexadecimales utilizando el prefijo `0x` o `0X`. Puedes convertir hexadecimales a enteros y viceversa. + + **Ejemplo:** + ```python + hex_num = 0x1A # 26 en decimal + print(hex_num) # Output: 26 + print(hex(hex_num)) # Output: '0x1a' + ``` + +--- + +## Intermedia + +### Más dudas + +1. **Pregunta:** ¿Existe algún límite para números enteros? Si usan 32, 64 bits, ¿habrá algún límite? + **Respuesta:** + En Python, los enteros (`int`) tienen **precisión ilimitada**, ya que Python ajusta automáticamente el tamaño según sea necesario. A diferencia de otros lenguajes que limitan los enteros a 32 o 64 bits, en Python no hay un límite práctico más allá de la memoria disponible en el sistema. + + **Ejemplos relacionados:** + + - **Precisión de números flotantes:** + ```python + print(0.1 + 0.2 == 0.3) # Output: False + ``` + Los números de punto flotante (`float`) en Python pueden tener pequeñas imprecisiones debido a su representación binaria. + +2. **Pregunta:** ¿Existe un linter para Python? + **Respuesta:** Sí, existen varios linters para Python que ayudan a mantener un código limpio y libre de errores. Uno de ellos es: + - **[Pylint](https://marketplace.visualstudio.com/items?itemName=ms-python.pylint):** Analiza el código en busca de errores y mejora la calidad del código. + +3. **Pregunta:** ¿El número complejo es equivalente a los doubles? + **Respuesta:** No, los números complejos y los números de punto flotante (`float` o `double`) son tipos de datos diferentes en Python. + - **Números de punto flotante (`float`):** Representan números reales con decimales. + - **Números complejos (`complex`):** Tienen una parte real y una parte imaginaria, representados como `a + bj`. + + **Ejemplo:** + ```python + real = 3.14 # float + complejo = 2 + 3j # complex + ``` + +4. **Pregunta:** ¿Qué pasa si sumo un string y un entero `"1" + 1`? + **Respuesta:** Intentar sumar un string y un entero directamente (`"1" + 1`) resultará en un error de tipo (`TypeError`) en Python, ya que no se pueden concatenar directamente diferentes tipos de datos. + + **Ejemplo:** + ```python + "1" + 1 # TypeError: can only concatenate str (not "int") to str + ``` + + **Solución:** Convertir el entero a string o viceversa según la necesidad. + ```python + "1" + str(1) # Resultado: "11" + str(1) + "1" # Resultado: "11" + 1 + int("1") # Resultado: 2 + ``` + +5. **Pregunta:** ¿No existen valores "truthy" o "falsy"? + **Respuesta:** En Python, sí existen valores "truthy" y "falsy". Estos determinan cómo se evalúan las expresiones en contextos booleanos, como en sentencias `if`. + + - **Valores "falsy":** Se consideran como `False` en contextos booleanos. + - `None` + - `False` + - Cero de cualquier tipo (`0`, `0.0`, `0j`, etc.) + - Secuencias y colecciones vacías (`""`, `[]`, `{}`, `()`, etc.) + + - **Valores "truthy":** Todos los demás valores que no son "falsy". + + **Ejemplo:** + ```python + if []: + print("Truthy") + else: + print("Falsy") # Se imprimirá "Falsy" + + if [1, 2, 3]: + print("Truthy") # Se imprimirá "Truthy" + ``` + +6. **Pregunta:** ¿Qué pasa si hago `print(True * False)`? + **Respuesta:** En Python, `True` se interpreta como `1` y `False` como `0`. Al multiplicarlos: + ```python + print(True * False) # Resultado: 0 + ``` + +7. **Pregunta:** ¿El tipo complejo solo funciona con la letra "j"? + **Respuesta:** Sí, en Python, la unidad imaginaria se representa con la letra minúscula `j` o `J`. No se usan otras letras para denotar la parte imaginaria. + + **Ejemplo:** + ```python + z1 = 3 + 4j + z2 = 5 - 2J + ``` + +8. **Pregunta:** ¿Los booleanos siempre están capitalizados? + **Respuesta:** Sí, en Python los valores booleanos se escriben con la primera letra en mayúscula: + - `True` + - `False` + + Es importante respetar la capitalización, ya que `true` y `false` en minúsculas no son reconocidos como booleanos y resultarán en un error. + ```python + print(True) # Correcto + print(true) # Error + ``` + +9. **Pregunta:** ¿Qué sucede si uso `1 > 2j`? + **Respuesta:** Intentar comparar un número entero con un número complejo (`1 > 2j`) resultará en un error de tipo (`TypeError`) en Python, ya que no hay una definición clara para comparar estos tipos. + + **Ejemplo:** + ```python + 1 > 2j # TypeError: '>' not supported between instances of 'int' and 'complex' + ``` + +10. **Pregunta:** ¿Para qué sirve el `None`? + **Respuesta:** `None` es un objeto especial en Python que representa la ausencia de un valor o un valor nulo. Se utiliza comúnmente para: + - Indicar que una variable no tiene un valor asignado. + - Funciones que no retornan explícitamente un valor retornan `None` por defecto. + - Parámetros por defecto en funciones. + + **Ejemplo:** + ```python + def sin_retorno(): + pass + + resultado = sin_retorno() + print(resultado) # Output: None + ``` + +11. **Pregunta:** ¿Para qué se usa el `NoneType`? + **Respuesta:** `NoneType` es el tipo de dato de `None`. Se utiliza principalmente para: + - Verificar si una variable es `None`. + - Tipar funciones que pueden retornar `None`. + + **Ejemplo:** + ```python + x = None + if isinstance(x, type(None)): + print("x es None") + ``` + +12. **Pregunta:** ¿Cómo comento un párrafo completo? + **Respuesta:** En Python, no hay una sintaxis específica para comentarios multilínea como en otros lenguajes. Sin embargo, puedes utilizar comillas triples (`'''` o `"""`) para crear cadenas de texto que no se asignan a ninguna variable, lo que efectivamente actúa como comentarios. + + **Ejemplo:** + ```python + """ + Este es un comentario + de múltiples líneas + """ + ``` + + También puedes usar el carácter `#` al inicio de cada línea: + ```python + # Este es un comentario + # de múltiples líneas + ``` + +13. **Pregunta:** ¿`None` es igual a `null`? ¿Qué da `"" == None`? + **Respuesta:** En Python, `None` es similar a `null` en otros lenguajes, representando la ausencia de valor. Sin embargo, no es lo mismo que una cadena vacía `""`. + + - **Comparación:** + ```python + None == None # True + "" == None # False + ``` + - **Explicación:** `None` representa la ausencia de un valor, mientras que `""` es una cadena vacía, que es un valor válido. + +14. **Pregunta:** ¿Existe `null` en Python? + **Respuesta:** En Python, no existe `null`. En su lugar, se utiliza `None` para representar la ausencia de valor. + +15. **Pregunta:** ¿Un caso práctico para usar `NoneType` en un proyecto? + **Respuesta:** Un caso común es cuando una función puede no retornar un valor significativo y quieres indicar explícitamente que no hay resultado. + + **Ejemplo:** + ```python + def buscar_usuario(usuario_id): + usuario = base_de_datos.obtener(usuario_id) + if not usuario: + return None + return usuario + + resultado = buscar_usuario(10) + if resultado is None: + print("Usuario no encontrado") + else: + print("Usuario encontrado:", resultado) + ``` + +16. **Pregunta:** ¿"none" indica ausencia de parámetro o ausencia de valor? + **Respuesta:** En Python, `None` (con mayúscula) se utiliza para indicar la ausencia de un valor. Usar la cadena `"none"` (en minúsculas) es simplemente una cadena de texto y no tiene el mismo significado que `None`. + + **Ejemplo:** + ```python + def funcion(param=None): + if param is None: + print("No se proporcionó un parámetro") + else: + print(f"Parametro: {param}") + + funcion() # Output: No se proporcionó un parámetro + funcion("none") # Output: Parametro: none + ``` + +17. **Pregunta:** ¿`NoneType` es como `null`? + **Respuesta:** Sí, en Python, `NoneType` es el tipo de dato de `None`, que es equivalente a `null` en otros lenguajes. Representa la ausencia de un valor. + +18. **Pregunta:** ¿Se usa `None` frecuentemente en sentencias `if`? + **Respuesta:** Sí, es común utilizar `None` en sentencias `if` para verificar si una variable tiene un valor asignado o no. + + **Ejemplo:** + ```python + usuario = obtener_usuario(id_usuario) + if usuario is None: + print("Usuario no encontrado") + else: + print("Usuario:", usuario) + ``` + +19. **Pregunta:** ¿Se usan backticks al usar `print` en Python? + **Respuesta:** No, en Python los backticks no se utilizan para formatear salidas en `print`. Para la interpolación de cadenas, se usan **f-strings** (`f""`), comillas simples (`'`), dobles (`"`), o comillas triples (`'''` o `"""`). + + **Ejemplo con f-strings:** + ```python + nombre = "Juan" + print(f"Hola, {nombre}!") # Output: Hola, Juan! + ``` + +20. **Pregunta:** ¿Para qué sirve `None` en el contexto de usuarios sin datos en su cuenta? + **Respuesta:** Usar `None` es útil para representar la ausencia de datos, como en el caso de un usuario que no tiene información registrada aún. + + **Ejemplo:** + ```python + class Usuario: + def __init__(self, nombre, edad=None): + self.nombre = nombre + self.edad = edad + + nuevo_usuario = Usuario("Ana") + if nuevo_usuario.edad is None: + print("Edad no especificada") + ``` + +21. **Pregunta:** ¿Cuál es la diferencia entre `double` y `float` en Python? + **Respuesta:** En Python, no existen los tipos `double` y `float` como en otros lenguajes. Python utiliza el tipo `float` para representar números de punto flotante, que generalmente corresponden a los `double` de precisión doble en otros lenguajes. + + **Ejemplo:** + ```python + numero = 3.141592653589793 # float en Python, equivalente a double en otros lenguajes + ``` + +22. **Pregunta:** ¿Qué tipo de dato usar para trabajar con dinero debido a la precisión? + **Respuesta:** Para manejar dinero y evitar problemas de precisión con números de punto flotante, es recomendable usar el módulo `decimal` de Python, que ofrece aritmética de punto decimal con precisión exacta. + + **Ejemplo:** + ```python + from decimal import Decimal + + precio = Decimal('19.99') + impuesto = Decimal('0.07') + total = precio + (precio * impuesto) + print(total) # Output: 21.39 + ``` + +23. **Pregunta:** ¿Qué sucede si hago `print(print("Hola"))`? + **Respuesta:** En Python, la función `print()` retorna `None`. Si haces un `print` de un `print`, se ejecutará el primer `print` mostrando el contenido, y luego el segundo `print` mostrará `None`. + + **Ejemplo:** + ```python + resultado = print("Hola Mundo") # Output: Hola Mundo + print(resultado) # Output: None + ``` + +24. **Pregunta:** ¿Se pueden agregar comas en el `float`? + **Respuesta:** Si te refieres a formatear números de punto flotante con comas como separadores de miles, sí, se puede hacer utilizando formateo de cadenas. + + **Ejemplo usando f-strings:** + ```python + numero = 1234567.89 + print(f"{numero:,}") # Output: 1,234,567.89 + ``` + + **Ejemplo usando `format`:** + ```python + numero = 1234567.89 + print("{:,}".format(numero)) # Output: 1,234,567.89 + ``` + + **Nota:** El separador de miles por defecto es la coma `,`. Si necesitas otro separador, puedes especificarlo: + ```python + numero = 1234567.89 + print(f"{numero:_}") # Output: 1_234_567.89 + ``` + +--- diff --git a/01_basic/01_print.py b/01_basic/01_print.py index 3435852..90c5bc6 100644 --- a/01_basic/01_print.py +++ b/01_basic/01_print.py @@ -1,39 +1,39 @@ -### -# 01 - print() -# El módulo print() es el módulo que nos permite imprimir en consola -# Sirve para mostrar información en consola y te va a acompañar -# TODA TU VIDA. Desde hoy hasta el fin de los tiempos -### - -# Este es un ejemplo básico de cómo imprimir un texto en consola -print("¡Hola, Twitch!") - -# También puedes usar comillas simples para imprimir texto -print("Esto también funciona con una comilla") - -# Puedes imprimir múltiples elementos separados por un espacio -print("Python", "es", "genial") - -# El parámetro 'sep' permite definir cómo se separan los elementos impresos -print("Python", "es", "brutal", sep="-") - -# El parámetro 'end' define lo que se imprime al final de la línea -# Aquí, el 'end' tiene un salto de línea explícito -print("Esto se imprime", end="\n") -print("en una línea") # Esto se imprime en la línea siguiente - -# También se pueden imprimir números directamente -print(42) - -# Ejemplo de cómo imprimir el símbolo de pulgadas (") -# Si usamos comillas dobles dentro de un string con comillas dobles, se produce un error: -# print("Esto es una "pulgada"") # ❌ Esto generaría un error de sintaxis - -# ✅ Solución 1: Usar comillas simples para encerrar la cadena -print('Esto es una "pulgada" dentro de un string con comillas simples') - -# ✅ Solución 2: Usar el carácter de escape \ para incluir comillas dobles dentro de un string con comillas dobles -print('Esto es una "pulgada" dentro de un string con comillas dobles') - -# ✅ Solución 3: Usar triple comillas para definir el string -print("""Esto es una "pulgada" dentro de un string con triple comillas""") +### +# 01 - print() +# El módulo print() es el módulo que nos permite imprimir en consola +# Sirve para mostrar información en consola y te va a acompañar +# TODA TU VIDA. Desde hoy hasta el fin de los tiempos +### + +# Este es un ejemplo básico de cómo imprimir un texto en consola +print("¡Hola, Twitch!") + +# También puedes usar comillas simples para imprimir texto +print("Esto también funciona con una comilla") + +# Puedes imprimir múltiples elementos separados por un espacio +print("Python", "es", "genial") + +# El parámetro 'sep' permite definir cómo se separan los elementos impresos +print("Python", "es", "brutal", sep="-") + +# El parámetro 'end' define lo que se imprime al final de la línea +# Aquí, el 'end' tiene un salto de línea explícito +print("Esto se imprime", end="\n") +print("en una línea") # Esto se imprime en la línea siguiente + +# También se pueden imprimir números directamente +print(42) + +# Ejemplo de cómo imprimir el símbolo de pulgadas (") +# Si usamos comillas dobles dentro de un string con comillas dobles, se produce un error: +# print("Esto es una "pulgada"") # ❌ Esto generaría un error de sintaxis + +# ✅ Solución 1: Usar comillas simples para encerrar la cadena +print('Esto es una "pulgada" dentro de un string con comillas simples') + +# ✅ Solución 2: Usar el carácter de escape \ para incluir comillas dobles dentro de un string con comillas dobles +print('Esto es una "pulgada" dentro de un string con comillas dobles') + +# ✅ Solución 3: Usar triple comillas para definir el string +print("""Esto es una "pulgada" dentro de un string con triple comillas""") diff --git a/01_basic/02_types.py b/01_basic/02_types.py index 91dfd3d..420742d 100644 --- a/01_basic/02_types.py +++ b/01_basic/02_types.py @@ -1,52 +1,52 @@ -### -# 02 - types() -# Python tiene varios tipos de datos -# int, float, complex, str, bool, NoneType, list, tuple, dict, range, set... -### - -""" -El comando `type()` devuelve el tipo de un objeto en Python -""" -print("int:") # Enteros (números sin parte decimal) -print(type(10)) # Número entero positivo -print(type(0)) # El número cero también es un entero -print(type(-5)) # Número entero negativo -# Python permite enteros de gran tamaño -print(type(7238424723784278934789239874)) - -print("float:") # Números decimales (de punto flotante) -print(type(3.14)) # Número con punto decimal -print( - type(1.0) -) # También es considerado un float, aunque sea un número entero con punto decimal -print(type(1e3)) # Notación científica (equivalente a 1000.0) - -print("complex:") # Números complejos (con parte real e imaginaria) -print( - type(1 + 2j) - # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) -) - -print("str:") # Cadenas de texto (strings) -print(type("Hola")) # Un string con texto -print(type("")) # Un string vacío -print( - type("123") -) # Aunque parezca un número, está entre comillas, por lo que es un string -print( - type( - """ - Multilinea -""" - ) -) # Un string que abarca varias líneas usando triple comillas - -print("bool:") # Valores booleanos (True o False) -print(type(True)) # Valor booleano verdadero -print(type(False)) # Valor booleano falso -print(type(1 < 2)) # Comparación que devuelve un booleano (True) - -print("NoneType:") # Representa la ausencia de valor -print( - type(None) -) # `None` es un tipo especial en Python que representa "sin valor" o "nulo" +### +# 02 - types() +# Python tiene varios tipos de datos +# int, float, complex, str, bool, NoneType, list, tuple, dict, range, set... +### + +""" +El comando `type()` devuelve el tipo de un objeto en Python +""" +print("int:") # Enteros (números sin parte decimal) +print(type(10)) # Número entero positivo +print(type(0)) # El número cero también es un entero +print(type(-5)) # Número entero negativo +# Python permite enteros de gran tamaño +print(type(7238424723784278934789239874)) + +print("float:") # Números decimales (de punto flotante) +print(type(3.14)) # Número con punto decimal +print( + type(1.0) +) # También es considerado un float, aunque sea un número entero con punto decimal +print(type(1e3)) # Notación científica (equivalente a 1000.0) + +print("complex:") # Números complejos (con parte real e imaginaria) +print( + type(1 + 2j) + # Un número complejo en Python (1 es la parte real, 2j es la parte imaginaria) +) + +print("str:") # Cadenas de texto (strings) +print(type("Hola")) # Un string con texto +print(type("")) # Un string vacío +print( + type("123") +) # Aunque parezca un número, está entre comillas, por lo que es un string +print( + type( + """ + Multilinea +""" + ) +) # Un string que abarca varias líneas usando triple comillas + +print("bool:") # Valores booleanos (True o False) +print(type(True)) # Valor booleano verdadero +print(type(False)) # Valor booleano falso +print(type(1 < 2)) # Comparación que devuelve un booleano (True) + +print("NoneType:") # Representa la ausencia de valor +print( + type(None) +) # `None` es un tipo especial en Python que representa "sin valor" o "nulo" diff --git a/01_basic/03_cast.py b/01_basic/03_cast.py index ab23503..34f3df9 100644 --- a/01_basic/03_cast.py +++ b/01_basic/03_cast.py @@ -1,40 +1,40 @@ -### -# 03 - casting de types -# Transformar un tipo de un valor a otro -### - -print("Conversión de tipos") - -# Convertir una cadena que contiene un número a un entero y sumarlo con otro entero -print(2 + int("100")) # Convierte "100" a entero y suma 2. Resultado: 102 - -# Convertir un entero a cadena para concatenarlo con otra cadena -print( - "100" + str(2) -) # Convierte el número 2 a cadena y lo concatena. Resultado: "1002" - -# Convertir una cadena con un número decimal a tipo float -print( - type(float("3.1416")) -) # Convierte "3.1416" a float y muestra su tipo. Resultado: - -# Convertir un número decimal a entero (se trunca la parte decimal) -print(int(3.1416)) # Convierte 3.1416 a 3 eliminando la parte decimal. Resultado: 3 - -# Evaluar valores numéricos como booleanos -print(bool(3)) # Cualquier número distinto de 0 es True. Resultado: True -print(bool(0)) # 0 es False. Resultado: False -print(bool(-1)) # Números negativos también son True. Resultado: True - -# Evaluar cadenas como booleanos -print(bool("")) # Una cadena vacía es False. Resultado: False -print(bool(" ")) # Una cadena con espacios es True. Resultado: True -print( - bool("False") -) # Una cadena con texto, aunque sea "False", es True. Resultado: True - -# Redondear un número decimal -print(round(2.51)) # Redondea 2.51 al entero más cercano. Resultado: 3 - -# Este genera un error y se comenta para evitar conflicto en la ejecución -# print(int("Hola mundo")) # ❌ Esto generaría un ValueError porque "Hola mundo" no es un número +### +# 03 - casting de types +# Transformar un tipo de un valor a otro +### + +print("Conversión de tipos") + +# Convertir una cadena que contiene un número a un entero y sumarlo con otro entero +print(2 + int("100")) # Convierte "100" a entero y suma 2. Resultado: 102 + +# Convertir un entero a cadena para concatenarlo con otra cadena +print( + "100" + str(2) +) # Convierte el número 2 a cadena y lo concatena. Resultado: "1002" + +# Convertir una cadena con un número decimal a tipo float +print( + type(float("3.1416")) +) # Convierte "3.1416" a float y muestra su tipo. Resultado: + +# Convertir un número decimal a entero (se trunca la parte decimal) +print(int(3.1416)) # Convierte 3.1416 a 3 eliminando la parte decimal. Resultado: 3 + +# Evaluar valores numéricos como booleanos +print(bool(3)) # Cualquier número distinto de 0 es True. Resultado: True +print(bool(0)) # 0 es False. Resultado: False +print(bool(-1)) # Números negativos también son True. Resultado: True + +# Evaluar cadenas como booleanos +print(bool("")) # Una cadena vacía es False. Resultado: False +print(bool(" ")) # Una cadena con espacios es True. Resultado: True +print( + bool("False") +) # Una cadena con texto, aunque sea "False", es True. Resultado: True + +# Redondear un número decimal +print(round(2.51)) # Redondea 2.51 al entero más cercano. Resultado: 3 + +# Este genera un error y se comenta para evitar conflicto en la ejecución +# print(int("Hola mundo")) # ❌ Esto generaría un ValueError porque "Hola mundo" no es un número diff --git a/01_basic/04_variables.py b/01_basic/04_variables.py index 1724a6b..442c5cc 100644 --- a/01_basic/04_variables.py +++ b/01_basic/04_variables.py @@ -1,69 +1,69 @@ -## -# 04 - Variables -# Las variables sirven para guardar datos en memoria. -# Python es un lenguaje de tipado dinámico y de tipado fuerte. -### - -# Para asignar una variable solo hace falta poner el nombre de la variable y asignarle un valor -my_name = "midudev" -print(my_name) # Imprime el valor de la variable my_name - -age = 32 -print(age) # Imprime el valor de la variable age) - -# Reasignar un nuevo valor a una variable existente -age = 39 -print(age) # Ahora la variable age tiene el valor 39 - -# Tipado dinámico: el tipo de dato se determine en tiempo de ejecución -# No es necesario declarar explícitamente el tipo de variable -name = "midudev" -print(type(name)) # Muestra el tipo de dato de la variable name (str) - -name = 32 -print(type(name)) # Ahora la variable tiene un número entero (int) - -# Tipado fuerte: Python no realiza conversione de tipo automáticas -# Esto generará un error porque no se puede sumar un número con una cadena -# print(10 + "2") # ❌ TypeError: unsupported operand type(s) for +: 'int' and 'str' - -# f-string (literal de cadena de formato) -# desde la versión Python 3.6 -print(f"Hola {my_name}, tengo {age + 5} años") - -# No recomendada forma de asignar variables -name, age, city = "midudev", 32, "Bogotá" - -# Convenciones de nombres de variables -mi_nombre_de_variable = "ok" # snake_case -nombre = "ok" - -miNombreDeVariable = "no-recomendado" # camelCase -MiNombreDeVariable = "no-recomendado" # PascalCase -minombredevariable = "no-recomendado" # todojunto - -mi_nombre_de_variable_123 = "ok" - -MI_CONSTANTE: int = 3.14 # UPPER_CASE -> constantes - -# Nombres NO válidos de variables (esto generaría errores) -# 123123_variable = "ko" # ❌ No puede comenzar con un número -# mi-variable = "ko" # ❌ No puede contener guiones (-), usa guion bajo (_) -# mi variable = "ko" # ❌ No puede contener espacios -# True = False # ❌ No puedes sobrescribir palabras reservadas - -# Palabras reservadas en Python (no se pueden usar como nombres de variables) - -# ['False', 'None', 'True', 'and', 'as', 'assert', -# 'async', 'await', 'break', 'class', 'continue', -# 'def', 'del', 'elif', 'else', 'except', 'finally', -# 'for', 'from', 'global', 'if', 'import', 'in', 'is', -# 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', -# 'return', 'try', 'while', 'with', 'yield'] - -# Anotaciones de tipo (opcional, para mayor claridad en el código) -is_user_logged_in: bool = True # Indica que la variable es un booleano -print(is_user_logged_in) - -name: str = "midudev" # Indica que la variable es una cadena de texto -print(name) +## +# 04 - Variables +# Las variables sirven para guardar datos en memoria. +# Python es un lenguaje de tipado dinámico y de tipado fuerte. +### + +# Para asignar una variable solo hace falta poner el nombre de la variable y asignarle un valor +my_name = "midudev" +print(my_name) # Imprime el valor de la variable my_name + +age = 32 +print(age) # Imprime el valor de la variable age) + +# Reasignar un nuevo valor a una variable existente +age = 39 +print(age) # Ahora la variable age tiene el valor 39 + +# Tipado dinámico: el tipo de dato se determine en tiempo de ejecución +# No es necesario declarar explícitamente el tipo de variable +name = "midudev" +print(type(name)) # Muestra el tipo de dato de la variable name (str) + +name = 32 +print(type(name)) # Ahora la variable tiene un número entero (int) + +# Tipado fuerte: Python no realiza conversione de tipo automáticas +# Esto generará un error porque no se puede sumar un número con una cadena +# print(10 + "2") # ❌ TypeError: unsupported operand type(s) for +: 'int' and 'str' + +# f-string (literal de cadena de formato) +# desde la versión Python 3.6 +print(f"Hola {my_name}, tengo {age + 5} años") + +# No recomendada forma de asignar variables +name, age, city = "midudev", 32, "Bogotá" + +# Convenciones de nombres de variables +mi_nombre_de_variable = "ok" # snake_case +nombre = "ok" + +miNombreDeVariable = "no-recomendado" # camelCase +MiNombreDeVariable = "no-recomendado" # PascalCase +minombredevariable = "no-recomendado" # todojunto + +mi_nombre_de_variable_123 = "ok" + +MI_CONSTANTE: int = 3.14 # UPPER_CASE -> constantes + +# Nombres NO válidos de variables (esto generaría errores) +# 123123_variable = "ko" # ❌ No puede comenzar con un número +# mi-variable = "ko" # ❌ No puede contener guiones (-), usa guion bajo (_) +# mi variable = "ko" # ❌ No puede contener espacios +# True = False # ❌ No puedes sobrescribir palabras reservadas + +# Palabras reservadas en Python (no se pueden usar como nombres de variables) + +# ['False', 'None', 'True', 'and', 'as', 'assert', +# 'async', 'await', 'break', 'class', 'continue', +# 'def', 'del', 'elif', 'else', 'except', 'finally', +# 'for', 'from', 'global', 'if', 'import', 'in', 'is', +# 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', +# 'return', 'try', 'while', 'with', 'yield'] + +# Anotaciones de tipo (opcional, para mayor claridad en el código) +is_user_logged_in: bool = True # Indica que la variable es un booleano +print(is_user_logged_in) + +name: str = "midudev" # Indica que la variable es una cadena de texto +print(name) diff --git a/01_basic/05_input.py b/01_basic/05_input.py index 8d8ab28..3704b85 100644 --- a/01_basic/05_input.py +++ b/01_basic/05_input.py @@ -1,23 +1,23 @@ -### -# 05 - Entrada de usuario (input()) - Versión simplificada -# La función input() permite obtener datos del usuario a través de la consola. -### - -# Para obtener datos del usuario se usa la función input() -# La función input() recibe un mensaje que se muestra al usuario -# y devuelve el valor introducido por el usuario -nombre: str = input("Hola, ¿cómo te llamas?\n") -print(f"Hola {nombre}, encantado de conocerte") - -# Ten en cuenta que la función input() devuelve un string -# Así que si queremos obtener un número se debe convertir el string a un número -age: int = int(input("¿Cuántos años tienes?\n")) -age: int = int(age) -print(f"Tienes {age} años") - -# La función input() también puede devolver múltiples valores -# Para hacerlo, el usuario debe separar los valores con una coma -print("Obtener múltiples valores a la vez") -country, city = input("¿En qué país y ciudad vives?\n").split() - -print(f"Vives en {country}, {city}") +### +# 05 - Entrada de usuario (input()) - Versión simplificada +# La función input() permite obtener datos del usuario a través de la consola. +### + +# Para obtener datos del usuario se usa la función input() +# La función input() recibe un mensaje que se muestra al usuario +# y devuelve el valor introducido por el usuario +nombre: str = input("Hola, ¿cómo te llamas?\n") +print(f"Hola {nombre}, encantado de conocerte") + +# Ten en cuenta que la función input() devuelve un string +# Así que si queremos obtener un número se debe convertir el string a un número +age: int = int(input("¿Cuántos años tienes?\n")) +age: int = int(age) +print(f"Tienes {age} años") + +# La función input() también puede devolver múltiples valores +# Para hacerlo, el usuario debe separar los valores con una coma +print("Obtener múltiples valores a la vez") +country, city = input("¿En qué país y ciudad vives?\n").split() + +print(f"Vives en {country}, {city}") diff --git a/01_basic/exercises.py b/01_basic/exercises.py index 3a4eed2..ec0e121 100644 --- a/01_basic/exercises.py +++ b/01_basic/exercises.py @@ -1,67 +1,67 @@ -### -# exercises.py -# Ejercicios para practicar los conceptos aprendidos en las lecciones. -### - -print("\nEjercicio 1: Imprimir mensajes") -print("Escribe un programa que imprima tu nombre y tu ciudad en líneas separadas.") - -### Completa aquí -nombre = "midudev" -ciudad = "madrid" -print("Nombre:", nombre) -print("Ciudad:", ciudad) - -print("--------------") - -print("\nEjercicio 2: Muestra los tipos de datos de las siguientes variables:") -print("Usa el comando 'type()' para determinar el tipo de datos de cada variable.") -a = 15 -b = 3.14159 -c = "Hola mundo" -d = True -e = None - -### Completa aquí -print(type(a)) -print(type(b)) -print(type(c)) -print(type(d)) -print(type(e)) - -print("--------------") - -print("\nEjercicio 3: Casting de tipos") -print('Convierte la cadena "12345" a un entero y luego a un float.') -print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") - -### Completa aquí -print(int("12345")) -print(float("12345")) -print(int(3.99)) # Se tronca el número decimal. - -print("--------------") - -print("\nEjercicio 4: Variables") -print("Crea variables para tu nombre, edad y altura.") -print("Usa f-strings para imprimir una presentación.") - -# "Hola! Me llamo midudev y tengo 39 años, mido 1.70 metros" - -### Completa aquí -nombre = "midudev" -edad = 39 -altura = 1.86 -print(f"Hola! Me llamo {nombre} y tengo {edad} años, mido {altura} metros") -print("--------------") - -print("\nEjercicio 5: Números") -print("1. Crea una variable con el número PI (sin asignar una variable)") -print("2. Redondea el número con round()") -print("3. Haz la división entera entre el número que te salió y el número 2") -print("4. El resultado debería ser 1") - -### Completa aquí -# Anotaciones de tipo (Indica que la variable es un entero) -resultado: int = int(round(3.14159) / 2) -print("División entera de PI entre 2:", resultado) +### +# exercises.py +# Ejercicios para practicar los conceptos aprendidos en las lecciones. +### + +print("\nEjercicio 1: Imprimir mensajes") +print("Escribe un programa que imprima tu nombre y tu ciudad en líneas separadas.") + +### Completa aquí +nombre = "midudev" +ciudad = "madrid" +print("Nombre:", nombre) +print("Ciudad:", ciudad) + +print("--------------") + +print("\nEjercicio 2: Muestra los tipos de datos de las siguientes variables:") +print("Usa el comando 'type()' para determinar el tipo de datos de cada variable.") +a = 15 +b = 3.14159 +c = "Hola mundo" +d = True +e = None + +### Completa aquí +print(type(a)) +print(type(b)) +print(type(c)) +print(type(d)) +print(type(e)) + +print("--------------") + +print("\nEjercicio 3: Casting de tipos") +print('Convierte la cadena "12345" a un entero y luego a un float.') +print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") + +### Completa aquí +print(int("12345")) +print(float("12345")) +print(int(3.99)) # Se tronca el número decimal. + +print("--------------") + +print("\nEjercicio 4: Variables") +print("Crea variables para tu nombre, edad y altura.") +print("Usa f-strings para imprimir una presentación.") + +# "Hola! Me llamo midudev y tengo 39 años, mido 1.70 metros" + +### Completa aquí +nombre = "midudev" +edad = 39 +altura = 1.86 +print(f"Hola! Me llamo {nombre} y tengo {edad} años, mido {altura} metros") +print("--------------") + +print("\nEjercicio 5: Números") +print("1. Crea una variable con el número PI (sin asignar una variable)") +print("2. Redondea el número con round()") +print("3. Haz la división entera entre el número que te salió y el número 2") +print("4. El resultado debería ser 1") + +### Completa aquí +# Anotaciones de tipo (Indica que la variable es un entero) +resultado: int = int(round(3.14159) / 2) +print("División entera de PI entre 2:", resultado) diff --git a/01_basic/soluciones.py b/01_basic/soluciones.py index d2ace79..184a1c9 100644 --- a/01_basic/soluciones.py +++ b/01_basic/soluciones.py @@ -1,82 +1,82 @@ -### -# soluciones.py -# Soluciones a los ejercicios del archivo exercises.py -### - -print("\nEjercicio 1: Imprimir mensajes") -print("Escribe un programa que imprima tu nombre y tu ciudad en líneas separadas.") - -# Solución: -nombre = "Carlos" # Reemplázalo con tu nombre -ciudad = "Buenos Aires" # Reemplázalo con tu ciudad - -print(nombre) -print(ciudad) - -print("--------------") - -print("\nEjercicio 2: Muestra los tipos de datos de las siguientes variables:") -print("Usa el comando 'type()' para determinar el tipo de datos de cada variable.") - -# Variables dadas en el enunciado -a = 15 -b = 3.14159 -c = "Hola mundo" -d = True -e = None - -# Solución: -print("Tipo de a:", type(a)) -print("Tipo de b:", type(b)) -print("Tipo de c:", type(c)) -print("Tipo de d:", type(d)) -print("Tipo de e:", type(e)) - -print("--------------") - -print("\nEjercicio 3: Casting de tipos") -print("Convierte la cadena '12345' a un entero y luego a un float.") -print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") - -# Solución: -cadena = "12345" -numero_entero = int(cadena) # Convertir cadena a entero -numero_float = float(numero_entero) # Convertir entero a float - -print("Número entero:", numero_entero) -print("Número como float:", numero_float) - -float_num = 3.99 -entero_convertido = int(float_num) # Se trunca el decimal - -print("Float original:", float_num) -print("Float convertido a entero (se trunca la parte decimal):", entero_convertido) - -print("--------------") - -print("\nEjercicio 4: Variables") -print("Crea variables para tu nombre, edad y altura.") -print("Usa f-strings para imprimir una presentación.") - -# Solución: -nombre = "midudev" -edad = 18 -altura = 1.90 - -# Imprimir presentación con f-string -print(f"Hola! Me llamo {nombre} y tengo {edad} años, mido {altura} metros") - -print("--------------") - -print("\nEjercicio 5: Números") -print("1. Crea una variable con el número PI (sin asignar una variable)") -print("2. Redondea el número con round()") -print("3. Haz la división entera entre el número que te salió y el número 2") -print("4. El resultado debería ser 1") - -# Solución: -# Redondeamos directamente el valor de pi sin almacenarlo en una variable -resultado = int(round(3.1416) / 2) -print("Valor de PI (aproximado):", 3.1416) -print("PI redondeado:", round(3.1416)) -print("División entera de PI redondeado entre 2:", resultado) +### +# soluciones.py +# Soluciones a los ejercicios del archivo exercises.py +### + +print("\nEjercicio 1: Imprimir mensajes") +print("Escribe un programa que imprima tu nombre y tu ciudad en líneas separadas.") + +# Solución: +nombre = "Carlos" # Reemplázalo con tu nombre +ciudad = "Buenos Aires" # Reemplázalo con tu ciudad + +print(nombre) +print(ciudad) + +print("--------------") + +print("\nEjercicio 2: Muestra los tipos de datos de las siguientes variables:") +print("Usa el comando 'type()' para determinar el tipo de datos de cada variable.") + +# Variables dadas en el enunciado +a = 15 +b = 3.14159 +c = "Hola mundo" +d = True +e = None + +# Solución: +print("Tipo de a:", type(a)) +print("Tipo de b:", type(b)) +print("Tipo de c:", type(c)) +print("Tipo de d:", type(d)) +print("Tipo de e:", type(e)) + +print("--------------") + +print("\nEjercicio 3: Casting de tipos") +print("Convierte la cadena '12345' a un entero y luego a un float.") +print("Convierte el float 3.99 a un entero. ¿Qué ocurre?") + +# Solución: +cadena = "12345" +numero_entero = int(cadena) # Convertir cadena a entero +numero_float = float(numero_entero) # Convertir entero a float + +print("Número entero:", numero_entero) +print("Número como float:", numero_float) + +float_num = 3.99 +entero_convertido = int(float_num) # Se trunca el decimal + +print("Float original:", float_num) +print("Float convertido a entero (se trunca la parte decimal):", entero_convertido) + +print("--------------") + +print("\nEjercicio 4: Variables") +print("Crea variables para tu nombre, edad y altura.") +print("Usa f-strings para imprimir una presentación.") + +# Solución: +nombre = "midudev" +edad = 18 +altura = 1.90 + +# Imprimir presentación con f-string +print(f"Hola! Me llamo {nombre} y tengo {edad} años, mido {altura} metros") + +print("--------------") + +print("\nEjercicio 5: Números") +print("1. Crea una variable con el número PI (sin asignar una variable)") +print("2. Redondea el número con round()") +print("3. Haz la división entera entre el número que te salió y el número 2") +print("4. El resultado debería ser 1") + +# Solución: +# Redondeamos directamente el valor de pi sin almacenarlo en una variable +resultado = int(round(3.1416) / 2) +print("Valor de PI (aproximado):", 3.1416) +print("PI redondeado:", round(3.1416)) +print("División entera de PI redondeado entre 2:", resultado) diff --git a/02_flow_control/01_if.py b/02_flow_control/01_if.py index 2b99ef9..fb2fdab 100644 --- a/02_flow_control/01_if.py +++ b/02_flow_control/01_if.py @@ -1,224 +1,224 @@ -### -# 01 - Sentencias condicionales (if, elif, else) -# Permiten ejecutar bloques de código solo si se cumplen ciertas condiciones. -### - -# Podemos importar módulos de Python para usarlos en nuestros programas. -# En este caso, importamos el módulo "os" que nos da acceso a funciones -# relacionadas con el sistema operativo -import os - -# system() nos permite ejecutar un comando en la terminal -# en este caso lo hacemos para limpiar la pantalla -os.system("clear") -# En el caso que tu sistema no tenga la función "clear", -# puedes usar el comando que sea correcto. - -print("\n Sentencia simple condicional") - -# Podemos usar la palabra clave "if" para ejecutar un bloque de código -# solo si se cumple una condición. -edad = 18 -if edad >= 18: - print("Eres mayor de edad") - print("¡Felicidades!") - -# Si no se cumple la condición, no se ejecuta el bloque de código -edad = 15 -if edad >= 18: - print("Eres mayor de edad") - print("¡Felicidades!") - -# Podemos usar el comando "else" para ejecutar un bloque de código -# si no se cumple la condición anterior del if -print("\n Sentencia condicional con else") -edad = 15 -if edad >= 18: - print("Eres mayor de edad") -else: - print("Eres menor de edad") - -print("\n Sentencia condicional con elif") -nota = 5 - -# Además de usar "if" y "else", podemos usar "elif" para determinar -# múltiples condiciones, ten en cuenta que sólo se ejecutará el primer bloque -# de código que cumpla la condición (o la del else, si está presente) -if nota >= 9: - print("¡Sobresaliente!") -elif nota >= 7: - print("Notable!") -elif nota >= 5: - print("¡Aprobado!") -else: - print("¡No está calificado!") - -print("\n Condiciones múltiples") -edad = 16 -tiene_carnet = True - -# Los operadores lógicos en Python son: -# and: True si ambos operandos son verdaderos -# or: True si al menos uno de los operandos es verdadero -# En JavaScript: -# && sería and -# || sería or - -# En el caso que seas mayor de edad y tengas carnet... -# entonces podrás conducir -if edad >= 18 and tiene_carnet: - print("Puedes conducir 🚗") -else: - print("POLICIA 🚔!!!1!!!") - -# En un pueblo de Isla Margarita son más laxos y -# te dejan conducir si eres mayor de edad O tienes carnet -if edad >= 18 or tiene_carnet: - print("Puedes conducir en la Isla Margarita 🚗") -else: - print("Paga al policía y te deja conducir!!!") - -# También tenemos el operador lógico "not" -# que nos permite negar una condición -es_fin_de_semana = False -# JavaScript -> ! -if not es_fin_de_semana: - print("¡midu, venga que hay que streamear!") - -# Podemos anidar condicionales, uno dentro del otro -# para determinar múltiples condiciones aunque -# siempre intentaremos evitar esto para simplificar -print("\n Anidar condicionales") -edad = 20 -tiene_dinero = True - -if edad >= 18: - if tiene_dinero: - print("Puedes ir a la discoteca") - else: - print("Quédate en casa") -else: - print("No puedes entrar a la disco") - -# Más fácil sería: -# if edad < 18: -# print("No puedes entrar a la disco") -# elif tiene_dinero: -# print("Puedes ir a la discoteca") -# else: -# print("Quédate en casa") - -# Ten en cuenta que hay valores que al usarlos como condiciones -# en Python son evaluados como verdaderos o falsos -# por ejemplo, el número 5, es True -numero = 5 -if numero: # True - print("El número no es cero") - -# Pero el número 0 se evalúa como False -numero = 0 -if numero: # False - print("Aquí no entrará nunca") - -# También el valor vacío "" se evalúa como False -nombre = "" -if nombre: - print("El nombre no es vacío") - -# ¡Ten cuidado con no confundir la asignación = con la comparación ==! -numero = 3 # asignación -es_el_tres = numero == 3 # comparación - -if es_el_tres: - print("El número es 3") - -# A veces podemos crear condicionales en una sola línea usando -# las ternarias, es una forma concisa de un if-else en una línea de código -print("\nLa condición ternaria:") -# [código si cumple la condición] if [condicion] else [codigo si no cumple] - -edad = 17 -mensaje = "Es mayor de edad" if edad >= 18 else "Es menor de edad" -print(mensaje) - -### -# EJERCICIOS -### - -# Ejercicio 1: Determinar el mayor de dos números -# Pide al usuario que introduzca dos números y muestra un mensaje -# indicando cuál es mayor o si son iguales - - -print("\nEjercicio 1: Determinar el mayor de dos números") - -numero1 = int(input("Introduce un número: ")) -numero2 = int(input("Introduce otro número: ")) - -if numero1 > numero2: - print(f"El número {numero1} es mayor que {numero2}") -elif numero1 < numero2: - print(f"El número {numero2} es mayor que {numero1}") -else: - print(f"Los números {numero1} y {numero2} son iguales") - -# Ejercicio 2: Calculadora simple -# Pide al usuario dos números y una operación (+, -, *, /) -# Realiza la operación y muestra el resultado (maneja la división entre zero) - -print("\nEjercicio 2: Calculadora simple") - -num1 = int(input("Introduce un número: ")) -num2 = int(input("Introduce otro número: ")) - -operation = input("Introduce la operación (+, -, *, /): ") -match operation: - case "+": - print(f"La suma es: {num1 + num2}") - case "-": - print(f"La resta es: {num1 - num2}") - case "*": - print(f"La multiplicación es: {num1 * num2}") - case "/": - if num2 == 0: - print("No se puede dividir entre cero") - else: - print(f"La división es: {num1 / num2}") - case _: # En caso de que haya un error - print("Operación no válida") - -# Ejercicio 3: Año bisiesto -# Pide al usuario que introduzca un año y determina si es bisiesto. -# Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400. - -print("\nEjercicio 3: Año bisiesto") - -year = int(input("Introduce un año:")) -if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): - print(f"{year} es un año bisiesto") -else: - print(f"{year} no es un año bisiesto") - -# Ejercicio 4: Categorizar edades -# Pide al usuario que introduzca una edad y la clasifique en: -# - Bebé (0-2 años) -# - Niño (3-12 años) -# - Adolescente (13-17 años) -# - Adulto (18-64 años) -# - Adulto mayor (65 años o más) - -print("\nEjercicio 4: Categorizar edades") - -edad = int(input("Introduce tu edad: ")) -if edad < 0: - print("No existes") -elif edad <= 2: - print("Eres un bebé") -elif edad <= 12: - print("Eres un niño") -elif edad <= 17: - print("Eres un adolescente") -elif edad <= 64: - print("Eres un adulto") -else: - print("Eres un adulto mayor") +### +# 01 - Sentencias condicionales (if, elif, else) +# Permiten ejecutar bloques de código solo si se cumplen ciertas condiciones. +### + +# Podemos importar módulos de Python para usarlos en nuestros programas. +# En este caso, importamos el módulo "os" que nos da acceso a funciones +# relacionadas con el sistema operativo +import os + +# system() nos permite ejecutar un comando en la terminal +# en este caso lo hacemos para limpiar la pantalla +os.system("clear") +# En el caso que tu sistema no tenga la función "clear", +# puedes usar el comando que sea correcto. + +print("\n Sentencia simple condicional") + +# Podemos usar la palabra clave "if" para ejecutar un bloque de código +# solo si se cumple una condición. +edad = 18 +if edad >= 18: + print("Eres mayor de edad") + print("¡Felicidades!") + +# Si no se cumple la condición, no se ejecuta el bloque de código +edad = 15 +if edad >= 18: + print("Eres mayor de edad") + print("¡Felicidades!") + +# Podemos usar el comando "else" para ejecutar un bloque de código +# si no se cumple la condición anterior del if +print("\n Sentencia condicional con else") +edad = 15 +if edad >= 18: + print("Eres mayor de edad") +else: + print("Eres menor de edad") + +print("\n Sentencia condicional con elif") +nota = 5 + +# Además de usar "if" y "else", podemos usar "elif" para determinar +# múltiples condiciones, ten en cuenta que sólo se ejecutará el primer bloque +# de código que cumpla la condición (o la del else, si está presente) +if nota >= 9: + print("¡Sobresaliente!") +elif nota >= 7: + print("Notable!") +elif nota >= 5: + print("¡Aprobado!") +else: + print("¡No está calificado!") + +print("\n Condiciones múltiples") +edad = 16 +tiene_carnet = True + +# Los operadores lógicos en Python son: +# and: True si ambos operandos son verdaderos +# or: True si al menos uno de los operandos es verdadero +# En JavaScript: +# && sería and +# || sería or + +# En el caso que seas mayor de edad y tengas carnet... +# entonces podrás conducir +if edad >= 18 and tiene_carnet: + print("Puedes conducir 🚗") +else: + print("POLICIA 🚔!!!1!!!") + +# En un pueblo de Isla Margarita son más laxos y +# te dejan conducir si eres mayor de edad O tienes carnet +if edad >= 18 or tiene_carnet: + print("Puedes conducir en la Isla Margarita 🚗") +else: + print("Paga al policía y te deja conducir!!!") + +# También tenemos el operador lógico "not" +# que nos permite negar una condición +es_fin_de_semana = False +# JavaScript -> ! +if not es_fin_de_semana: + print("¡midu, venga que hay que streamear!") + +# Podemos anidar condicionales, uno dentro del otro +# para determinar múltiples condiciones aunque +# siempre intentaremos evitar esto para simplificar +print("\n Anidar condicionales") +edad = 20 +tiene_dinero = True + +if edad >= 18: + if tiene_dinero: + print("Puedes ir a la discoteca") + else: + print("Quédate en casa") +else: + print("No puedes entrar a la disco") + +# Más fácil sería: +# if edad < 18: +# print("No puedes entrar a la disco") +# elif tiene_dinero: +# print("Puedes ir a la discoteca") +# else: +# print("Quédate en casa") + +# Ten en cuenta que hay valores que al usarlos como condiciones +# en Python son evaluados como verdaderos o falsos +# por ejemplo, el número 5, es True +numero = 5 +if numero: # True + print("El número no es cero") + +# Pero el número 0 se evalúa como False +numero = 0 +if numero: # False + print("Aquí no entrará nunca") + +# También el valor vacío "" se evalúa como False +nombre = "" +if nombre: + print("El nombre no es vacío") + +# ¡Ten cuidado con no confundir la asignación = con la comparación ==! +numero = 3 # asignación +es_el_tres = numero == 3 # comparación + +if es_el_tres: + print("El número es 3") + +# A veces podemos crear condicionales en una sola línea usando +# las ternarias, es una forma concisa de un if-else en una línea de código +print("\nLa condición ternaria:") +# [código si cumple la condición] if [condicion] else [codigo si no cumple] + +edad = 17 +mensaje = "Es mayor de edad" if edad >= 18 else "Es menor de edad" +print(mensaje) + +### +# EJERCICIOS +### + +# Ejercicio 1: Determinar el mayor de dos números +# Pide al usuario que introduzca dos números y muestra un mensaje +# indicando cuál es mayor o si son iguales + + +print("\nEjercicio 1: Determinar el mayor de dos números") + +numero1 = int(input("Introduce un número: ")) +numero2 = int(input("Introduce otro número: ")) + +if numero1 > numero2: + print(f"El número {numero1} es mayor que {numero2}") +elif numero1 < numero2: + print(f"El número {numero2} es mayor que {numero1}") +else: + print(f"Los números {numero1} y {numero2} son iguales") + +# Ejercicio 2: Calculadora simple +# Pide al usuario dos números y una operación (+, -, *, /) +# Realiza la operación y muestra el resultado (maneja la división entre zero) + +print("\nEjercicio 2: Calculadora simple") + +num1 = int(input("Introduce un número: ")) +num2 = int(input("Introduce otro número: ")) + +operation = input("Introduce la operación (+, -, *, /): ") +match operation: + case "+": + print(f"La suma es: {num1 + num2}") + case "-": + print(f"La resta es: {num1 - num2}") + case "*": + print(f"La multiplicación es: {num1 * num2}") + case "/": + if num2 == 0: + print("No se puede dividir entre cero") + else: + print(f"La división es: {num1 / num2}") + case _: # En caso de que haya un error + print("Operación no válida") + +# Ejercicio 3: Año bisiesto +# Pide al usuario que introduzca un año y determina si es bisiesto. +# Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400. + +print("\nEjercicio 3: Año bisiesto") + +year = int(input("Introduce un año:")) +if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): + print(f"{year} es un año bisiesto") +else: + print(f"{year} no es un año bisiesto") + +# Ejercicio 4: Categorizar edades +# Pide al usuario que introduzca una edad y la clasifique en: +# - Bebé (0-2 años) +# - Niño (3-12 años) +# - Adolescente (13-17 años) +# - Adulto (18-64 años) +# - Adulto mayor (65 años o más) + +print("\nEjercicio 4: Categorizar edades") + +edad = int(input("Introduce tu edad: ")) +if edad < 0: + print("No existes") +elif edad <= 2: + print("Eres un bebé") +elif edad <= 12: + print("Eres un niño") +elif edad <= 17: + print("Eres un adolescente") +elif edad <= 64: + print("Eres un adulto") +else: + print("Eres un adulto mayor") diff --git a/02_flow_control/01_if_solutions.py b/02_flow_control/01_if_solutions.py index d3fa21e..9610bb4 100644 --- a/02_flow_control/01_if_solutions.py +++ b/02_flow_control/01_if_solutions.py @@ -1,76 +1,76 @@ -### -# EJERCICIOS -### - -# Ejercicio 1: Determinar el mayor de dos números -# Pide al usuario que introduzca dos números y muestra un mensaje -# indicando cuál es mayor o si son iguales -print("\nEjercicio 1:") -num1 = int(input("Introduce el primer número: ")) -num2 = int(input("Introduce el segundo número: ")) - -if num1 > num2: - print(f"{num1} es mayor que {num2}") -elif num2 > num1: - print(f"{num2} es mayor que {num1}") -else: - print("Los números son iguales") - -# Ejercicio 2: Calculadora simple -# Pide al usuario dos números y una operación (+, -, *, /) -# Realiza la operación y muestra el resultado (maneja la división entre zero) -print("\nEjercicio 2:") -num1 = float(input("Introduce el primer número: ")) -num2 = float(input("Introduce el segundo número: ")) -operacion = input("Introduce la operación (+, -, *, /): ") - -if operacion == "+": - resultado = num1 + num2 -elif operacion == "-": - resultado = num1 - num2 -elif operacion == "*": - resultado = num1 * num2 -elif operacion == "/": - if num2 == 0: - print("Error: No se puede dividir por cero.") - else: - resultado = num1 / num2 -else: - print("Operación no válida.") - -if 'resultado' in locals(): #Comprueba si la variable resultado existe. - print(f"El resultado es: {resultado}") - -# Ejercicio 3: Año bisiesto -# Pide al usuario que introduzca un año y determina si es bisiesto. -# Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400. -print("\nEjercicio 3:") -anio = int(input("Introduce un año: ")) - -if (anio % 4 == 0 and anio % 100 != 0) or anio % 400 == 0: - print(f"{anio} es un año bisiesto.") -else: - print(f"{anio} no es un año bisiesto.") - -# Ejercicio 4: Categorizar edades -# Pide al usuario que introduzca una edad y la clasifique en: -# - Bebé (0-2 años) -# - Niño (3-12 años) -# - Adolescente (13-17 años) -# - Adulto (18-64 años) -# - Adulto mayor (65 años o más) -print("\nEjercicio 4:") -edad = int(input("Introduce una edad: ")) - -if 0 <= edad <= 2: - print("Bebé") -elif 3 <= edad <= 12: - print("Niño") -elif 13 <= edad <= 17: - print("Adolescente") -elif 18 <= edad <= 64: - print("Adulto") -elif edad >= 65: - print("Adulto mayor") -else: +### +# EJERCICIOS +### + +# Ejercicio 1: Determinar el mayor de dos números +# Pide al usuario que introduzca dos números y muestra un mensaje +# indicando cuál es mayor o si son iguales +print("\nEjercicio 1:") +num1 = int(input("Introduce el primer número: ")) +num2 = int(input("Introduce el segundo número: ")) + +if num1 > num2: + print(f"{num1} es mayor que {num2}") +elif num2 > num1: + print(f"{num2} es mayor que {num1}") +else: + print("Los números son iguales") + +# Ejercicio 2: Calculadora simple +# Pide al usuario dos números y una operación (+, -, *, /) +# Realiza la operación y muestra el resultado (maneja la división entre zero) +print("\nEjercicio 2:") +num1 = float(input("Introduce el primer número: ")) +num2 = float(input("Introduce el segundo número: ")) +operacion = input("Introduce la operación (+, -, *, /): ") + +if operacion == "+": + resultado = num1 + num2 +elif operacion == "-": + resultado = num1 - num2 +elif operacion == "*": + resultado = num1 * num2 +elif operacion == "/": + if num2 == 0: + print("Error: No se puede dividir por cero.") + else: + resultado = num1 / num2 +else: + print("Operación no válida.") + +if 'resultado' in locals(): #Comprueba si la variable resultado existe. + print(f"El resultado es: {resultado}") + +# Ejercicio 3: Año bisiesto +# Pide al usuario que introduzca un año y determina si es bisiesto. +# Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400. +print("\nEjercicio 3:") +anio = int(input("Introduce un año: ")) + +if (anio % 4 == 0 and anio % 100 != 0) or anio % 400 == 0: + print(f"{anio} es un año bisiesto.") +else: + print(f"{anio} no es un año bisiesto.") + +# Ejercicio 4: Categorizar edades +# Pide al usuario que introduzca una edad y la clasifique en: +# - Bebé (0-2 años) +# - Niño (3-12 años) +# - Adolescente (13-17 años) +# - Adulto (18-64 años) +# - Adulto mayor (65 años o más) +print("\nEjercicio 4:") +edad = int(input("Introduce una edad: ")) + +if 0 <= edad <= 2: + print("Bebé") +elif 3 <= edad <= 12: + print("Niño") +elif 13 <= edad <= 17: + print("Adolescente") +elif 18 <= edad <= 64: + print("Adulto") +elif edad >= 65: + print("Adulto mayor") +else: print("Edad no válida.") \ No newline at end of file diff --git a/02_flow_control/02_booleans.py b/02_flow_control/02_booleans.py index aa43336..b523ed3 100644 --- a/02_flow_control/02_booleans.py +++ b/02_flow_control/02_booleans.py @@ -1,53 +1,53 @@ -### -# 02 - Booleanos -# Valores lógicos: True (verdadero) y False (falso). -# Fundamentales para el control de flujo y la lógica en programación. -### - -# Los booleanos representan valores de verdad: True o False. -print("\nValores booleanos básicos:") -print(True) -print(False) - -# Operadores de comparación: devuelven un valor booleano. -print("\nOperadores de comparación:") -print("5 > 3:", 5 > 3) # True -print("5 < 3:", 5 < 3) # False -print("5 == 5:", 5 == 5) # True (igualdad) -print("5 != 3:", 5 != 3) # True (desigualdad) -print("5 >= 5:", 5 >= 5) # True (mayor o igual que) -print("5 <= 3:", 5 <= 3) # False (menor o igual que) - -print("\nComparación de cadenas:") -print("'manzana' < 'pera':", "manzana" < "pera") # True -print("'Hola' == 'hola'", "Hola" == "hola") # False - -# Operadores lógicos: and, or, not -print("\nOperadores lógicos:") -print("True and True:", True and True) # True -print("True and False:", True and False) # False -print("True or False:", True or False) # True -print("False or False:", False or False) # False -print("not True:", not True) # False -print("not False:", not False) # True - -# Tablas de verdad (para referencia): -print("\nTablas de verdad:") -print("\nand:") -print("A B A and B") -print("True True ", True and True) -print("True False", True and False) -print("False True ", False and True) -print("False False", False and False) - -print("\n or:") -print("A B A or B") -print("True True ", True or True) -print("True False", True or False) -print("False True ", False or True) -print("False False", False or False) - -print("\n not:") -print("A not A") -print("True ", not True) -print("False", not False) +### +# 02 - Booleanos +# Valores lógicos: True (verdadero) y False (falso). +# Fundamentales para el control de flujo y la lógica en programación. +### + +# Los booleanos representan valores de verdad: True o False. +print("\nValores booleanos básicos:") +print(True) +print(False) + +# Operadores de comparación: devuelven un valor booleano. +print("\nOperadores de comparación:") +print("5 > 3:", 5 > 3) # True +print("5 < 3:", 5 < 3) # False +print("5 == 5:", 5 == 5) # True (igualdad) +print("5 != 3:", 5 != 3) # True (desigualdad) +print("5 >= 5:", 5 >= 5) # True (mayor o igual que) +print("5 <= 3:", 5 <= 3) # False (menor o igual que) + +print("\nComparación de cadenas:") +print("'manzana' < 'pera':", "manzana" < "pera") # True +print("'Hola' == 'hola'", "Hola" == "hola") # False + +# Operadores lógicos: and, or, not +print("\nOperadores lógicos:") +print("True and True:", True and True) # True +print("True and False:", True and False) # False +print("True or False:", True or False) # True +print("False or False:", False or False) # False +print("not True:", not True) # False +print("not False:", not False) # True + +# Tablas de verdad (para referencia): +print("\nTablas de verdad:") +print("\nand:") +print("A B A and B") +print("True True ", True and True) +print("True False", True and False) +print("False True ", False and True) +print("False False", False and False) + +print("\n or:") +print("A B A or B") +print("True True ", True or True) +print("True False", True or False) +print("False True ", False or True) +print("False False", False or False) + +print("\n not:") +print("A not A") +print("True ", not True) +print("False", not False) diff --git a/02_flow_control/03_list.py b/02_flow_control/03_list.py index c069027..bad128d 100644 --- a/02_flow_control/03_list.py +++ b/02_flow_control/03_list.py @@ -1,96 +1,96 @@ -### -# 03 - Listas -# Secuencias mutables de elementos. -# Pueden contener elementos de diferentes tipos. -### - -# Creación de listas -print("\nCrear listas") -lista1 = [1, 2, 3, 4, 5] # lista de enteros -lista2 = ["manzanas", "peras", "plátanos"] # lista de cadenas -lista3 = [1, "hola", 3.14, True] # lista de tipos mixtos - -lista_vacia = [] -lista_de_listas = [[1, 2], ["calcetin", 4]] -matrix = [[1, 2], [2, 3], [4, 5]] - -print(lista1) -print(lista2) -print(lista3) -print(lista_vacia) -print(lista_de_listas) -print(matrix) - -# Acceso a elementos por índice -print("\nAcceso a elementos por índice") -print(lista2[0]) # manzanas -print(lista2[1]) # peras -print(lista2[-1]) # plátanos -print(lista2[-2]) # peras - -print(lista_de_listas[1][0]) - -# Slicing (rebanado) de listas -lista1 = [1, 2, 3, 4, 5] -print(lista1[1:4]) # [2, 3, 4] -print(lista1[:3]) # [1, 2, 3] -print(lista1[3:]) # [4, 5] -print(lista1[:]) # [1, 2, 3, 4, 5] - -# El tercer parámetro es el paso (step) -lista1 = [1, 2, 3, 4, 5, 6, 7, 8] -print(lista1[::2]) # para devolver índices pares -print(lista1[::-1]) # para devolver índices inversos - -# Modificar una lista -lista1[0] = 20 -print(lista1) - -# Añadir elementos a una lista -lista1 = [1, 2, 3] - -# forma larga y menos eficiente -lista1 = lista1 + [4, 5, 6] -print(lista1) - -# forma corta y más eficiente -lista1 += [7, 8, 9] -print(lista1) - -# Recuperar longitud de una lista -print("Longitud de la lista", len(lista1)) - -### -# EJERCICIOS -### - -# Ejercicio 1: El mensaje secreto -# Dada la siguiente lista: -# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] -# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto". - -# Ejercicio 2: Intercambio de posiciones -# Dada la siguiente lista: -# numeros = [10, 20, 30, 40, 50] -# Intercambia la primera y la última posición utilizando solo asignación por índice. - -# Ejercicio 3: El sándwich de listas -# Dadas las siguientes listas: -# pan = ["pan arriba"] -# ingredientes = ["jamón", "queso", "tomate"] -# pan_abajo = ["pan abajo"] -# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden. - -# Ejercicio 4: Duplicando la lista -# Dada una lista: -# lista = [1, 2, 3] -# Crea una nueva lista que contenga los elementos de la lista original duplicados. -# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3] - -# Ejercicio 5: Extrayendo el centro -# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing. -# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30 - -# Ejercicio 6: Reversa parcial -# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación). -# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6] +### +# 03 - Listas +# Secuencias mutables de elementos. +# Pueden contener elementos de diferentes tipos. +### + +# Creación de listas +print("\nCrear listas") +lista1 = [1, 2, 3, 4, 5] # lista de enteros +lista2 = ["manzanas", "peras", "plátanos"] # lista de cadenas +lista3 = [1, "hola", 3.14, True] # lista de tipos mixtos + +lista_vacia = [] +lista_de_listas = [[1, 2], ["calcetin", 4]] +matrix = [[1, 2], [2, 3], [4, 5]] + +print(lista1) +print(lista2) +print(lista3) +print(lista_vacia) +print(lista_de_listas) +print(matrix) + +# Acceso a elementos por índice +print("\nAcceso a elementos por índice") +print(lista2[0]) # manzanas +print(lista2[1]) # peras +print(lista2[-1]) # plátanos +print(lista2[-2]) # peras + +print(lista_de_listas[1][0]) + +# Slicing (rebanado) de listas +lista1 = [1, 2, 3, 4, 5] +print(lista1[1:4]) # [2, 3, 4] +print(lista1[:3]) # [1, 2, 3] +print(lista1[3:]) # [4, 5] +print(lista1[:]) # [1, 2, 3, 4, 5] + +# El tercer parámetro es el paso (step) +lista1 = [1, 2, 3, 4, 5, 6, 7, 8] +print(lista1[::2]) # para devolver índices pares +print(lista1[::-1]) # para devolver índices inversos + +# Modificar una lista +lista1[0] = 20 +print(lista1) + +# Añadir elementos a una lista +lista1 = [1, 2, 3] + +# forma larga y menos eficiente +lista1 = lista1 + [4, 5, 6] +print(lista1) + +# forma corta y más eficiente +lista1 += [7, 8, 9] +print(lista1) + +# Recuperar longitud de una lista +print("Longitud de la lista", len(lista1)) + +### +# EJERCICIOS +### + +# Ejercicio 1: El mensaje secreto +# Dada la siguiente lista: +# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] +# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto". + +# Ejercicio 2: Intercambio de posiciones +# Dada la siguiente lista: +# numeros = [10, 20, 30, 40, 50] +# Intercambia la primera y la última posición utilizando solo asignación por índice. + +# Ejercicio 3: El sándwich de listas +# Dadas las siguientes listas: +# pan = ["pan arriba"] +# ingredientes = ["jamón", "queso", "tomate"] +# pan_abajo = ["pan abajo"] +# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden. + +# Ejercicio 4: Duplicando la lista +# Dada una lista: +# lista = [1, 2, 3] +# Crea una nueva lista que contenga los elementos de la lista original duplicados. +# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3] + +# Ejercicio 5: Extrayendo el centro +# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing. +# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30 + +# Ejercicio 6: Reversa parcial +# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación). +# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6] diff --git a/02_flow_control/03_list_solutions.py b/02_flow_control/03_list_solutions.py index dab7f63..108089a 100644 --- a/02_flow_control/03_list_solutions.py +++ b/02_flow_control/03_list_solutions.py @@ -1,61 +1,61 @@ -### -# SOLUCIONES -### - -# Ejercicio 1: El mensaje secreto -# Dada la siguiente lista: -# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] -# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto". -print("\nEjercicio 1:") -mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] -secreto = mensaje[7:] -print(secreto) - -# Ejercicio 2: Intercambio de posiciones -# Dada la siguiente lista: -# numeros = [10, 20, 30, 40, 50] -# Intercambia la primera y la última posición utilizando solo asignación por índice. -print("\nEjercicio 2:") -numeros = [10, 20, 30, 40, 50] -numeros[0], numeros[-1] = numeros[-1], numeros[0] # Intercambio en una sola línea. -print(numeros) - -# Ejercicio 3: El sándwich de listas -# Dadas las siguientes listas: -# pan = ["pan arriba"] -# ingredientes = ["jamón", "queso", "tomate"] -# pan_abajo = ["pan abajo"] -# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden. -print("\nEjercicio 3:") -pan = ["pan arriba"] -ingredientes = ["jamón", "queso", "tomate"] -pan_abajo = ["pan abajo"] -sandwich = pan + ingredientes + pan_abajo -print(sandwich) - -# Ejercicio 4: Duplicando la lista -# Dada una lista: -# lista = [1, 2, 3] -# Crea una nueva lista que contenga los elementos de la lista original duplicados. -# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3] -print("\nEjercicio 4:") -lista = [1, 2, 3] -lista_duplicada = lista + lista -print(lista_duplicada) - -# Ejercicio 5: Extrayendo el centro -# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing. -# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30 -print("\nEjercicio 5:") -lista = [10, 20, 30, 40, 50] -centro = len(lista) // 2 -print(lista[centro]) - -# Ejercicio 6: Reversa parcial -# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación). -# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6] -print("\nEjercicio 6:") -lista = [1, 2, 3, 4, 5, 6] -mitad = len(lista) // 2 -lista_invertida = lista[:mitad][::-1] + lista[mitad:] +### +# SOLUCIONES +### + +# Ejercicio 1: El mensaje secreto +# Dada la siguiente lista: +# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] +# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto". +print("\nEjercicio 1:") +mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"] +secreto = mensaje[7:] +print(secreto) + +# Ejercicio 2: Intercambio de posiciones +# Dada la siguiente lista: +# numeros = [10, 20, 30, 40, 50] +# Intercambia la primera y la última posición utilizando solo asignación por índice. +print("\nEjercicio 2:") +numeros = [10, 20, 30, 40, 50] +numeros[0], numeros[-1] = numeros[-1], numeros[0] # Intercambio en una sola línea. +print(numeros) + +# Ejercicio 3: El sándwich de listas +# Dadas las siguientes listas: +# pan = ["pan arriba"] +# ingredientes = ["jamón", "queso", "tomate"] +# pan_abajo = ["pan abajo"] +# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden. +print("\nEjercicio 3:") +pan = ["pan arriba"] +ingredientes = ["jamón", "queso", "tomate"] +pan_abajo = ["pan abajo"] +sandwich = pan + ingredientes + pan_abajo +print(sandwich) + +# Ejercicio 4: Duplicando la lista +# Dada una lista: +# lista = [1, 2, 3] +# Crea una nueva lista que contenga los elementos de la lista original duplicados. +# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3] +print("\nEjercicio 4:") +lista = [1, 2, 3] +lista_duplicada = lista + lista +print(lista_duplicada) + +# Ejercicio 5: Extrayendo el centro +# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing. +# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30 +print("\nEjercicio 5:") +lista = [10, 20, 30, 40, 50] +centro = len(lista) // 2 +print(lista[centro]) + +# Ejercicio 6: Reversa parcial +# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación). +# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6] +print("\nEjercicio 6:") +lista = [1, 2, 3, 4, 5, 6] +mitad = len(lista) // 2 +lista_invertida = lista[:mitad][::-1] + lista[mitad:] print(lista_invertida) \ No newline at end of file diff --git a/02_flow_control/04_list_methods.py b/02_flow_control/04_list_methods.py index 6b147a4..b320638 100644 --- a/02_flow_control/04_list_methods.py +++ b/02_flow_control/04_list_methods.py @@ -1,113 +1,113 @@ -### -# 04 - Listas Métodos -# Los métodos más importantes para trabajar con listas -### - -# Creamos una lista con valores -lista1 = ['a', 'b', 'c', 'd'] - -# Añadir o insertar elementos a la lista -lista1.append('e') # Añade un elemento al final -print(lista1) - -# Inserta un elemento en la posición que le indiquemos como primer argumento -lista1.insert(1, '@') -print(lista1) - -lista1.extend(['😃', '😍']) # Agrega elementos al final de la lista -print(lista1) - -# Eliminar elementos de la lista -lista1.remove('@') # Eliminar la primera aparición de la cadena de texto @ -print(lista1) - -ultimo = lista1.pop() # Eliminar el último elemento de la lista y además te lo devuelve -print(ultimo) -print(lista1) - -lista1.pop(1) # Eliminar el segundo elemento de la lista (es el índice 1) -print(lista1) - -# Eliminar por lo bestia un índice -del lista1[-1] -print(lista1) - -lista1.clear() # Eliminar todos los elementos de la lista -print(lista1) - -# Eliminar un rango de elementos -lista1 = ['🐼', '🐨', '🐶', '😿', '🐹'] -# eliminamos los elementos del índice 1 al 3 (no incluye el índice 3) -del lista1[1:3] -print(lista1) - -# Más métodos útiles -print('Ordenar listas modificando la original') -numbers = [3, 10, 2, 8, 99, 101] -numbers.sort() -print(numbers) - -print('Ordenar listas creando una nueva lista') -numbers = [3, 10, 2, 8, 99, 101] -sorted_numbers = sorted(numbers) -print(sorted_numbers) - -print("Ordenar una lista de cadenas de texto (todo minúscula)") -frutas = ['manzana', 'pera', 'limón', 'manzana', 'pera', 'limón'] -sorted_frutas = sorted(frutas) -print(sorted_frutas) - -print("Ordenar una lista de cadenas de texto (mezclas mayúscula y minúscula)") -frutas = ['manzana', 'Pera', 'Limón', 'manzana', 'pera', 'limón'] -frutas.sort(key=str.lower) -print(frutas) - -#  Más cositas útiles -animals = ['🐶', '🐼', '🐨', '🐶'] -print(len(animals)) # Tamaño de la listas -> 4 -print(animals.count('🐶')) # Cuantas veces aparece el elemento '🐶' -> 2 -print('🐼' in animals) # Comprueba si hay un '🐼' en la lista -> True -print('🐹' in animals) # -> False - -### -# EJERCICIOS -# Usa siempre que puedas los métodos que has aprendido -### - -# Ejercicio 1: Añadir y modificar elementos -# Crea una lista con los números del 1 al 5. -# Añade el número 6 al final usando append(). -# Inserta el número 10 en la posición 2 usando insert(). -# Modifica el primer elemento de la lista para que sea 0. - -# Ejercicio 2: Combinar y limpiar listas -# Crea dos listas: -# lista_a = [1, 2, 3] -# lista_b = [4, 5, 6, 1, 2] -# Extiende lista_a con lista_b usando extend(). -# Elimina la primera aparición del número 1 en lista_a usando remove(). -# Elimina el elemento en el índice 3 de lista_a usando pop(). Imprime el elemento eliminado. -# Limpia completamente lista_b usando clear(). - -# Ejercicio 3: Slicing y eliminación con del -# Crea una lista con los números del 1 al 10. -# Utiliza slicing y del para eliminar los elementos desde el índice 2 hasta el 5 (sin incluir el 5). -# Imprime la lista resultante. - -# Ejercicio 4: Ordenar y contar -# Crea una lista con los siguientes números: [5, 2, 8, 1, 9, 4, 2]. -# Ordena la lista de forma ascendente usando sort(). -# Cuenta cuántas veces aparece el número 2 en la lista usando count(). -# Comprueba si el número 7 está en la lista usando in. - -# Ejercicio 5: Copia vs. Referencia -# Crea una lista llamada original con los números [1, 2, 3]. -# Crea una copia de la lista original llamada copia_1 usando slicing. -# Crea otra copia llamada copia_2 usando copy(). -# Crea una referencia a la lista original llamada referencia. -# Modifica el primer elemento de la lista referencia a 10. -# Imprime las cuatro listas (original, copia_1, copia_2, referencia) y observa los cambios. - -# Ejercicio 6: Ordenar strings sin diferenciar mayúsculas y minúsculas. -# Crea una lista con las siguientes cadenas: ["Manzana", "pera", "BANANA", "naranja"]. -# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. +### +# 04 - Listas Métodos +# Los métodos más importantes para trabajar con listas +### + +# Creamos una lista con valores +lista1 = ['a', 'b', 'c', 'd'] + +# Añadir o insertar elementos a la lista +lista1.append('e') # Añade un elemento al final +print(lista1) + +# Inserta un elemento en la posición que le indiquemos como primer argumento +lista1.insert(1, '@') +print(lista1) + +lista1.extend(['😃', '😍']) # Agrega elementos al final de la lista +print(lista1) + +# Eliminar elementos de la lista +lista1.remove('@') # Eliminar la primera aparición de la cadena de texto @ +print(lista1) + +ultimo = lista1.pop() # Eliminar el último elemento de la lista y además te lo devuelve +print(ultimo) +print(lista1) + +lista1.pop(1) # Eliminar el segundo elemento de la lista (es el índice 1) +print(lista1) + +# Eliminar por lo bestia un índice +del lista1[-1] +print(lista1) + +lista1.clear() # Eliminar todos los elementos de la lista +print(lista1) + +# Eliminar un rango de elementos +lista1 = ['🐼', '🐨', '🐶', '😿', '🐹'] +# eliminamos los elementos del índice 1 al 3 (no incluye el índice 3) +del lista1[1:3] +print(lista1) + +# Más métodos útiles +print('Ordenar listas modificando la original') +numbers = [3, 10, 2, 8, 99, 101] +numbers.sort() +print(numbers) + +print('Ordenar listas creando una nueva lista') +numbers = [3, 10, 2, 8, 99, 101] +sorted_numbers = sorted(numbers) +print(sorted_numbers) + +print("Ordenar una lista de cadenas de texto (todo minúscula)") +frutas = ['manzana', 'pera', 'limón', 'manzana', 'pera', 'limón'] +sorted_frutas = sorted(frutas) +print(sorted_frutas) + +print("Ordenar una lista de cadenas de texto (mezclas mayúscula y minúscula)") +frutas = ['manzana', 'Pera', 'Limón', 'manzana', 'pera', 'limón'] +frutas.sort(key=str.lower) +print(frutas) + +#  Más cositas útiles +animals = ['🐶', '🐼', '🐨', '🐶'] +print(len(animals)) # Tamaño de la listas -> 4 +print(animals.count('🐶')) # Cuantas veces aparece el elemento '🐶' -> 2 +print('🐼' in animals) # Comprueba si hay un '🐼' en la lista -> True +print('🐹' in animals) # -> False + +### +# EJERCICIOS +# Usa siempre que puedas los métodos que has aprendido +### + +# Ejercicio 1: Añadir y modificar elementos +# Crea una lista con los números del 1 al 5. +# Añade el número 6 al final usando append(). +# Inserta el número 10 en la posición 2 usando insert(). +# Modifica el primer elemento de la lista para que sea 0. + +# Ejercicio 2: Combinar y limpiar listas +# Crea dos listas: +# lista_a = [1, 2, 3] +# lista_b = [4, 5, 6, 1, 2] +# Extiende lista_a con lista_b usando extend(). +# Elimina la primera aparición del número 1 en lista_a usando remove(). +# Elimina el elemento en el índice 3 de lista_a usando pop(). Imprime el elemento eliminado. +# Limpia completamente lista_b usando clear(). + +# Ejercicio 3: Slicing y eliminación con del +# Crea una lista con los números del 1 al 10. +# Utiliza slicing y del para eliminar los elementos desde el índice 2 hasta el 5 (sin incluir el 5). +# Imprime la lista resultante. + +# Ejercicio 4: Ordenar y contar +# Crea una lista con los siguientes números: [5, 2, 8, 1, 9, 4, 2]. +# Ordena la lista de forma ascendente usando sort(). +# Cuenta cuántas veces aparece el número 2 en la lista usando count(). +# Comprueba si el número 7 está en la lista usando in. + +# Ejercicio 5: Copia vs. Referencia +# Crea una lista llamada original con los números [1, 2, 3]. +# Crea una copia de la lista original llamada copia_1 usando slicing. +# Crea otra copia llamada copia_2 usando copy(). +# Crea una referencia a la lista original llamada referencia. +# Modifica el primer elemento de la lista referencia a 10. +# Imprime las cuatro listas (original, copia_1, copia_2, referencia) y observa los cambios. + +# Ejercicio 6: Ordenar strings sin diferenciar mayúsculas y minúsculas. +# Crea una lista con las siguientes cadenas: ["Manzana", "pera", "BANANA", "naranja"]. +# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. diff --git a/02_flow_control/04_list_methods_solutions.py b/02_flow_control/04_list_methods_solutions.py index ea93fcb..7cd3b8f 100644 --- a/02_flow_control/04_list_methods_solutions.py +++ b/02_flow_control/04_list_methods_solutions.py @@ -1,83 +1,83 @@ -### -# EJERCICIOS -### - -# Ejercicio 1: Añadir y modificar elementos -# Crea una lista con los números del 1 al 5. -# Añade el número 6 al final usando append(). -# Inserta el número 10 en la posición 2 usando insert(). -# Modifica el primer elemento de la lista para que sea 0. -print("\nEjercicio 1:") -lista = [1, 2, 3, 4, 5] -lista.append(6) -lista.insert(2, 10) -lista[0] = 0 -print(lista) # Output: [0, 2, 10, 3, 4, 5, 6] - -# Ejercicio 2: Combinar y limpiar listas -# Crea dos listas: -# lista_a = [1, 2, 3] -# lista_b = [4, 5, 6, 1, 2] -# Extiende lista_a con lista_b usando extend(). -# Elimina la primera aparición del número 1 en lista_a usando remove(). -# Elimina el elemento en el índice 3 de lista_a usando pop(). Imprime el elemento eliminado. -# Limpia completamente lista_b usando clear(). -print("\nEjercicio 2:") -lista_a = [1, 2, 3] -lista_b = [4, 5, 6, 1, 2] -lista_a.extend(lista_b) -lista_a.remove(1) -elemento_eliminado = lista_a.pop(3) -print(f"Elemento eliminado: {elemento_eliminado}") #Output: Elemento eliminado: 5 -lista_b.clear() -print("Lista a:", lista_a) #Output: Lista a: [2, 3, 4, 6, 1, 2] -print("Lista b:", lista_b) #Output: Lista b: [] - -# Ejercicio 3: Slicing y eliminación con del -# Crea una lista con los números del 1 al 10. -# Utiliza slicing y del para eliminar los elementos desde el índice 2 hasta el 5 (sin incluir el 5). -# Imprime la lista resultante. -print("\nEjercicio 3:") -lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -del lista[2:5] -print(lista) # Output: [1, 2, 6, 7, 8, 9, 10] - -# Ejercicio 4: Ordenar y contar -# Crea una lista con los siguientes números: [5, 2, 8, 1, 9, 4, 2]. -# Ordena la lista de forma ascendente usando sort(). -# Cuenta cuántas veces aparece el número 2 en la lista usando count(). -# Comprueba si el número 7 está en la lista usando in. -print("\nEjercicio 4:") -lista = [5, 2, 8, 1, 9, 4, 2] -lista.sort() -cantidad_dos = lista.count(2) -esta_el_siete = 7 in lista -print(f"Lista ordenada: {lista}") #Output: Lista ordenada: [1, 2, 2, 4, 5, 8, 9] -print(f"Cantidad de 2: {cantidad_dos}") #Output: Cantidad de 2: 2 -print(f"¿Está el 7?: {esta_el_siete}") #Output: ¿Está el 7?: False - -# Ejercicio 5: Copia vs. Referencia -# Crea una lista llamada original con los números [1, 2, 3]. -# Crea una copia de la lista original llamada copia_1 usando slicing. -# Crea otra copia llamada copia_2 usando copy(). -# Crea una referencia a la lista original llamada referencia. -# Modifica el primer elemento de la lista referencia a 10. -# Imprime las cuatro listas (original, copia_1, copia_2, referencia) y observa los cambios. -print("\nEjercicio 5:") -original = [1, 2, 3] -copia_1 = original[:] -copia_2 = original.copy() -referencia = original -referencia[0] = 10 -print(f"Original: {original}") # Output: Original: [10, 2, 3] -print(f"Copia 1 (slicing): {copia_1}") # Output: Copia 1 (slicing): [1, 2, 3] -print(f"Copia 2 (copy()): {copia_2}") # Output: Copia 2 (copy()): [1, 2, 3] -print(f"Referencia: {referencia}") # Output: Referencia: [10, 2, 3] - -# Ejercicio 6: Ordenar strings sin diferenciar mayúsculas y minúsculas. -# Crea una lista con las siguientes cadenas: ["Manzana", "pera", "BANANA", "naranja"]. -# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. -print("\nEjercicio 6:") -strings = ["Manzana", "pera", "BANANA", "naranja"] -strings.sort(key=str.lower) +### +# EJERCICIOS +### + +# Ejercicio 1: Añadir y modificar elementos +# Crea una lista con los números del 1 al 5. +# Añade el número 6 al final usando append(). +# Inserta el número 10 en la posición 2 usando insert(). +# Modifica el primer elemento de la lista para que sea 0. +print("\nEjercicio 1:") +lista = [1, 2, 3, 4, 5] +lista.append(6) +lista.insert(2, 10) +lista[0] = 0 +print(lista) # Output: [0, 2, 10, 3, 4, 5, 6] + +# Ejercicio 2: Combinar y limpiar listas +# Crea dos listas: +# lista_a = [1, 2, 3] +# lista_b = [4, 5, 6, 1, 2] +# Extiende lista_a con lista_b usando extend(). +# Elimina la primera aparición del número 1 en lista_a usando remove(). +# Elimina el elemento en el índice 3 de lista_a usando pop(). Imprime el elemento eliminado. +# Limpia completamente lista_b usando clear(). +print("\nEjercicio 2:") +lista_a = [1, 2, 3] +lista_b = [4, 5, 6, 1, 2] +lista_a.extend(lista_b) +lista_a.remove(1) +elemento_eliminado = lista_a.pop(3) +print(f"Elemento eliminado: {elemento_eliminado}") #Output: Elemento eliminado: 5 +lista_b.clear() +print("Lista a:", lista_a) #Output: Lista a: [2, 3, 4, 6, 1, 2] +print("Lista b:", lista_b) #Output: Lista b: [] + +# Ejercicio 3: Slicing y eliminación con del +# Crea una lista con los números del 1 al 10. +# Utiliza slicing y del para eliminar los elementos desde el índice 2 hasta el 5 (sin incluir el 5). +# Imprime la lista resultante. +print("\nEjercicio 3:") +lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +del lista[2:5] +print(lista) # Output: [1, 2, 6, 7, 8, 9, 10] + +# Ejercicio 4: Ordenar y contar +# Crea una lista con los siguientes números: [5, 2, 8, 1, 9, 4, 2]. +# Ordena la lista de forma ascendente usando sort(). +# Cuenta cuántas veces aparece el número 2 en la lista usando count(). +# Comprueba si el número 7 está en la lista usando in. +print("\nEjercicio 4:") +lista = [5, 2, 8, 1, 9, 4, 2] +lista.sort() +cantidad_dos = lista.count(2) +esta_el_siete = 7 in lista +print(f"Lista ordenada: {lista}") #Output: Lista ordenada: [1, 2, 2, 4, 5, 8, 9] +print(f"Cantidad de 2: {cantidad_dos}") #Output: Cantidad de 2: 2 +print(f"¿Está el 7?: {esta_el_siete}") #Output: ¿Está el 7?: False + +# Ejercicio 5: Copia vs. Referencia +# Crea una lista llamada original con los números [1, 2, 3]. +# Crea una copia de la lista original llamada copia_1 usando slicing. +# Crea otra copia llamada copia_2 usando copy(). +# Crea una referencia a la lista original llamada referencia. +# Modifica el primer elemento de la lista referencia a 10. +# Imprime las cuatro listas (original, copia_1, copia_2, referencia) y observa los cambios. +print("\nEjercicio 5:") +original = [1, 2, 3] +copia_1 = original[:] +copia_2 = original.copy() +referencia = original +referencia[0] = 10 +print(f"Original: {original}") # Output: Original: [10, 2, 3] +print(f"Copia 1 (slicing): {copia_1}") # Output: Copia 1 (slicing): [1, 2, 3] +print(f"Copia 2 (copy()): {copia_2}") # Output: Copia 2 (copy()): [1, 2, 3] +print(f"Referencia: {referencia}") # Output: Referencia: [10, 2, 3] + +# Ejercicio 6: Ordenar strings sin diferenciar mayúsculas y minúsculas. +# Crea una lista con las siguientes cadenas: ["Manzana", "pera", "BANANA", "naranja"]. +# Ordena la lista sin diferenciar entre mayúsculas y minúsculas. +print("\nEjercicio 6:") +strings = ["Manzana", "pera", "BANANA", "naranja"] +strings.sort(key=str.lower) print(strings) # Output: ['BANANA', 'Manzana', 'naranja', 'pera'] \ No newline at end of file diff --git a/03_loops/01_loop_while.py b/03_loops/01_loop_while.py index 18df4a6..f735e69 100644 --- a/03_loops/01_loop_while.py +++ b/03_loops/01_loop_while.py @@ -1,174 +1,174 @@ -### -# 01 - Bucles (while) -# Permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición -### - -print("\n Bucle while:") - -# Bucle con una simple condición -contador = 0 - -while contador <= 5: - print(contador) - contador += 1 # es super importante para evitar un bucle infinito - -# utilizando la palabra break, para romper el bucle -print("\n Bucle while con break:") -contador = 0 - -while True: - print(contador) - contador += 1 - if contador == 5: - break # sale del bucle - -# continue, que lo hace es saltar esa iteración en concreto -# y continuar con el bucle -print("\n Bucle con continue") -contador = 0 -while contador < 10: - contador += 1 - - if contador % 2 == 0: - continue - - print(contador) - -# else, esta condición cuando se ejecuta? -print("\n Bucle while con else:") -contador = 0 -while contador < 5: - print(contador) - contador += 1 -else: - print("El bucle ha terminado") - -# else, esta condición cuando se ejecuta? -print("\n Bucle while con else:") -contador = 0 -while contador < 5: - print(contador) - contador += 1 -else: - print("El bucle ha terminado") - -# pedirle al usuario un número que tiene -# que ser positivo si no, no le dejamos en paz -numero = -1 -while numero < 0: - numero = int(input("Escribe un número positivo: ")) - if numero < 0: - print("El número debe ser positivo. Intenta otra vez, majo o maja.") - -print(f"El número que has introducido es {numero}") - -numero = -1 -while numero < 0: - try: - numero = int(input("Escribe un número positivo: ")) - if numero < 0: - print("El número debe ser positivo. Intenta otra vez, majo o maja.") - except: - print("Lo que introduces debe ser un número, que si no peta!") - -print(f"El número que has introducido es {numero}") - -### -# EJERCICIOS (while) -### - -# Ejercicio 1: Cuenta atrás -# Imprime los números del 10 al 1 usando un bucle while. -print("\nEjercicio 1: Cuenta atrás") - -numero = 10 - -while numero >= 1: - print(numero) - numero -= 1 # los números se imprimen de manera descendente. - - -# Ejercicio 2: Suma de números pares (while) -# Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. -print("\nEjercicio 2: Suma de números pares") - -numero = 1 -suma = 0 - -while numero <= 20: - if numero % 2 == 0: - suma += numero - numero += 1 - -print(f"La suma de los números pares hasta 20 es: {suma}") - - -# Ejercicio 3: Factorial de un número -# Pide al usuario que introduzca un número entero positivo. -# Calcula su factorial usando un bucle while. -# El factorial de un número entero positivo es el producto de todos los números del 1 al ese número. Por ejemplo, el factorial de 5 -# 5! = 5 x 4 x 3 x 2 x 1 = 120. -print("\nEjercicio 3: Factorial de un número") - -numero = int(input("Introduce un número entero positivo: ")) -factorial = 1 - -while numero > 0: - factorial *= numero - numero -= 1 - -print(f"El factorial del número introducido es: {factorial}") - - -# Ejercicio 4: Validación de contraseña -# Pide al usuario que introduzca una contraseña. -# La contraseña debe tener al menos 8 caracteres. -# Usa un bucle while para seguir pidiendo la contraseña hasta que cumpla con los requisitos. -# Si la contraseña es válida, imprime "Contraseña válida". -print("\nEjercicio 4: Validación de contraseña") - -password = input("Introduce una contraseña (al menos 8 caracteres): ") - -while len(password) < 8: - print("La contraseña debe tener al menos 8 caracteres.") - # El usuario vuelve a digitar la contraseña, hasta que sea correcta - password = input("Introduce una contraseña (al menos 8 caracteres): ") - -print("Contraseña válida ✔") - -# Ejercicio 5: Tabla de multiplicar -# Pide al usuario que introduzca un número. -# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle while. -print("\nEjercicio 5: Tabla de multiplicar") - -numero = int(input("Introduce un número: ")) - -contador = 1 - -while contador <= 10: - print(f"{numero} x {contador} = {numero * contador}") - contador += 1 # incrementa el contador - -# Ejercicio 6: Números primos hasta N -# Pide al usuario que introduzca un número entero positivo N. -# Imprime todos los números primos menores o iguales que N usando un bucle while. -print("\nEjercicio 6: Números primos hasta N") - -numero = int(input("Introduce un número entero positivo: ")) - -contador = 2 # el primer número primo, salta de 2 en 2 - -while contador <= numero: - es_primo = True # asumimos que el número es primo - divisor = 2 # el primer número primo - - while divisor < contador: - if contador % divisor == 0: - es_primo = False - break - divisor += 1 - - if es_primo: - print(contador) - - contador += 1 +### +# 01 - Bucles (while) +# Permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición +### + +print("\n Bucle while:") + +# Bucle con una simple condición +contador = 0 + +while contador <= 5: + print(contador) + contador += 1 # es super importante para evitar un bucle infinito + +# utilizando la palabra break, para romper el bucle +print("\n Bucle while con break:") +contador = 0 + +while True: + print(contador) + contador += 1 + if contador == 5: + break # sale del bucle + +# continue, que lo hace es saltar esa iteración en concreto +# y continuar con el bucle +print("\n Bucle con continue") +contador = 0 +while contador < 10: + contador += 1 + + if contador % 2 == 0: + continue + + print(contador) + +# else, esta condición cuando se ejecuta? +print("\n Bucle while con else:") +contador = 0 +while contador < 5: + print(contador) + contador += 1 +else: + print("El bucle ha terminado") + +# else, esta condición cuando se ejecuta? +print("\n Bucle while con else:") +contador = 0 +while contador < 5: + print(contador) + contador += 1 +else: + print("El bucle ha terminado") + +# pedirle al usuario un número que tiene +# que ser positivo si no, no le dejamos en paz +numero = -1 +while numero < 0: + numero = int(input("Escribe un número positivo: ")) + if numero < 0: + print("El número debe ser positivo. Intenta otra vez, majo o maja.") + +print(f"El número que has introducido es {numero}") + +numero = -1 +while numero < 0: + try: + numero = int(input("Escribe un número positivo: ")) + if numero < 0: + print("El número debe ser positivo. Intenta otra vez, majo o maja.") + except: + print("Lo que introduces debe ser un número, que si no peta!") + +print(f"El número que has introducido es {numero}") + +### +# EJERCICIOS (while) +### + +# Ejercicio 1: Cuenta atrás +# Imprime los números del 10 al 1 usando un bucle while. +print("\nEjercicio 1: Cuenta atrás") + +numero = 10 + +while numero >= 1: + print(numero) + numero -= 1 # los números se imprimen de manera descendente. + + +# Ejercicio 2: Suma de números pares (while) +# Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. +print("\nEjercicio 2: Suma de números pares") + +numero = 1 +suma = 0 + +while numero <= 20: + if numero % 2 == 0: + suma += numero + numero += 1 + +print(f"La suma de los números pares hasta 20 es: {suma}") + + +# Ejercicio 3: Factorial de un número +# Pide al usuario que introduzca un número entero positivo. +# Calcula su factorial usando un bucle while. +# El factorial de un número entero positivo es el producto de todos los números del 1 al ese número. Por ejemplo, el factorial de 5 +# 5! = 5 x 4 x 3 x 2 x 1 = 120. +print("\nEjercicio 3: Factorial de un número") + +numero = int(input("Introduce un número entero positivo: ")) +factorial = 1 + +while numero > 0: + factorial *= numero + numero -= 1 + +print(f"El factorial del número introducido es: {factorial}") + + +# Ejercicio 4: Validación de contraseña +# Pide al usuario que introduzca una contraseña. +# La contraseña debe tener al menos 8 caracteres. +# Usa un bucle while para seguir pidiendo la contraseña hasta que cumpla con los requisitos. +# Si la contraseña es válida, imprime "Contraseña válida". +print("\nEjercicio 4: Validación de contraseña") + +password = input("Introduce una contraseña (al menos 8 caracteres): ") + +while len(password) < 8: + print("La contraseña debe tener al menos 8 caracteres.") + # El usuario vuelve a digitar la contraseña, hasta que sea correcta + password = input("Introduce una contraseña (al menos 8 caracteres): ") + +print("Contraseña válida ✔") + +# Ejercicio 5: Tabla de multiplicar +# Pide al usuario que introduzca un número. +# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle while. +print("\nEjercicio 5: Tabla de multiplicar") + +numero = int(input("Introduce un número: ")) + +contador = 1 + +while contador <= 10: + print(f"{numero} x {contador} = {numero * contador}") + contador += 1 # incrementa el contador + +# Ejercicio 6: Números primos hasta N +# Pide al usuario que introduzca un número entero positivo N. +# Imprime todos los números primos menores o iguales que N usando un bucle while. +print("\nEjercicio 6: Números primos hasta N") + +numero = int(input("Introduce un número entero positivo: ")) + +contador = 2 # el primer número primo, salta de 2 en 2 + +while contador <= numero: + es_primo = True # asumimos que el número es primo + divisor = 2 # el primer número primo + + while divisor < contador: + if contador % divisor == 0: + es_primo = False + break + divisor += 1 + + if es_primo: + print(contador) + + contador += 1 diff --git a/03_loops/01_loop_while_solutions.py b/03_loops/01_loop_while_solutions.py index 5a32b48..db125bb 100644 --- a/03_loops/01_loop_while_solutions.py +++ b/03_loops/01_loop_while_solutions.py @@ -1,94 +1,94 @@ -### -# EJERCICIOS (while) -### - -# Ejercicio 1: Cuenta atrás -# Imprime los números del 10 al 1 usando un bucle while. -print("\nEjercicio 1:") -numero = 10 -while numero >= 1: - print(numero) - numero -= 1 - -# Ejercicio 2: Suma de números pares (while) -# Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. -print("\nEjercicio 2:") -numero = 1 -suma_pares = 0 -while numero <= 20: - if numero % 2 == 0: - suma_pares += numero - numero += 1 - -print(f"La suma de los números pares hasta 20 es: {suma_pares}") - -# Ejercicio 3: Factorial de un número -# Pide al usuario que introduzca un número entero positivo. -# Calcula su factorial usando un bucle while. -# El factorial de un número entero positivo es el producto de todos los números del 1 al ese número. Por ejemplo, el factorial de 5 -# 5! = 5 x 4 x 3 x 2 x 1 = 120. -print("\nEjercicio 3:") - -numero = int(input("Introduce un número entero positivo: ")) -factorial = 1 -contador = 1 - -while contador <= numero: - factorial *= contador - contador += 1 - -print(f"El factorial de {numero} es: {factorial}") - -# Ejercicio 4: Validación de contraseña -# Pide al usuario que introduzca una contraseña. -# La contraseña debe tener al menos 8 caracteres. -# Usa un bucle while para seguir pidiendo la contraseña hasta que cumpla con los requisitos. -# Si la contraseña es válida, imprime "Contraseña válida". -print("\nEjercicio 4:") - -contrasena = "" -while len(contrasena) < 8: - contrasena = input("Introduce una contraseña (al menos 8 caracteres): ") - if len(contrasena) < 8: - print("La contraseña debe tener al menos 8 caracteres. Inténtalo de nuevo.") - -print("Contraseña válida") - -# Ejercicio 5: Tabla de multiplicar -# Pide al usuario que introduzca un número. -# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle while. -print("\nEjercicio 5:") - -numero = int(input("Introduce un número: ")) -multiplicador = 1 - -while multiplicador <= 10: - resultado = numero * multiplicador - print(f"{numero} x {multiplicador} = {resultado}") - multiplicador += 1 - -# Ejercicio 6: Números primos hasta N -# Pide al usuario que introduzca un número entero positivo N. -# Imprime todos los números primos menores o iguales que N usando un bucle while. -# Un número es primo si es divisible por sólo uno de los números enteros entre 1 y él mismo, incluido. - -print("\nEjercicio 6:") -n = int(input("Introduce un número entero positivo N: ")) - -numero = 2 -while numero <= n: - es_primo = ( - True # Asumimos que el número es primo hasta que se demuestre lo contrario - ) - divisor = 2 - while ( - divisor * divisor <= numero - ): # Optimizamos: no es necesario probar divisores hasta numero - if numero % divisor == 0: - es_primo = False # Si encontramos un divisor, no es primo - break # Salimos del bucle interior - divisor += 1 - if es_primo: - print(numero) - - numero += 1 +### +# EJERCICIOS (while) +### + +# Ejercicio 1: Cuenta atrás +# Imprime los números del 10 al 1 usando un bucle while. +print("\nEjercicio 1:") +numero = 10 +while numero >= 1: + print(numero) + numero -= 1 + +# Ejercicio 2: Suma de números pares (while) +# Calcula la suma de los números pares entre 1 y 20 (inclusive) usando un bucle while. +print("\nEjercicio 2:") +numero = 1 +suma_pares = 0 +while numero <= 20: + if numero % 2 == 0: + suma_pares += numero + numero += 1 + +print(f"La suma de los números pares hasta 20 es: {suma_pares}") + +# Ejercicio 3: Factorial de un número +# Pide al usuario que introduzca un número entero positivo. +# Calcula su factorial usando un bucle while. +# El factorial de un número entero positivo es el producto de todos los números del 1 al ese número. Por ejemplo, el factorial de 5 +# 5! = 5 x 4 x 3 x 2 x 1 = 120. +print("\nEjercicio 3:") + +numero = int(input("Introduce un número entero positivo: ")) +factorial = 1 +contador = 1 + +while contador <= numero: + factorial *= contador + contador += 1 + +print(f"El factorial de {numero} es: {factorial}") + +# Ejercicio 4: Validación de contraseña +# Pide al usuario que introduzca una contraseña. +# La contraseña debe tener al menos 8 caracteres. +# Usa un bucle while para seguir pidiendo la contraseña hasta que cumpla con los requisitos. +# Si la contraseña es válida, imprime "Contraseña válida". +print("\nEjercicio 4:") + +contrasena = "" +while len(contrasena) < 8: + contrasena = input("Introduce una contraseña (al menos 8 caracteres): ") + if len(contrasena) < 8: + print("La contraseña debe tener al menos 8 caracteres. Inténtalo de nuevo.") + +print("Contraseña válida") + +# Ejercicio 5: Tabla de multiplicar +# Pide al usuario que introduzca un número. +# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle while. +print("\nEjercicio 5:") + +numero = int(input("Introduce un número: ")) +multiplicador = 1 + +while multiplicador <= 10: + resultado = numero * multiplicador + print(f"{numero} x {multiplicador} = {resultado}") + multiplicador += 1 + +# Ejercicio 6: Números primos hasta N +# Pide al usuario que introduzca un número entero positivo N. +# Imprime todos los números primos menores o iguales que N usando un bucle while. +# Un número es primo si es divisible por sólo uno de los números enteros entre 1 y él mismo, incluido. + +print("\nEjercicio 6:") +n = int(input("Introduce un número entero positivo N: ")) + +numero = 2 +while numero <= n: + es_primo = ( + True # Asumimos que el número es primo hasta que se demuestre lo contrario + ) + divisor = 2 + while ( + divisor * divisor <= numero + ): # Optimizamos: no es necesario probar divisores hasta numero + if numero % divisor == 0: + es_primo = False # Si encontramos un divisor, no es primo + break # Salimos del bucle interior + divisor += 1 + if es_primo: + print(numero) + + numero += 1 diff --git a/03_loops/02_loop_for.py b/03_loops/02_loop_for.py index 9e29da8..e7e24b1 100644 --- a/03_loops/02_loop_for.py +++ b/03_loops/02_loop_for.py @@ -1,135 +1,135 @@ -### -# 02 - Bucles (for) -# Permiten ejecutar un bloque de código repetidamente mientras ITERA un iterable o una lista -### - -print("\nBucle for:") - -# Iterar una lista -frutas = ["manzana", "pera", "mandarina"] -for fruta in frutas: - print(fruta) - -# Iterar sobre cualquier cosa que sea iterable -cadena = "midudev" -for caracter in cadena: - print(caracter) - -# enumerate() -frutas = ["manzana", "pera", "mandarina"] -for idx, value in enumerate(frutas): - print(f"El índice es {idx} y la fruta es {value}") - -# bucles anidados -letras = ["A", "B", "C"] -numeros = [1, 2, 3] - -for letra in letras: - for numero in numeros: - print(f"{letra}{numero}") - - -# break -print("\nbreak:") -animales = ["perro", "gato", "raton", "loro", "pez", "canario"] -for idx, animal in enumerate(animales): - print(animal) - if animal == "loro": - print(f"El loro está escondido en el índice {idx}") - break - -# continue -print("\ncontinue:") -animales = ["perro", "gato", "raton", "loro", "pez", "canario"] -for idx, animal in enumerate(animales): - if animal == "loro": - continue - - print(animal) - -# Comprensión de listas (list comprehension) -animales = ["perro", "gato", "raton", "loro", "pez", "canario"] -animales_mayus = [animal.upper() for animal in animales] -print(animales_mayus) - -# Muestra los números pares de una lista -pares = [num for num in [1, 2, 3, 4, 5, 6] if num % 2 == 0] -print(pares) - -### -# EJERCICIOS (for) -### - -# Ejercicio 1: Imprimir números pares -# Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. -print("\nEjercicio 1: Imprimir números pares:") - -for num in range(2, 21, 2): - print(num) - - -# Ejercicio 2: Calcular la media de una lista -# Dada la siguiente lista de números: -# numeros = [10, 20, 30, 40, 50] -# Calcula la media de los números usando un bucle for. -print("\nEjercicio 2: Calcular la media de na lista") - -numeros: int = [10, 20, 30, 40, 50] -suma: int = 0 - -for num in numeros: - suma += num - -# / da el número con decimales -# // da el número entero. -media: int = suma // numeros.__len__() -print(f"La media de la lista es: {media}") - - -# Ejercicio 3: Buscar el máximo de una lista -# Dada la siguiente lista de números: -# numeros = [15, 5, 25, 10, 20] -# Encuentra el número máximo en la lista usando un bucle for. -print("\nEjercicio 3: Buscar el máximo de una lista") - -numeros = [15, 5, 25, 10, 20] - -numero_maximo = numeros[0] # Iniciando con el primer número de la lista - -for num in numeros: - if num > numero_maximo: - numero_maximo = num # Actualizando el número máximo - -print(f"El número máximo de la lista es: {numero_maximo}") - -# Ejercicio 4: Filtrar cadenas por longitud -# Dada la siguiente lista de palabras: -# palabras = ["casa", "arbol", "sol", "elefante", "luna"] -# Crea una nueva lista que contenga solo las palabras con más de 5 letras -# usando un bucle for y list comprehension. - -print("\nEjercicio 4: Filtrar cadenas por longitud") - -palabras = ["casa", "arbol", "sol", "elefante", "luna"] -palabras_largas = [palabra for palabra in palabras if len(palabra) > 5] -print(palabras_largas) - -# Ejercicio 5: Contar palabras que empiezan con una letra -# Dada la siguiente lista de palabras: -# palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] -# Pide al usuario que introduzca una letra. -# Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). -print("\nEjercicio 5: Contar palabras que empiezan con una letra") - -palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] - -# Convirtiendo la letra a minúscula -letra = input("Introduce una letra: ").lower() - -contador = 0 - -for palabra in palabras: - if palabra.lower().startswith(letra): - contador += 1 - -print(f"Hay {contador} palabras que empiezan con la letra {letra}") +### +# 02 - Bucles (for) +# Permiten ejecutar un bloque de código repetidamente mientras ITERA un iterable o una lista +### + +print("\nBucle for:") + +# Iterar una lista +frutas = ["manzana", "pera", "mandarina"] +for fruta in frutas: + print(fruta) + +# Iterar sobre cualquier cosa que sea iterable +cadena = "midudev" +for caracter in cadena: + print(caracter) + +# enumerate() +frutas = ["manzana", "pera", "mandarina"] +for idx, value in enumerate(frutas): + print(f"El índice es {idx} y la fruta es {value}") + +# bucles anidados +letras = ["A", "B", "C"] +numeros = [1, 2, 3] + +for letra in letras: + for numero in numeros: + print(f"{letra}{numero}") + + +# break +print("\nbreak:") +animales = ["perro", "gato", "raton", "loro", "pez", "canario"] +for idx, animal in enumerate(animales): + print(animal) + if animal == "loro": + print(f"El loro está escondido en el índice {idx}") + break + +# continue +print("\ncontinue:") +animales = ["perro", "gato", "raton", "loro", "pez", "canario"] +for idx, animal in enumerate(animales): + if animal == "loro": + continue + + print(animal) + +# Comprensión de listas (list comprehension) +animales = ["perro", "gato", "raton", "loro", "pez", "canario"] +animales_mayus = [animal.upper() for animal in animales] +print(animales_mayus) + +# Muestra los números pares de una lista +pares = [num for num in [1, 2, 3, 4, 5, 6] if num % 2 == 0] +print(pares) + +### +# EJERCICIOS (for) +### + +# Ejercicio 1: Imprimir números pares +# Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. +print("\nEjercicio 1: Imprimir números pares:") + +for num in range(2, 21, 2): + print(num) + + +# Ejercicio 2: Calcular la media de una lista +# Dada la siguiente lista de números: +# numeros = [10, 20, 30, 40, 50] +# Calcula la media de los números usando un bucle for. +print("\nEjercicio 2: Calcular la media de na lista") + +numeros: int = [10, 20, 30, 40, 50] +suma: int = 0 + +for num in numeros: + suma += num + +# / da el número con decimales +# // da el número entero. +media: int = suma // numeros.__len__() +print(f"La media de la lista es: {media}") + + +# Ejercicio 3: Buscar el máximo de una lista +# Dada la siguiente lista de números: +# numeros = [15, 5, 25, 10, 20] +# Encuentra el número máximo en la lista usando un bucle for. +print("\nEjercicio 3: Buscar el máximo de una lista") + +numeros = [15, 5, 25, 10, 20] + +numero_maximo = numeros[0] # Iniciando con el primer número de la lista + +for num in numeros: + if num > numero_maximo: + numero_maximo = num # Actualizando el número máximo + +print(f"El número máximo de la lista es: {numero_maximo}") + +# Ejercicio 4: Filtrar cadenas por longitud +# Dada la siguiente lista de palabras: +# palabras = ["casa", "arbol", "sol", "elefante", "luna"] +# Crea una nueva lista que contenga solo las palabras con más de 5 letras +# usando un bucle for y list comprehension. + +print("\nEjercicio 4: Filtrar cadenas por longitud") + +palabras = ["casa", "arbol", "sol", "elefante", "luna"] +palabras_largas = [palabra for palabra in palabras if len(palabra) > 5] +print(palabras_largas) + +# Ejercicio 5: Contar palabras que empiezan con una letra +# Dada la siguiente lista de palabras: +# palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] +# Pide al usuario que introduzca una letra. +# Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). +print("\nEjercicio 5: Contar palabras que empiezan con una letra") + +palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] + +# Convirtiendo la letra a minúscula +letra = input("Introduce una letra: ").lower() + +contador = 0 + +for palabra in palabras: + if palabra.lower().startswith(letra): + contador += 1 + +print(f"Hay {contador} palabras que empiezan con la letra {letra}") diff --git a/03_loops/02_loop_for_solutions.py b/03_loops/02_loop_for_solutions.py index 4a506d6..d28eebb 100644 --- a/03_loops/02_loop_for_solutions.py +++ b/03_loops/02_loop_for_solutions.py @@ -1,62 +1,62 @@ -### -# EJERCICIOS (for) -### - -# Ejercicio 1: Imprimir números pares -# Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. -print("\nEjercicio 1:") -for numero in range(2, 21, 2): # range(inicio, fin, paso) - print(numero) - -# Ejercicio 2: Calcular la media de una lista -# Dada la siguiente lista de números: -# numeros = [10, 20, 30, 40, 50] -# Calcula la media de los números usando un bucle for. -print("\nEjercicio 2:") -numeros = [10, 20, 30, 40, 50] -suma = 0 -for numero in numeros: - suma += numero -media = suma / len(numeros) -print(f"La media es: {media}") - -# Ejercicio 3: Buscar el máximo de una lista -# Dada la siguiente lista de números: -# numeros = [15, 5, 25, 10, 20] -# Encuentra el número máximo en la lista usando un bucle for. -print("\nEjercicio 3:") -numeros = [15, 5, 25, 10, 20] -maximo = numeros[0] # Inicializamos con el primer elemento -for numero in numeros: - if numero > maximo: - maximo = numero -print(f"El número máximo es: {maximo}") - -# Ejercicio 4: Filtrar cadenas por longitud -# Dada la siguiente lista de palabras: -# palabras = ["casa", "arbol", "sol", "elefante", "luna"] -# Crea una nueva lista que contenga solo las palabras con más de 5 letras -# usando un bucle for y list comprehension. -print("\nEjercicio 4:") -palabras = ["casa", "arbol", "sol", "elefante", "luna"] -palabras_largas = [palabra for palabra in palabras if len(palabra) > 5] -print(palabras_largas) - -# Ejercicio 5: Contar palabras que empiezan con una letra -# Dada la siguiente lista de palabras: -# palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] -# Pide al usuario que introduzca una letra. -# Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). - -print("\nEjercicio 5: Contar palabras que empiezan con una letra") - -palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] - -letra = input("Introduce una letra: ").lower() # Convertimos la letra a minúscula - -contador = 0 - -for palabra in palabras: - if palabra.lower().startswith(letra): # Comparamos en minúsculas - contador += 1 -print(f"Hay {contador} palabras que empiezan con la letra {letra}") +### +# EJERCICIOS (for) +### + +# Ejercicio 1: Imprimir números pares +# Imprime todos los números pares del 2 al 20 (inclusive) usando un bucle for. +print("\nEjercicio 1:") +for numero in range(2, 21, 2): # range(inicio, fin, paso) + print(numero) + +# Ejercicio 2: Calcular la media de una lista +# Dada la siguiente lista de números: +# numeros = [10, 20, 30, 40, 50] +# Calcula la media de los números usando un bucle for. +print("\nEjercicio 2:") +numeros = [10, 20, 30, 40, 50] +suma = 0 +for numero in numeros: + suma += numero +media = suma / len(numeros) +print(f"La media es: {media}") + +# Ejercicio 3: Buscar el máximo de una lista +# Dada la siguiente lista de números: +# numeros = [15, 5, 25, 10, 20] +# Encuentra el número máximo en la lista usando un bucle for. +print("\nEjercicio 3:") +numeros = [15, 5, 25, 10, 20] +maximo = numeros[0] # Inicializamos con el primer elemento +for numero in numeros: + if numero > maximo: + maximo = numero +print(f"El número máximo es: {maximo}") + +# Ejercicio 4: Filtrar cadenas por longitud +# Dada la siguiente lista de palabras: +# palabras = ["casa", "arbol", "sol", "elefante", "luna"] +# Crea una nueva lista que contenga solo las palabras con más de 5 letras +# usando un bucle for y list comprehension. +print("\nEjercicio 4:") +palabras = ["casa", "arbol", "sol", "elefante", "luna"] +palabras_largas = [palabra for palabra in palabras if len(palabra) > 5] +print(palabras_largas) + +# Ejercicio 5: Contar palabras que empiezan con una letra +# Dada la siguiente lista de palabras: +# palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] +# Pide al usuario que introduzca una letra. +# Cuenta cuántas palabras en la lista empiezan con esa letra (sin diferenciar mayúsculas/minúsculas). + +print("\nEjercicio 5: Contar palabras que empiezan con una letra") + +palabras = ["casa", "arbol", "sol", "elefante", "luna", "coche"] + +letra = input("Introduce una letra: ").lower() # Convertimos la letra a minúscula + +contador = 0 + +for palabra in palabras: + if palabra.lower().startswith(letra): # Comparamos en minúsculas + contador += 1 +print(f"Hay {contador} palabras que empiezan con la letra {letra}") diff --git a/03_loops/03_range.py b/03_loops/03_range.py index 6c51a75..5d0ee7c 100644 --- a/03_loops/03_range.py +++ b/03_loops/03_range.py @@ -1,88 +1,88 @@ -### -# 03 - range() -# Permite crear una secuencia de números. Puede ser útil para for, pero no solo para eso -### - -print("\nrange():") - -# Generado una secuencia de números del 0 al 9 -for num in range(10): - print(num) - -# range(inicio, fin) -for num in range(5, 10): - print(num) - -# range(inicio, fin, paso) -for num in range(0, 1000, 5): - print(num) - -for num in range(-5, 0): - print(num) - -for num in range(10, 0, -1): - print(num) - -for num in range(0, 444): - print(num) - -nums = range(10) -list_of_nums = list(nums) -print(list_of_nums) - -# seria para hacerlo cinco veces -for _ in range(5): - print("hacer cinco veces algo") - -### -# EJERCICIOS (range) -### - -# Ejercicio 1: Imprimir números del 1 al 10 -# Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). -print("\nEjercicio 1: Imprimir números del 1 al 10") - -for num in range(1, 11): - print(num) - -# Ejercicio 2: Imprimir números impares del 1 al 20 -# Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). -print("\nEjercicio 2: Imprimir números impares del 1 al 20") - -for num in range(1, 21, 2): - print(num) - -# Ejercicio 3: Imprimir múltiplos de 5 -# Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). -print("\nEjercicio 3: Imprimir múltiplos de 5") - -for num in range(5, 51, 5): - print(num) - -# Ejercicio 4: Imprimir números en orden inverso -# Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). -print("\nEjercicio 4: Imprimir números en orden inverso") - -for num in range(10, 0, -1): - print(num) - -# Ejercicio 5: Suma de números en un rango -# Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). -print("\nEjercicio 5: Suma de números en un rango") - -suma = 5 - -for num in range(1, 101): - suma += num - -print(f"La suma es: {suma}") - -# Ejercicio 6: Tabla de multiplicar -# Pide al usuario que introduzca un número. -# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle for y range(). -print("\nEjercicio 6: Tabla de multiplicar") - -numero = int(input("Introduce un número para la tabla de multiplicar: ")) - -for i in range(1, 11): - print(f"{numero} x {i} = {numero * i}") +### +# 03 - range() +# Permite crear una secuencia de números. Puede ser útil para for, pero no solo para eso +### + +print("\nrange():") + +# Generado una secuencia de números del 0 al 9 +for num in range(10): + print(num) + +# range(inicio, fin) +for num in range(5, 10): + print(num) + +# range(inicio, fin, paso) +for num in range(0, 1000, 5): + print(num) + +for num in range(-5, 0): + print(num) + +for num in range(10, 0, -1): + print(num) + +for num in range(0, 444): + print(num) + +nums = range(10) +list_of_nums = list(nums) +print(list_of_nums) + +# seria para hacerlo cinco veces +for _ in range(5): + print("hacer cinco veces algo") + +### +# EJERCICIOS (range) +### + +# Ejercicio 1: Imprimir números del 1 al 10 +# Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). +print("\nEjercicio 1: Imprimir números del 1 al 10") + +for num in range(1, 11): + print(num) + +# Ejercicio 2: Imprimir números impares del 1 al 20 +# Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). +print("\nEjercicio 2: Imprimir números impares del 1 al 20") + +for num in range(1, 21, 2): + print(num) + +# Ejercicio 3: Imprimir múltiplos de 5 +# Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). +print("\nEjercicio 3: Imprimir múltiplos de 5") + +for num in range(5, 51, 5): + print(num) + +# Ejercicio 4: Imprimir números en orden inverso +# Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). +print("\nEjercicio 4: Imprimir números en orden inverso") + +for num in range(10, 0, -1): + print(num) + +# Ejercicio 5: Suma de números en un rango +# Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). +print("\nEjercicio 5: Suma de números en un rango") + +suma = 5 + +for num in range(1, 101): + suma += num + +print(f"La suma es: {suma}") + +# Ejercicio 6: Tabla de multiplicar +# Pide al usuario que introduzca un número. +# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle for y range(). +print("\nEjercicio 6: Tabla de multiplicar") + +numero = int(input("Introduce un número para la tabla de multiplicar: ")) + +for i in range(1, 11): + print(f"{numero} x {i} = {numero * i}") diff --git a/03_loops/03_range_solutions.py b/03_loops/03_range_solutions.py index 09a0994..3c4ecc1 100644 --- a/03_loops/03_range_solutions.py +++ b/03_loops/03_range_solutions.py @@ -1,43 +1,43 @@ -### -# EJERCICIOS (range) -### - -# Ejercicio 1: Imprimir números del 1 al 10 -# Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). -print("\nEjercicio 1:") -for i in range(1, 11): # Recuerda que range no incluye el límite superior - print(i) - -# Ejercicio 2: Imprimir números impares del 1 al 20 -# Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). -print("\nEjercicio 2:") -for i in range(1, 21, 2): # El paso 2 asegura que solo se generen impares - print(i) - -# Ejercicio 3: Imprimir múltiplos de 5 -# Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). -print("\nEjercicio 3:") -for i in range(5, 51, 5): # El paso 5 genera los múltiplos de 5 - print(i) - -# Ejercicio 4: Imprimir números en orden inverso -# Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). -print("\nEjercicio 4:") -for i in range(10, 0, -1): # Paso negativo para orden inverso - print(i) - -# Ejercicio 5: Suma de números en un rango -# Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). -print("\nEjercicio 5:") -suma = 0 -for i in range(1, 101): - suma += i -print(f"La suma de los números del 1 al 100 es: {suma}") - -# Ejercicio 6: Tabla de multiplicar -# Pide al usuario que introduzca un número. -# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle for y range(). -print("\nEjercicio 6:") -numero = int(input("Introduce un número para la tabla de multiplicar: ")) -for i in range(1, 11): - print(f"{numero} x {i} = {numero * i}") +### +# EJERCICIOS (range) +### + +# Ejercicio 1: Imprimir números del 1 al 10 +# Imprime los números del 1 al 10 (inclusive) usando un bucle for y range(). +print("\nEjercicio 1:") +for i in range(1, 11): # Recuerda que range no incluye el límite superior + print(i) + +# Ejercicio 2: Imprimir números impares del 1 al 20 +# Imprime todos los números impares entre 1 y 20 (inclusive) usando un bucle for y range(). +print("\nEjercicio 2:") +for i in range(1, 21, 2): # El paso 2 asegura que solo se generen impares + print(i) + +# Ejercicio 3: Imprimir múltiplos de 5 +# Imprime los múltiplos de 5 desde 5 hasta 50 (inclusive) usando un bucle for y range(). +print("\nEjercicio 3:") +for i in range(5, 51, 5): # El paso 5 genera los múltiplos de 5 + print(i) + +# Ejercicio 4: Imprimir números en orden inverso +# Imprime los números del 10 al 1 (inclusive) en orden inverso usando un bucle for y range(). +print("\nEjercicio 4:") +for i in range(10, 0, -1): # Paso negativo para orden inverso + print(i) + +# Ejercicio 5: Suma de números en un rango +# Calcula la suma de los números del 1 al 100 (inclusive) usando un bucle for y range(). +print("\nEjercicio 5:") +suma = 0 +for i in range(1, 101): + suma += i +print(f"La suma de los números del 1 al 100 es: {suma}") + +# Ejercicio 6: Tabla de multiplicar +# Pide al usuario que introduzca un número. +# Imprime la tabla de multiplicar de ese número (del 1 al 10) usando un bucle for y range(). +print("\nEjercicio 6:") +numero = int(input("Introduce un número para la tabla de multiplicar: ")) +for i in range(1, 11): + print(f"{numero} x {i} = {numero * i}") diff --git a/03_loops/04_functions.py b/03_loops/04_functions.py index 2a0ecb9..c7446df 100644 --- a/03_loops/04_functions.py +++ b/03_loops/04_functions.py @@ -1,97 +1,97 @@ -### -# 04 - Funciones -# Bloques de código reutilizables y parametrizables para hacer tareas especificas -### - -# """ Definición de una función - -# def nombre_de_la_funcion(parametro1, parametro2, ...): -# # docstring -# # cuerpo de la función -# return valor_de_retorno # opcional - -# """ - -# # Ejemplo de una función para imprimir algo en consola -# def saludar(): -# print("¡Hola!") - -# # Ejemplo de una función con parámetro -# def saludar_a(nombre): -# print(f"¡Hola {nombre}!") - -# saludar_a("midudev") -# saludar_a("madeval") -# saludar_a("pheralb") -# saludar_a("felixicaza") -# saludar_a("Carmen Ansio") - -# # Funciones con más parámetros -# def sumar(a, b): -# suma = a + b -# return suma - -# result = sumar(2, 3) -# print(result) - -# # Documentar las funciones con docstring -# def restar(a, b): -# """Resta dos números y devuelve el resultado""" -# return a - b - -# parámetros por defecto -# def multiplicar(a, b = 2): -# return a * b - -# print(multiplicar(2)) -# print(multiplicar(2, 3)) - - -# Argumentos por posición -def describir_persona(nombre: str, edad: int, sexo: str): - print(f"Soy {nombre}, tengo {edad} años y me identifico como {sexo}") - - -# parámetros son posicionales -describir_persona(1, 25, "gato") -describir_persona("midudev", 25, "gato") -describir_persona("hombre", "madeval", 39) - -# Argumentos por clave -# parámetros nombrados -describir_persona(sexo="gato", nombre="midudev", edad=25) -describir_persona(sexo="hombre", nombre="madeval", edad=21) - - -# Argumentos de longitud de variable (*args): -def sumar_numeros(*args): - suma = 0 - for numero in args: - suma += numero - return suma - - -print(sumar_numeros(1, 2, 3, 4, 5)) -print(sumar_numeros(1, 2)) -print(sumar_numeros(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) - - -# Argumentos de clave-valor variable (**kwargs): -def mostrar_informacion_de(**kwargs): - for clave, valor in kwargs.items(): - print(f"{clave}: {valor}") - - -mostrar_informacion_de(nombre="midudev", edad=25, sexo="gato") -print("\n") -mostrar_informacion_de(name="madeval", edad=21, country="Uruguay") -print("\n") -mostrar_informacion_de(nick="pheralb", es_sub=True, is_rich=True) -print("\n") -mostrar_informacion_de(super_name="felixicaza", es_modo=True, gatos=40) - -# Ejercicios -# Volver a los ejercicios anteriores -# y convertirlos en funciones -# e intentar utilizar todos los casos y conceptos -# que hemos visto hasta ahora +### +# 04 - Funciones +# Bloques de código reutilizables y parametrizables para hacer tareas especificas +### + +# """ Definición de una función + +# def nombre_de_la_funcion(parametro1, parametro2, ...): +# # docstring +# # cuerpo de la función +# return valor_de_retorno # opcional + +# """ + +# # Ejemplo de una función para imprimir algo en consola +# def saludar(): +# print("¡Hola!") + +# # Ejemplo de una función con parámetro +# def saludar_a(nombre): +# print(f"¡Hola {nombre}!") + +# saludar_a("midudev") +# saludar_a("madeval") +# saludar_a("pheralb") +# saludar_a("felixicaza") +# saludar_a("Carmen Ansio") + +# # Funciones con más parámetros +# def sumar(a, b): +# suma = a + b +# return suma + +# result = sumar(2, 3) +# print(result) + +# # Documentar las funciones con docstring +# def restar(a, b): +# """Resta dos números y devuelve el resultado""" +# return a - b + +# parámetros por defecto +# def multiplicar(a, b = 2): +# return a * b + +# print(multiplicar(2)) +# print(multiplicar(2, 3)) + + +# Argumentos por posición +def describir_persona(nombre: str, edad: int, sexo: str): + print(f"Soy {nombre}, tengo {edad} años y me identifico como {sexo}") + + +# parámetros son posicionales +describir_persona(1, 25, "gato") +describir_persona("midudev", 25, "gato") +describir_persona("hombre", "madeval", 39) + +# Argumentos por clave +# parámetros nombrados +describir_persona(sexo="gato", nombre="midudev", edad=25) +describir_persona(sexo="hombre", nombre="madeval", edad=21) + + +# Argumentos de longitud de variable (*args): +def sumar_numeros(*args): + suma = 0 + for numero in args: + suma += numero + return suma + + +print(sumar_numeros(1, 2, 3, 4, 5)) +print(sumar_numeros(1, 2)) +print(sumar_numeros(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) + + +# Argumentos de clave-valor variable (**kwargs): +def mostrar_informacion_de(**kwargs): + for clave, valor in kwargs.items(): + print(f"{clave}: {valor}") + + +mostrar_informacion_de(nombre="midudev", edad=25, sexo="gato") +print("\n") +mostrar_informacion_de(name="madeval", edad=21, country="Uruguay") +print("\n") +mostrar_informacion_de(nick="pheralb", es_sub=True, is_rich=True) +print("\n") +mostrar_informacion_de(super_name="felixicaza", es_modo=True, gatos=40) + +# Ejercicios +# Volver a los ejercicios anteriores +# y convertirlos en funciones +# e intentar utilizar todos los casos y conceptos +# que hemos visto hasta ahora diff --git a/04_logic/01_challenge_fantastic_four.py b/04_logic/01_challenge_fantastic_four.py index ae6277d..3ece253 100644 --- a/04_logic/01_challenge_fantastic_four.py +++ b/04_logic/01_challenge_fantastic_four.py @@ -1,41 +1,41 @@ -""" -¿Está en Equilibrio la Alianza entre Reed Richards y Johnny Storm? - -En el universo de los 4 Fantásticos, la unión y el equilibrio entre los poderes es fundamental para enfrentar cualquier desafío. En este problema, nos centraremos en dos de sus miembros: - -Reed Richards (Mr. Fantastic), representado por la letra R. -Johnny Storm (La Antorcha Humana), representado por la letra J. - -Objetivo: - -Crea una función en Python que reciba una cadena de texto. Esta función debe contar cuántas veces aparece la letra R (para Reed Richards) y cuántas veces aparece la letra J (para Johnny Storm) en la cadena. - -- Si la cantidad de R y la cantidad de J son iguales, se considera que la alianza entre la mente y el fuego está en equilibrio y la función debe retornar True. -- Si las cantidades no son iguales, la función debe retornar False. -- En el caso de que no aparezca ninguna de las dos letras en la cadena, se entiende que el equilibrio se mantiene (0 = 0), por lo que la función debe retornar True. -""" - -text = "RRRRJJJjjjrrr" - - -def check_is_balanced(text): - text = text.upper() - - # contar facilmente el número de veces que aparece una letra - count_r = text.count("R") # Reed Richards - count_j = text.count("J") # Johnny Storm - - print(f"count_r: {count_r} count_j: {count_j}") - - # if count_r == count_j: - # return True - # else: - # return False - - return count_r == count_j - - -print(check_is_balanced("RRJJ")) -print(check_is_balanced("RRRRJJ")) -print(check_is_balanced("RRJJJJJJ")) -print(check_is_balanced("awwwaqAQAQA")) +""" +¿Está en Equilibrio la Alianza entre Reed Richards y Johnny Storm? + +En el universo de los 4 Fantásticos, la unión y el equilibrio entre los poderes es fundamental para enfrentar cualquier desafío. En este problema, nos centraremos en dos de sus miembros: + +Reed Richards (Mr. Fantastic), representado por la letra R. +Johnny Storm (La Antorcha Humana), representado por la letra J. + +Objetivo: + +Crea una función en Python que reciba una cadena de texto. Esta función debe contar cuántas veces aparece la letra R (para Reed Richards) y cuántas veces aparece la letra J (para Johnny Storm) en la cadena. + +- Si la cantidad de R y la cantidad de J son iguales, se considera que la alianza entre la mente y el fuego está en equilibrio y la función debe retornar True. +- Si las cantidades no son iguales, la función debe retornar False. +- En el caso de que no aparezca ninguna de las dos letras en la cadena, se entiende que el equilibrio se mantiene (0 = 0), por lo que la función debe retornar True. +""" + +text = "RRRRJJJjjjrrr" + + +def check_is_balanced(text): + text = text.upper() + + # contar facilmente el número de veces que aparece una letra + count_r = text.count("R") # Reed Richards + count_j = text.count("J") # Johnny Storm + + print(f"count_r: {count_r} count_j: {count_j}") + + # if count_r == count_j: + # return True + # else: + # return False + + return count_r == count_j + + +print(check_is_balanced("RRJJ")) +print(check_is_balanced("RRRRJJ")) +print(check_is_balanced("RRJJJJJJ")) +print(check_is_balanced("awwwaqAQAQA")) diff --git a/04_logic/02_challenge_jurassic_park.py b/04_logic/02_challenge_jurassic_park.py index 92eae75..8ce86b5 100644 --- a/04_logic/02_challenge_jurassic_park.py +++ b/04_logic/02_challenge_jurassic_park.py @@ -1,30 +1,30 @@ -""" -En Jurassic Park, se ha observado que los dinosaurios carnívoros, como el temible T-Rex, depositan un número par de huevos. Imagina que tienes una lista de números enteros en la que cada número representa la cantidad de huevos puestos por un dinosaurio en el parque. - -Importante: Solo se consideran los huevos de los dinosaurios carnívoros (T-Rex) aquellos números que son pares. - -Objetivo: -Escribe una función en Python que reciba una lista de números enteros y devuelva la suma total de los huevos que pertenecen a los dinosaurios carnívoros (es decir, la suma de todos los números pares en la lista). -""" - -# Para ver si un número es par -# siempre usamos el módulo % -# nos da el resto de la división: eggs % 2 == 2 - -def count_carnivore_dinosaur_eggs(egg_list) -> int: - """ - Esta función recibe una lista de numeros enteros que representan la cantidad de huevos que han puesto diferentes dinosaurios en el parque jurásico y los de número par son de carnívoros. Devuelve un número con la suma de todos los huevos de carnívoros. - """ - total_carnivore_eggs = 0 - - for eggs in egg_list: - if eggs % 2 == 0: - total_carnivore_eggs += eggs - - # esta forma más corta: - # total_carnivore_eggs = sum(filter(lambda x: x % 2 == 0, egg_list)) - - return total_carnivore_eggs - -egg_list = [3, 4, 7, 5, 8] +""" +En Jurassic Park, se ha observado que los dinosaurios carnívoros, como el temible T-Rex, depositan un número par de huevos. Imagina que tienes una lista de números enteros en la que cada número representa la cantidad de huevos puestos por un dinosaurio en el parque. + +Importante: Solo se consideran los huevos de los dinosaurios carnívoros (T-Rex) aquellos números que son pares. + +Objetivo: +Escribe una función en Python que reciba una lista de números enteros y devuelva la suma total de los huevos que pertenecen a los dinosaurios carnívoros (es decir, la suma de todos los números pares en la lista). +""" + +# Para ver si un número es par +# siempre usamos el módulo % +# nos da el resto de la división: eggs % 2 == 2 + +def count_carnivore_dinosaur_eggs(egg_list) -> int: + """ + Esta función recibe una lista de numeros enteros que representan la cantidad de huevos que han puesto diferentes dinosaurios en el parque jurásico y los de número par son de carnívoros. Devuelve un número con la suma de todos los huevos de carnívoros. + """ + total_carnivore_eggs = 0 + + for eggs in egg_list: + if eggs % 2 == 0: + total_carnivore_eggs += eggs + + # esta forma más corta: + # total_carnivore_eggs = sum(filter(lambda x: x % 2 == 0, egg_list)) + + return total_carnivore_eggs + +egg_list = [3, 4, 7, 5, 8] print(count_carnivore_dinosaur_eggs(egg_list)) # 12 \ No newline at end of file diff --git a/04_logic/03_challenge_find_first_sum.py b/04_logic/03_challenge_find_first_sum.py index 2345fda..bd24fc2 100644 --- a/04_logic/03_challenge_find_first_sum.py +++ b/04_logic/03_challenge_find_first_sum.py @@ -1,34 +1,34 @@ -""" -Dado un array de números y un número goal, encuentra los dos primeros números del array que sumen el número goal y devuelve sus índices. Si no existe tal combinación, devuelve None. - -nums = [4, 5, 6, 2] -goal = 8 - -find_first_sum(nums, goal) # [2, 3] -""" - -# def find_first_sum(nums, goal): -# # early return, una validación rápida -# if len(nums) == 0: return None - -# for i in range(len(nums)): -# for j in range(i + 1, len(nums)): -# if nums[i] + nums[j] == goal: -# return [i, j] - -# return None # no se encontró ninguna combinación - -def find_first_sum(nums, goal): - seen = {} # diccionario para guardar el numero y su índice - - for index, value in enumerate(nums): - missing = goal - value - if missing in seen: return [seen[missing], index] - seen[value] = index # guardar el número actual a los vistos, porque no hemos encontrado la combinación - - return None - -nums = [4, 5, 6, 2] -goal = 8 -result = find_first_sum(nums, goal) # [2, 3] +""" +Dado un array de números y un número goal, encuentra los dos primeros números del array que sumen el número goal y devuelve sus índices. Si no existe tal combinación, devuelve None. + +nums = [4, 5, 6, 2] +goal = 8 + +find_first_sum(nums, goal) # [2, 3] +""" + +# def find_first_sum(nums, goal): +# # early return, una validación rápida +# if len(nums) == 0: return None + +# for i in range(len(nums)): +# for j in range(i + 1, len(nums)): +# if nums[i] + nums[j] == goal: +# return [i, j] + +# return None # no se encontró ninguna combinación + +def find_first_sum(nums, goal): + seen = {} # diccionario para guardar el numero y su índice + + for index, value in enumerate(nums): + missing = goal - value + if missing in seen: return [seen[missing], index] + seen[value] = index # guardar el número actual a los vistos, porque no hemos encontrado la combinación + + return None + +nums = [4, 5, 6, 2] +goal = 8 +result = find_first_sum(nums, goal) # [2, 3] print(result) \ No newline at end of file diff --git a/04_logic/04_dictionaries.py b/04_logic/04_dictionaries.py index fd92235..8dae20f 100644 --- a/04_logic/04_dictionaries.py +++ b/04_logic/04_dictionaries.py @@ -1,57 +1,57 @@ -### -# 04 - Dictionaries -# Los diccionarios son colecciones de pares clave-valor. -# Sirven para almacenar datos relacionados. -### - -# ejemplo tipico de diccionario -persona = { - "nombre": "midudev", - "edad": 25, - "es_estudiante": True, - "calificaciones": [7, 8, 9], - "socials": {"twitter": "@midudev", "instagram": "@midudev", "facebook": "midudev"}, -} - -# para acceder a los valores -print(persona["nombre"]) -print(persona["calificaciones"][2]) -print(persona["socials"]["twitter"]) - -# cambiar valores al acceder -persona["nombre"] = "madeval" -persona["calificaciones"][2] = 10 - -# eliminar completamente una propiedad -del persona["edad"] -# print(persona) - -es_estudiante = persona.pop("es_estudiante") -print(f"es_estudiante: {es_estudiante}") -print(persona) - -# sobreescribir un diccionario con otro diccionario -a = {"name": "miduev", "age": 25} -b = {"name": "madeval", "es_estudiante": True} - -a.update(b) -print(a) - -# comprobar si existe una propiedad -print("name" in persona) # False -print("nombre" in persona) # True - -# obtener todas las claves -print("\nkeys:") -print(persona.keys()) - -# obtener todas los valores -print("\nvalues:") -print(persona.values()) - -# obtener tanto clave como valor -print("\nitems:") -print(persona.items()) - -for key, value in persona.items(): - print(f"{key}: {value}") +### +# 04 - Dictionaries +# Los diccionarios son colecciones de pares clave-valor. +# Sirven para almacenar datos relacionados. +### + +# ejemplo tipico de diccionario +persona = { + "nombre": "midudev", + "edad": 25, + "es_estudiante": True, + "calificaciones": [7, 8, 9], + "socials": {"twitter": "@midudev", "instagram": "@midudev", "facebook": "midudev"}, +} + +# para acceder a los valores +print(persona["nombre"]) +print(persona["calificaciones"][2]) +print(persona["socials"]["twitter"]) + +# cambiar valores al acceder +persona["nombre"] = "madeval" +persona["calificaciones"][2] = 10 + +# eliminar completamente una propiedad +del persona["edad"] +# print(persona) + +es_estudiante = persona.pop("es_estudiante") +print(f"es_estudiante: {es_estudiante}") +print(persona) + +# sobreescribir un diccionario con otro diccionario +a = {"name": "miduev", "age": 25} +b = {"name": "madeval", "es_estudiante": True} + +a.update(b) +print(a) + +# comprobar si existe una propiedad +print("name" in persona) # False +print("nombre" in persona) # True + +# obtener todas las claves +print("\nkeys:") +print(persona.keys()) + +# obtener todas los valores +print("\nvalues:") +print(persona.values()) + +# obtener tanto clave como valor +print("\nitems:") +print(persona.items()) + +for key, value in persona.items(): + print(f"{key}: {value}") diff --git a/04_logic/05_challenge_battle.py b/04_logic/05_challenge_battle.py index 4dfea91..48ecde8 100644 --- a/04_logic/05_challenge_battle.py +++ b/04_logic/05_challenge_battle.py @@ -1,52 +1,52 @@ -""" -Tienes dos listas de números, lista_a y lista_b, ambas de la misma longitud. - -Cada número en lista_a se "enfrenta" al número en la misma posición en lista_b. - -- Si el número en lista_a es mayor, su valor se suma al siguiente número en lista_a. -- Si el número en lista_b es mayor, su valor se suma al siguiente número en lista_b. -- Si los dos números son iguales, ambos se eliminan y no afectan al siguiente par. - -Debes simular estos enfrentamientos y devolver el resultado final: -- Si al final queda un número en lista_a, devuelve ese número seguido de la letra "a" (por ejemplo, "3a"). -- Si al final queda un número en lista_b, devuelve ese número seguido de la letra "b" (por ejemplo, "2b"). -- En caso de empate, devuelve la letra "x". - -lista_a = [2, 4, 2] -lista_b = [3, 3, 4] - -resultado = battle(lista_a, lista_b) # -> "2b" - -# Explicación: -# - 2 vs 3: gana 3 (+1) -# - 4 vs 3+1: empate -# - 2 vs 4: gana 4 (+2) -# Resultado: "2b" - -lista_a = [4, 4, 4] -lista_b = [2, 8, 2] - -resultado = battle(lista_a, lista_b) # -> "x" - -# Explicación: -# - 4 vs 2: gana 4 (+2) -# - 4+2 vs 8: gana 8 (+2) -# - 4 vs 2+2: empate -# Resultado: "x" -""" - -# Fuerza bruta: buscar la solución A SACO. -# Algoritmos ocultos o cálculos o fórmulas -# Programación dinámica: buscar una solución mas eficiente - - -def battle(lista_a, lista_b): - puntos_a = sum(lista_a) - puntos_b = sum(lista_b) - return f"{puntos_a - puntos_b}a" if puntos_a > puntos_b else f"{puntos_b - puntos_a}b" if puntos_b > puntos_a else "x" - - -lista_a = [4, 4, 4] -lista_b = [2, 8, 2] -winner = battle(lista_a, lista_b) -print(winner) +""" +Tienes dos listas de números, lista_a y lista_b, ambas de la misma longitud. + +Cada número en lista_a se "enfrenta" al número en la misma posición en lista_b. + +- Si el número en lista_a es mayor, su valor se suma al siguiente número en lista_a. +- Si el número en lista_b es mayor, su valor se suma al siguiente número en lista_b. +- Si los dos números son iguales, ambos se eliminan y no afectan al siguiente par. + +Debes simular estos enfrentamientos y devolver el resultado final: +- Si al final queda un número en lista_a, devuelve ese número seguido de la letra "a" (por ejemplo, "3a"). +- Si al final queda un número en lista_b, devuelve ese número seguido de la letra "b" (por ejemplo, "2b"). +- En caso de empate, devuelve la letra "x". + +lista_a = [2, 4, 2] +lista_b = [3, 3, 4] + +resultado = battle(lista_a, lista_b) # -> "2b" + +# Explicación: +# - 2 vs 3: gana 3 (+1) +# - 4 vs 3+1: empate +# - 2 vs 4: gana 4 (+2) +# Resultado: "2b" + +lista_a = [4, 4, 4] +lista_b = [2, 8, 2] + +resultado = battle(lista_a, lista_b) # -> "x" + +# Explicación: +# - 4 vs 2: gana 4 (+2) +# - 4+2 vs 8: gana 8 (+2) +# - 4 vs 2+2: empate +# Resultado: "x" +""" + +# Fuerza bruta: buscar la solución A SACO. +# Algoritmos ocultos o cálculos o fórmulas +# Programación dinámica: buscar una solución mas eficiente + + +def battle(lista_a, lista_b): + puntos_a = sum(lista_a) + puntos_b = sum(lista_b) + return f"{puntos_a - puntos_b}a" if puntos_a > puntos_b else f"{puntos_b - puntos_a}b" if puntos_b > puntos_a else "x" + + +lista_a = [4, 4, 4] +lista_b = [2, 8, 2] +winner = battle(lista_a, lista_b) +print(winner) diff --git a/05_regex/01_re.py b/05_regex/01_re.py index 1ca9228..7d4faf4 100644 --- a/05_regex/01_re.py +++ b/05_regex/01_re.py @@ -1,110 +1,110 @@ -## -# 01 - Expresiones regulares -# - -""" Las expresiones regulares son una secuencia de caracteres que forman un patrón de búsqueda. - Se utilizan para la búsqueda de cadenas de texto, validación de datos, etc. """ - - -""" ¿Por qué aprender Regex? - -- Búsqueda avanzada: Encontrar patrones específicos en textos grandes de forma rápida y precisa. (un editor de Markdown sólo usando Regex) - -- Validación de datos: Asegurarte que los datos que ingresa un usuario como el email, teléfono, etc. son correctos. - -- Manipulación del texto: Extraer, reemplazar y modificar partes de la cadena de texto fácilmente -""" - -# 1. Importar el módulo de expresiones regulares "re" - -# 2. Crear un patrón, que es una cadena de texto que describe lo que queremos encontrar -import re -pattern = "Hola" -# 3. El texto donde queremos buscar -text = "Hola mundo" -# 4. Usar la función de búsqueda de "re" -result = re.search(pattern, text) - -if result: - print("He encontrado el patrón en el texto") -else: - print("No he encontrado el patrón en el texto") - -# .group() devuelve la cadena que coincide con el pattern -print(result.group()) - -# .start() devolver la posición inicial de la coincidencia -print(result.start()) - -# .end() devolver la posición final de la coincidencia -print(result.end()) - -# EJERCICIO 01 -# Encuentra la primera ocurrencia de la palabra "IA" en el siguiente texto -# e indica en que posición empieza y termina la coincidencia. -text = "Todo el mundo dice que la IA nos va a quitar el trabajo. Pero solo hace falta ver cómo la puede cagar con las Regex para ir con cuidado" -pattern = "IA" -found_ia = re.search(pattern, text) - -if found_ia: - print( - f"He encontrado el patrón en el texto en la posición {found_ia.start()} y termina en la posición {found_ia.end()}" - ) -else: - print("No he encontrado el patrón en el texto") - -# ----------------------- - -#  Encontrar todas las coincidencias de un patrón -# .findall() devuelve una lista con todas las coincidencias - -text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" -pattern = "Python" - -matches = re.findall(pattern, text) - -print(len(matches)) - -# ------------------------- - -# iter() devuelve un iterador que contiene todos los resultados de la búsqueda - -text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" -pattern = "Python" - -matches = re.finditer(pattern, text) - -for match in matches: - print(match.group(), match.start(), match.end()) - -# EJERCICIO 02 -# Encuentra todas las ocurrencias de la palabra "midu" en el siguiente texto e indica en que posición empieza y termina cada coincidencia y cuantas veces se encontró. -text = "Este es el curso de Python de midudev. ¡Suscríbete a midudev si te gusta este contenido! midu" - -# Modificadores - -# Los modificadores son opciones que se pueden agregar a un patrón para cambiar su comportamiento - -# re.IGNORECASE: Ignora las mayúsculas y minúsculas - -text = "Todo el mundo dice que la IA nos va a quitar el trabajo. Pero la ia no es tan mala. ¡Viva la Ia!" -pattern = "IA" -found = re.findall(pattern, text, re.IGNORECASE) - -if found: - print(found) - -# EJERCICIO 03 -# Encuentra todas las ocurrencias de la palabra "python" en el siguiente texto, sin distinguir entre mayúsculas y minúsculas. -text = "Este es el curso de Python de midudev. ¡Suscríbete a python si te gusta este contenido! PYTHON" - -# Reemplazar el texto - -# .sub() reemplaza todas las coincidencias de un patrón en un texto - -text = "Hola, mundo! Hola de nuevo. Hola otra vez." -pattern = "hola" -replacement = "Adiós" - -new_text = re.sub(pattern, replacement, text, flags=re.IGNORECASE) -print(new_text) +## +# 01 - Expresiones regulares +# + +""" Las expresiones regulares son una secuencia de caracteres que forman un patrón de búsqueda. + Se utilizan para la búsqueda de cadenas de texto, validación de datos, etc. """ + + +""" ¿Por qué aprender Regex? + +- Búsqueda avanzada: Encontrar patrones específicos en textos grandes de forma rápida y precisa. (un editor de Markdown sólo usando Regex) + +- Validación de datos: Asegurarte que los datos que ingresa un usuario como el email, teléfono, etc. son correctos. + +- Manipulación del texto: Extraer, reemplazar y modificar partes de la cadena de texto fácilmente +""" + +# 1. Importar el módulo de expresiones regulares "re" + +# 2. Crear un patrón, que es una cadena de texto que describe lo que queremos encontrar +import re +pattern = "Hola" +# 3. El texto donde queremos buscar +text = "Hola mundo" +# 4. Usar la función de búsqueda de "re" +result = re.search(pattern, text) + +if result: + print("He encontrado el patrón en el texto") +else: + print("No he encontrado el patrón en el texto") + +# .group() devuelve la cadena que coincide con el pattern +print(result.group()) + +# .start() devolver la posición inicial de la coincidencia +print(result.start()) + +# .end() devolver la posición final de la coincidencia +print(result.end()) + +# EJERCICIO 01 +# Encuentra la primera ocurrencia de la palabra "IA" en el siguiente texto +# e indica en que posición empieza y termina la coincidencia. +text = "Todo el mundo dice que la IA nos va a quitar el trabajo. Pero solo hace falta ver cómo la puede cagar con las Regex para ir con cuidado" +pattern = "IA" +found_ia = re.search(pattern, text) + +if found_ia: + print( + f"He encontrado el patrón en el texto en la posición {found_ia.start()} y termina en la posición {found_ia.end()}" + ) +else: + print("No he encontrado el patrón en el texto") + +# ----------------------- + +#  Encontrar todas las coincidencias de un patrón +# .findall() devuelve una lista con todas las coincidencias + +text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" +pattern = "Python" + +matches = re.findall(pattern, text) + +print(len(matches)) + +# ------------------------- + +# iter() devuelve un iterador que contiene todos los resultados de la búsqueda + +text = "Me gusta Python. Python es lo máximo. Aunque Python no es tan difícil, ojo con Python" +pattern = "Python" + +matches = re.finditer(pattern, text) + +for match in matches: + print(match.group(), match.start(), match.end()) + +# EJERCICIO 02 +# Encuentra todas las ocurrencias de la palabra "midu" en el siguiente texto e indica en que posición empieza y termina cada coincidencia y cuantas veces se encontró. +text = "Este es el curso de Python de midudev. ¡Suscríbete a midudev si te gusta este contenido! midu" + +# Modificadores + +# Los modificadores son opciones que se pueden agregar a un patrón para cambiar su comportamiento + +# re.IGNORECASE: Ignora las mayúsculas y minúsculas + +text = "Todo el mundo dice que la IA nos va a quitar el trabajo. Pero la ia no es tan mala. ¡Viva la Ia!" +pattern = "IA" +found = re.findall(pattern, text, re.IGNORECASE) + +if found: + print(found) + +# EJERCICIO 03 +# Encuentra todas las ocurrencias de la palabra "python" en el siguiente texto, sin distinguir entre mayúsculas y minúsculas. +text = "Este es el curso de Python de midudev. ¡Suscríbete a python si te gusta este contenido! PYTHON" + +# Reemplazar el texto + +# .sub() reemplaza todas las coincidencias de un patrón en un texto + +text = "Hola, mundo! Hola de nuevo. Hola otra vez." +pattern = "hola" +replacement = "Adiós" + +new_text = re.sub(pattern, replacement, text, flags=re.IGNORECASE) +print(new_text) diff --git a/05_regex/02_metachars.py b/05_regex/02_metachars.py index 5dd4f7b..b1afb78 100644 --- a/05_regex/02_metachars.py +++ b/05_regex/02_metachars.py @@ -1,136 +1,136 @@ -### -# 02 - Meta caracteres -# Los metacaracteres son simbolos especiales con significados especificos en las expresiones regulares -### - -import re - -# 1. El punto (.) -# Coincidir con cualquier caracter excepto una nueva linea - -text = "Hola mundo, H0la de nuevo, H$la otra vez" -pattern = "H.la" # Hola, H0la, H$la - -found = re.findall(pattern, text) - -if found: - print(found) -else: - print("No se ha encontrado el patrón") - - -text = "casa caasa cosa cisa cesa causa" -pattern = "c.sa" - -matches = re.findall(pattern, text) -print(matches) - -# -------------------- - -text = "Hola mundo, H0la de nuevo, H$la otra vez" -pattern = r"H.la" # Hola, H0la, H$la - -found = re.findall(pattern, text) - -if found: - print(found) -else: - print("No se ha encontrado el patrón") - - -# Cómo usar la barra invertida para anular el significado especial de un símbolo -text = "Mi casa es blanca. Y el coche es negro." -pattern = r"\." - -matches = re.findall(pattern, text) - -print(matches) - -# \d: coincide con cualquier dígito (0-9) - -text = "El número de teléfono es 123456789" -found = re.findall(r"\d{9}", text) - -print(found) - -# Ejercicio: Detectar si hay un número de España en el texto gracias al prefijo +34 - -text = "Mi número de teléfono es +34 688999999 apúntalo vale?" -pattern = r"\+34 \d{9}" -found = re.search(pattern, text) -if found: - print(f"Encontré el número de teléfono {found.group()}") - -# \w: Coincide con cualquier caracter alfanumerico (a-z, A-Z, 0-9, _) - -text = "el_rubius_69" -pattern = r"\w" -found = re.findall(pattern, text) -print(found) - -# \s: Coincide con cualqueir espacio en blanco (espacio, tabulación, salto de línea) -text = "Hola mundo\n¿Cómo estás?\t" -pattern = r"\s" -matches = re.findall(pattern, text) -print(matches) - -# ^: Coincide con el principio de una cadena -username = "423_name%22" -pattern = r"^\w" # validar nombre de usuario - -valid = re.search(pattern, username) - -if valid: - print("El nombre de usuario es válido") -else: - print("El nombre de usuario no es válido") - -phone = "+34 688999999" -pattern = r"^\+\d{1,3} " - -valid = re.search(pattern, phone) - -if valid: - print("El número de teléfono es válido") -else: - print("El número de teléfono no es válido") - -# $: Coincide con el final de una cadena -text = "Hola mundo." -pattern = r"mundo$" - -valid = re.search(pattern, text) - -if valid: - print("La cadena es válida") -else: - print("La cadena no es válida") - -# EJERCICIO -# Valida que un correo sea de gmail -text = "miduga@hotmail.com" -pattern = r"@gmail.com$" -valid = re.search(pattern, text) - -if valid: - print("El correo es gmail válido") -else: - print("El correo no es válido") - -# EJERCICIO: -# Tenemos una lista de archivos, necesitamos saber los nombres de los ficheros con extension .txt -files = "file1.txt file2.pdf midu-of.webp secret.txt" - -# \b: Coincide con el principio o final de una palabra -text = "casa casada cosa cosas casado casa" -pattern = r"\bc.sa\b" - -found = re.findall(pattern, text) -print(found) - -# |: Coincidr con una opción u otra -fruits = "platano, piña, manzana, aguacate, palta, pera, aguacate, aguacate" -pattern = r"palta|aguacate|p..a|\b\w{7}\b" - -matches = re.findall(pattern, fruits) -print(matches) +### +# 02 - Meta caracteres +# Los metacaracteres son simbolos especiales con significados especificos en las expresiones regulares +### + +import re + +# 1. El punto (.) +# Coincidir con cualquier caracter excepto una nueva linea + +text = "Hola mundo, H0la de nuevo, H$la otra vez" +pattern = "H.la" # Hola, H0la, H$la + +found = re.findall(pattern, text) + +if found: + print(found) +else: + print("No se ha encontrado el patrón") + + +text = "casa caasa cosa cisa cesa causa" +pattern = "c.sa" + +matches = re.findall(pattern, text) +print(matches) + +# -------------------- + +text = "Hola mundo, H0la de nuevo, H$la otra vez" +pattern = r"H.la" # Hola, H0la, H$la + +found = re.findall(pattern, text) + +if found: + print(found) +else: + print("No se ha encontrado el patrón") + + +# Cómo usar la barra invertida para anular el significado especial de un símbolo +text = "Mi casa es blanca. Y el coche es negro." +pattern = r"\." + +matches = re.findall(pattern, text) + +print(matches) + +# \d: coincide con cualquier dígito (0-9) + +text = "El número de teléfono es 123456789" +found = re.findall(r"\d{9}", text) + +print(found) + +# Ejercicio: Detectar si hay un número de España en el texto gracias al prefijo +34 + +text = "Mi número de teléfono es +34 688999999 apúntalo vale?" +pattern = r"\+34 \d{9}" +found = re.search(pattern, text) +if found: + print(f"Encontré el número de teléfono {found.group()}") + +# \w: Coincide con cualquier caracter alfanumerico (a-z, A-Z, 0-9, _) + +text = "el_rubius_69" +pattern = r"\w" +found = re.findall(pattern, text) +print(found) + +# \s: Coincide con cualqueir espacio en blanco (espacio, tabulación, salto de línea) +text = "Hola mundo\n¿Cómo estás?\t" +pattern = r"\s" +matches = re.findall(pattern, text) +print(matches) + +# ^: Coincide con el principio de una cadena +username = "423_name%22" +pattern = r"^\w" # validar nombre de usuario + +valid = re.search(pattern, username) + +if valid: + print("El nombre de usuario es válido") +else: + print("El nombre de usuario no es válido") + +phone = "+34 688999999" +pattern = r"^\+\d{1,3} " + +valid = re.search(pattern, phone) + +if valid: + print("El número de teléfono es válido") +else: + print("El número de teléfono no es válido") + +# $: Coincide con el final de una cadena +text = "Hola mundo." +pattern = r"mundo$" + +valid = re.search(pattern, text) + +if valid: + print("La cadena es válida") +else: + print("La cadena no es válida") + +# EJERCICIO +# Valida que un correo sea de gmail +text = "miduga@hotmail.com" +pattern = r"@gmail.com$" +valid = re.search(pattern, text) + +if valid: + print("El correo es gmail válido") +else: + print("El correo no es válido") + +# EJERCICIO: +# Tenemos una lista de archivos, necesitamos saber los nombres de los ficheros con extension .txt +files = "file1.txt file2.pdf midu-of.webp secret.txt" + +# \b: Coincide con el principio o final de una palabra +text = "casa casada cosa cosas casado casa" +pattern = r"\bc.sa\b" + +found = re.findall(pattern, text) +print(found) + +# |: Coincidr con una opción u otra +fruits = "platano, piña, manzana, aguacate, palta, pera, aguacate, aguacate" +pattern = r"palta|aguacate|p..a|\b\w{7}\b" + +matches = re.findall(pattern, fruits) +print(matches) diff --git a/05_regex/03_quantifiers.py b/05_regex/03_quantifiers.py index cf8748a..03e80ba 100644 --- a/05_regex/03_quantifiers.py +++ b/05_regex/03_quantifiers.py @@ -1,57 +1,57 @@ -### -# 03 - Quantifiers -# Los cuantificadores se utilizan para especificar cuántas ocurrencias de un carácter o grupo de caracteres se deben encontrar en una cadena. -### - -import re - -# *: Puede aparecer 0 o más veces -text = "aaaba" -pattern = "a*" -matches = re.findall(pattern, text) -print(matches) - -# Ejercicio 1: -# ¿Cuantas palabras tienen de 0 a más "a" y después una b? - -# +: Una a más veces -text = "dddd aaa ccc a bb aa casa" -pattern = "a+" -matches = re.findall(pattern, text) -print(matches) - -# ?: Cero o una vez -text = "aaabacb" -pattern = "a?b" -matches = re.findall(pattern, text) -print(matches) - -# Ejercicio: Haz opcional que aparezca un +34 en el siguiente texto -phone = "+34 688999999" - -# {n}: Exactamente n veces -text = "aaaaaa aa aaaa" -pattern = "a{3}" -matches = re.findall(pattern, text) - -print(matches) - -# {n, m}: De n a m veces -text = "u uu uuu u" -pattern = r"\w{2,3}" -matches = re.findall(pattern, text) -print(matches) - -# Ejercicio: -# Encuentra las palabras de 4 a 6 letras en el siguiente texto -words = "ala casa árbol león cinco murcielago" -pattern = r"\b\w{4,6}\b" -matches = re.findall(pattern, words) -print(matches) - -# Ejercicio -# Encuentra las palabras de más de 6 letras -words = "ala fantastico casa árbol león cinco murcielago" -pattern = r"\b\w{6,}\b" -matches = re.findall(pattern, words) -print(matches) +### +# 03 - Quantifiers +# Los cuantificadores se utilizan para especificar cuántas ocurrencias de un carácter o grupo de caracteres se deben encontrar en una cadena. +### + +import re + +# *: Puede aparecer 0 o más veces +text = "aaaba" +pattern = "a*" +matches = re.findall(pattern, text) +print(matches) + +# Ejercicio 1: +# ¿Cuantas palabras tienen de 0 a más "a" y después una b? + +# +: Una a más veces +text = "dddd aaa ccc a bb aa casa" +pattern = "a+" +matches = re.findall(pattern, text) +print(matches) + +# ?: Cero o una vez +text = "aaabacb" +pattern = "a?b" +matches = re.findall(pattern, text) +print(matches) + +# Ejercicio: Haz opcional que aparezca un +34 en el siguiente texto +phone = "+34 688999999" + +# {n}: Exactamente n veces +text = "aaaaaa aa aaaa" +pattern = "a{3}" +matches = re.findall(pattern, text) + +print(matches) + +# {n, m}: De n a m veces +text = "u uu uuu u" +pattern = r"\w{2,3}" +matches = re.findall(pattern, text) +print(matches) + +# Ejercicio: +# Encuentra las palabras de 4 a 6 letras en el siguiente texto +words = "ala casa árbol león cinco murcielago" +pattern = r"\b\w{4,6}\b" +matches = re.findall(pattern, words) +print(matches) + +# Ejercicio +# Encuentra las palabras de más de 6 letras +words = "ala fantastico casa árbol león cinco murcielago" +pattern = r"\b\w{6,}\b" +matches = re.findall(pattern, words) +print(matches) diff --git a/05_regex/04_sets.py b/05_regex/04_sets.py index 8c7cba6..6aa2f8c 100644 --- a/05_regex/04_sets.py +++ b/05_regex/04_sets.py @@ -1,53 +1,53 @@ -import re - -# [:] Coincide con cualquier caracter dentro de los corchetes - -username = "rub.$ius_69+" -pattern = r"^[\w._%+-]+$" - -match = re.search(pattern, username) -if match: - print("El nombre de usuario es válido: ", match.group()) -else: - print("El nombre de usuario no es válido") - - -# Buscar todas las vocales de una palabra -text = "Hola mundo" -pattern = r"[aeiou]" -matches = re.findall(pattern, text) -print(matches) - -# Una Regex para encontrar las palabras man, fan y ban -# pero ignora el resto -text = "man ran fan ñan ban" -pattern = r"[mfb]an" - -matches = re.findall(pattern, text) -print(matches) - -# Ejercicio: -# Nos han complicado el asunto, porque ahora hay palabras que encajan pero no empiezan por esas letras. -# Solo queremos las palabras man, fan y ban -text = "omniman fanatico man bandana" -# \b - -text = "22" -pattern = r"[4-9]" - -matches = re.findall(pattern, text) -print(matches) - - -# Ejercicio final con todo lo aprendido -# Mejorar esto: https://www.computerhope.com/jargon/r/regular-expression.png - -## Buscar corner cases que no pasa y arreglarlo: -"lo.que+sea@shopping.online" -"michael@gov.co.uk" - -# [^]: Coincide con cualquier caracter que no esté dentro de los corchetes -text = "Hola mundo" -pattern = r"[^aeiou]" -matches = re.findall(pattern, text) -print(matches) +import re + +# [:] Coincide con cualquier caracter dentro de los corchetes + +username = "rub.$ius_69+" +pattern = r"^[\w._%+-]+$" + +match = re.search(pattern, username) +if match: + print("El nombre de usuario es válido: ", match.group()) +else: + print("El nombre de usuario no es válido") + + +# Buscar todas las vocales de una palabra +text = "Hola mundo" +pattern = r"[aeiou]" +matches = re.findall(pattern, text) +print(matches) + +# Una Regex para encontrar las palabras man, fan y ban +# pero ignora el resto +text = "man ran fan ñan ban" +pattern = r"[mfb]an" + +matches = re.findall(pattern, text) +print(matches) + +# Ejercicio: +# Nos han complicado el asunto, porque ahora hay palabras que encajan pero no empiezan por esas letras. +# Solo queremos las palabras man, fan y ban +text = "omniman fanatico man bandana" +# \b + +text = "22" +pattern = r"[4-9]" + +matches = re.findall(pattern, text) +print(matches) + + +# Ejercicio final con todo lo aprendido +# Mejorar esto: https://www.computerhope.com/jargon/r/regular-expression.png + +## Buscar corner cases que no pasa y arreglarlo: +"lo.que+sea@shopping.online" +"michael@gov.co.uk" + +# [^]: Coincide con cualquier caracter que no esté dentro de los corchetes +text = "Hola mundo" +pattern = r"[^aeiou]" +matches = re.findall(pattern, text) +print(matches) diff --git a/LICENSE b/LICENSE index 5d092c6..d04df12 100644 --- a/LICENSE +++ b/LICENSE @@ -1,157 +1,157 @@ -# Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International - -Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -**Using Creative Commons Public Licenses** - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - -* __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors). - -* __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees). - -## Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - -### Section 1 – Definitions. - -a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. - -b. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. - -e. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. - -f. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. - -h. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License. - -i. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. - -h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License. - -i. __NonCommercial__ means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange. - -j. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. - -k. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. - -l. __You__ means the individual or entity exercising the Licensed Rights under this Public License. __Your__ has a corresponding meaning. - -### Section 2 – Scope. - -a. ___License grant.___ - - 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: - - A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and - - B. produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only. - - 2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. - - 3. __Term.__ The term of this Public License is specified in Section 6(a). - - 4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. - - 5. __Downstream recipients.__ - - A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. - - B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. - - 6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). - -b. ___Other rights.___ - - 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this Public License. - - 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes. - -### Section 3 – License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - -a. ___Attribution.___ - - 1. If You Share the Licensed Material, You must: - - A. retain the following if it is supplied by the Licensor with the Licensed Material: - - i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of warranties; - - v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; - - B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and - - C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. - - For the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material. - - 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. - - 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. - -### Section 4 – Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - -a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not Share Adapted Material; - -b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and - -c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - -### Section 5 – Disclaimer of Warranties and Limitation of Liability. - -a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__ - -b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__ - -c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. - -### Section 6 – Term and Termination. - -a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. - -b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. - -c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. - -d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. - -### Section 7 – Other Terms and Conditions. - -a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. - -b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. - -### Section 8 – Interpretation. - -a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. - -b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. - -c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. - -d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. - -> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. The text of the Creative Commons public licenses is dedicated to the public domain under the [CC0 Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/legalcode). Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. -> +# Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International + +Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +**Using Creative Commons Public Licenses** + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + +* __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors). + +* __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees). + +## Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +### Section 1 – Definitions. + +a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + +b. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + +e. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + +f. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + +h. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + +i. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + +h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License. + +i. __NonCommercial__ means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange. + +j. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + +k. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + +l. __You__ means the individual or entity exercising the Licensed Rights under this Public License. __Your__ has a corresponding meaning. + +### Section 2 – Scope. + +a. ___License grant.___ + + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and + + B. produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only. + + 2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. __Term.__ The term of this Public License is specified in Section 6(a). + + 4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. __Downstream recipients.__ + + A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + + B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + +b. ___Other rights.___ + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes. + +### Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + +a. ___Attribution.___ + + 1. If You Share the Licensed Material, You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + + For the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + +### Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not Share Adapted Material; + +b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +### Section 5 – Disclaimer of Warranties and Limitation of Liability. + +a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__ + +b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__ + +c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +### Section 6 – Term and Termination. + +a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + +c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + +d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +### Section 7 – Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +### Section 8 – Interpretation. + +a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + +b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + +c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + +> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. The text of the Creative Commons public licenses is dedicated to the public domain under the [CC0 Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/legalcode). Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. +> > Creative Commons may be contacted at [creativecommons.org](http://creativecommons.org). \ No newline at end of file diff --git a/README.md b/README.md index 1dfdc2f..924c0ce 100644 --- a/README.md +++ b/README.md @@ -1,196 +1,196 @@ -
- -# Curso Python desde Cero 🐍 - -[![Python Version](https://img.shields.io/badge/Python-3.x-blue.svg)](https://www.python.org/) -[![Estado](https://img.shields.io/badge/Estado-En%20emisión-yellow)](https://twitch.tv/midudev) -[![CC License](https://img.shields.io/badge/license-CC--BY--NC--ND-green.svg)](https://github.com/midudev/curso-python/blob/main/LICENSE) - -Curso práctico y gratuito de Python desde cero. Emitido en directo en [twitch.tv/midudev](https://twitch.tv/midudev). - - - -
- -
- portada python -
- -## 🤔 ¿Por qué deberías ver este curso? - -- 🎯 **Aprenderás el lenguaje de programación del momento.** -- 📅 **Nuevas clases todos los miércoles.** -- 🚀 Ideal para principiantes: comienza **desde cero** y avanza paso a paso. -- 🛠️ **Curso práctico** con ejercicios para que puedas practicar lo aprendido. -- 📝 **Código abierto**: lo que te permitirá clonar el proyecto y tener acceso completo a todo lo que se muestra. -> [!TIP] -> **¿Sabías que puedes acceder a todas las clases desde la [Academia de midudev](https://midu.dev/)?** Si eres suscriptor en [Twitch](https://www.twitch.tv/midudev), ¡ya tienes acceso! - -## 🕐 Horario por países - -| Hora | Países | -|------|------------------------------------------| -| 18H | 🇪🇸 España | -| 17H | 🇮🇨 Islas Canarias | -| 14H | 🇺🇾 Uruguay 🇦🇷 Argentina 🇨🇱 Chile 🇵🇾 Paraguay | -| 13H | 🇧🇴 Bolivia 🇻🇪 Venezuela 🇩🇴 República Dominicana 🇵🇷 Puerto Rico | -| 12H | 🇨🇴 Colombia 🇵🇪 Perú 🇪🇨 Ecuador 🇨🇺 Cuba 🇵🇦 Panamá | -| 11H | 🇲🇽 México 🇨🇷 Costa Rica 🇳🇮 Nicaragua 🇸🇻 El Salvador 🇭🇳 Honduras | - -## 📺¿Dónde puedo ver el curso? -Mira los cursos y participa en vivo en -[twitch.tv/midudev](https://twitch.tv/midudev) - - - - - - - - -## 📄 Contenido Actual -| Clase | Código | Video | -|-----------------|-----------------|----------------------------------| -|**1. Hola Mundo, Tipos de Datos, Conversión de tipos y Variables** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/01_basic) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2354087841) | -|**2. Condicionales y listas + ejercicios** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/02_flow_control) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2360535344) | -|**3. bucles while, for y funciones** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/03_loops) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2366925887) | -|**4. Lógica de Programación + Diccionarios** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/04_logic) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2373204722) | -|**5. Próximamente** (Miércoles 19 de febrero) | | | - -> [!NOTE] -> El curso está actualmente en emisión. Nuevas clases todos los miércoles a las 18:00h (hora española). - -
-📚 Temario Completo Planificado - -1. Introducción -2. Variables y Funciones Incorporadas -3. Operadores -4. Strings -5. Listas -6. Tuplas -7. Sets -8. Diccionarios -9. Condicionales -10. Bucles -11. Funciones -12. Módulos -13. List Comprehension -14. Funciones de Orden Superior -15. Errores de Tipos en Python -16. Python Date time -17. Manejo de Excepciones -18. Expresiones Regulares -19. Manejo de Archivos -20. Python Package Manager -21. Clases y Objetos -22. Web Scraping -23. Entorno Virtual -24. Estadísticas -25. Pandas -26. Python web -27. Python con MongoDB -28. API -29. Construyendo APIs -30. Conclusiones - -
- -## ⚙️ Requisitos - -> [!IMPORTANT] -> Necesitarás: -> - Python 3.x -> - Editor de código (recomendado VS Code) -> - Conexión a internet para las clases en vivo - -## 💻 Instalación - -```bash -# Verifica tu versión de Python -python --version - -# Clona el repositorio -git clone https://github.com/midudev/curso-python - -# Accede al directorio -cd curso-python -``` - -> [!TIP] -> Si no quieres instalar nada, puedes usar editores online como: -> - [OnlineGDB](https://www.onlinegdb.com/online_python_compiler) -> - [Python Sandbox](https://pythonsandbox.io/) -> - [Google Colab](https://colab.research.google.com/) - ---- - -## 💻 Configuración del Entorno - -> Usa **Visual Studio Code (VS Code)** para escribir y ejecutar código Python localmente. - -1. Descarga [VS Code](https://code.visualstudio.com/) -2. Instala las extensiones recomendadas: - - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) - - [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) - - [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) - -## 🛠️ Requisitos Técnicos - -- Python 3.x instalado -- VS Code + extensiones -- Conexión a internet -- No requiere experiencia previa - -## 📚 Recursos Adicionales - -- [cursopython.dev](https://cursopython.dev) - Portal oficial del curso -- [Documentación de Python](https://docs.python.org/es/) - Documentación oficial en español -- [Ejercicios resueltos](link-ejercicios) - Soluciones a los ejercicios del curso - -## 🔗 Enlaces - -- 🌐 [cursopython.dev](https://cursopython.dev) - Portal del curso -- 📚 [Documentación Python](https://docs.python.org/es/) - Docs oficial -- ⭐ [GitHub](https://github.com/midudev/curso-python) - Código fuente - -## ➕ Más información - -Descubre más en [cursopython.dev](https://cursopython.dev) - -## 👥 Comunidad - -[![Discord](https://img.shields.io/discord/741237973663612969?style=for-the-badge&logo=discord&logoColor=white&label=Discord)](https://discord.gg/midudev) - -Únete a nuestra comunidad para: -- 💬 Compartir dudas y soluciones -- 🤝 Conectar con otros estudiantes -- 📢 Recibir anuncios de nuevas clases -- 🎉 Participar en eventos especiales - -## ⚖️ Licencia - -Este curso usa la licencia [CC-BY-NC-ND](https://github.com/midudev/curso-python/blob/main/LICENSE) que permite: -- ✅ Compartir el material -- ✅ Usar el contenido para uso personal -- ❌ Uso comercial -- ❌ Modificación del material -- ⚠️ Requiere atribución al autor - -## 👨‍💻 Autor - -[@midudev](https://www.github.com/midudev) - +
+ +# Curso Python desde Cero 🐍 + +[![Python Version](https://img.shields.io/badge/Python-3.x-blue.svg)](https://www.python.org/) +[![Estado](https://img.shields.io/badge/Estado-En%20emisión-yellow)](https://twitch.tv/midudev) +[![CC License](https://img.shields.io/badge/license-CC--BY--NC--ND-green.svg)](https://github.com/midudev/curso-python/blob/main/LICENSE) + +Curso práctico y gratuito de Python desde cero. Emitido en directo en [twitch.tv/midudev](https://twitch.tv/midudev). + + + +
+ +
+ portada python +
+ +## 🤔 ¿Por qué deberías ver este curso? + +- 🎯 **Aprenderás el lenguaje de programación del momento.** +- 📅 **Nuevas clases todos los miércoles.** +- 🚀 Ideal para principiantes: comienza **desde cero** y avanza paso a paso. +- 🛠️ **Curso práctico** con ejercicios para que puedas practicar lo aprendido. +- 📝 **Código abierto**: lo que te permitirá clonar el proyecto y tener acceso completo a todo lo que se muestra. +> [!TIP] +> **¿Sabías que puedes acceder a todas las clases desde la [Academia de midudev](https://midu.dev/)?** Si eres suscriptor en [Twitch](https://www.twitch.tv/midudev), ¡ya tienes acceso! + +## 🕐 Horario por países + +| Hora | Países | +|------|------------------------------------------| +| 18H | 🇪🇸 España | +| 17H | 🇮🇨 Islas Canarias | +| 14H | 🇺🇾 Uruguay 🇦🇷 Argentina 🇨🇱 Chile 🇵🇾 Paraguay | +| 13H | 🇧🇴 Bolivia 🇻🇪 Venezuela 🇩🇴 República Dominicana 🇵🇷 Puerto Rico | +| 12H | 🇨🇴 Colombia 🇵🇪 Perú 🇪🇨 Ecuador 🇨🇺 Cuba 🇵🇦 Panamá | +| 11H | 🇲🇽 México 🇨🇷 Costa Rica 🇳🇮 Nicaragua 🇸🇻 El Salvador 🇭🇳 Honduras | + +## 📺¿Dónde puedo ver el curso? +Mira los cursos y participa en vivo en +[twitch.tv/midudev](https://twitch.tv/midudev) + + + + + + + + +## 📄 Contenido Actual +| Clase | Código | Video | +|-----------------|-----------------|----------------------------------| +|**1. Hola Mundo, Tipos de Datos, Conversión de tipos y Variables** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/01_basic) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2354087841) | +|**2. Condicionales y listas + ejercicios** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/02_flow_control) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2360535344) | +|**3. bucles while, for y funciones** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/03_loops) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2366925887) | +|**4. Lógica de Programación + Diccionarios** | [![github](https://img.shields.io/badge/github-black?style=for-the-badge&logo=github&logoColor=white)](https://github.com/midudev/curso-python/tree/main/04_logic) | [![twitch](https://img.shields.io/badge/twitch-572364?style=for-the-badge&logo=twitch&logoColor=white)](https://www.twitch.tv/videos/2373204722) | +|**5. Próximamente** (Miércoles 19 de febrero) | | | + +> [!NOTE] +> El curso está actualmente en emisión. Nuevas clases todos los miércoles a las 18:00h (hora española). + +
+📚 Temario Completo Planificado + +1. Introducción +2. Variables y Funciones Incorporadas +3. Operadores +4. Strings +5. Listas +6. Tuplas +7. Sets +8. Diccionarios +9. Condicionales +10. Bucles +11. Funciones +12. Módulos +13. List Comprehension +14. Funciones de Orden Superior +15. Errores de Tipos en Python +16. Python Date time +17. Manejo de Excepciones +18. Expresiones Regulares +19. Manejo de Archivos +20. Python Package Manager +21. Clases y Objetos +22. Web Scraping +23. Entorno Virtual +24. Estadísticas +25. Pandas +26. Python web +27. Python con MongoDB +28. API +29. Construyendo APIs +30. Conclusiones + +
+ +## ⚙️ Requisitos + +> [!IMPORTANT] +> Necesitarás: +> - Python 3.x +> - Editor de código (recomendado VS Code) +> - Conexión a internet para las clases en vivo + +## 💻 Instalación + +```bash +# Verifica tu versión de Python +python --version + +# Clona el repositorio +git clone https://github.com/midudev/curso-python + +# Accede al directorio +cd curso-python +``` + +> [!TIP] +> Si no quieres instalar nada, puedes usar editores online como: +> - [OnlineGDB](https://www.onlinegdb.com/online_python_compiler) +> - [Python Sandbox](https://pythonsandbox.io/) +> - [Google Colab](https://colab.research.google.com/) + +--- + +## 💻 Configuración del Entorno + +> Usa **Visual Studio Code (VS Code)** para escribir y ejecutar código Python localmente. + +1. Descarga [VS Code](https://code.visualstudio.com/) +2. Instala las extensiones recomendadas: + - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) + - [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) + - [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) + +## 🛠️ Requisitos Técnicos + +- Python 3.x instalado +- VS Code + extensiones +- Conexión a internet +- No requiere experiencia previa + +## 📚 Recursos Adicionales + +- [cursopython.dev](https://cursopython.dev) - Portal oficial del curso +- [Documentación de Python](https://docs.python.org/es/) - Documentación oficial en español +- [Ejercicios resueltos](link-ejercicios) - Soluciones a los ejercicios del curso + +## 🔗 Enlaces + +- 🌐 [cursopython.dev](https://cursopython.dev) - Portal del curso +- 📚 [Documentación Python](https://docs.python.org/es/) - Docs oficial +- ⭐ [GitHub](https://github.com/midudev/curso-python) - Código fuente + +## ➕ Más información + +Descubre más en [cursopython.dev](https://cursopython.dev) + +## 👥 Comunidad + +[![Discord](https://img.shields.io/discord/741237973663612969?style=for-the-badge&logo=discord&logoColor=white&label=Discord)](https://discord.gg/midudev) + +Únete a nuestra comunidad para: +- 💬 Compartir dudas y soluciones +- 🤝 Conectar con otros estudiantes +- 📢 Recibir anuncios de nuevas clases +- 🎉 Participar en eventos especiales + +## ⚖️ Licencia + +Este curso usa la licencia [CC-BY-NC-ND](https://github.com/midudev/curso-python/blob/main/LICENSE) que permite: +- ✅ Compartir el material +- ✅ Usar el contenido para uso personal +- ❌ Uso comercial +- ❌ Modificación del material +- ⚠️ Requiere atribución al autor + +## 👨‍💻 Autor + +[@midudev](https://www.github.com/midudev) + diff --git a/test.py b/test.py index 82df0d2..bab0b6f 100644 --- a/test.py +++ b/test.py @@ -1,58 +1,58 @@ -inventario_dinosaurios = [ - ("Rexy", "Tyrannosaurus Rex", 1, "Saludable"), - ("Blue", "Velociraptor", 2, "Saludable"), - ("Charlie", "Velociraptor", 2, "Necesita Atención"), - ("Delta", "Velociraptor", 2, "Saludable"), - ("Echo", "Velociraptor", 2, "Saludable"), - ("Braquiosaurio_1", "Braquiosaurio", 3, "Saludable"), - ("Triceratops_1", "Triceratops", 4, "Saludable"), - ("Spino", "Spinosaurus", 5, "Necesita Atención"), - ("Pterodáctilo_1", "Pterodáctilo", 6, "Saludable"), - ("Rexy_Junior", "Tyrannosaurus Rex", 1, "Necesita Atención"), -] - -print("--- Informe del Inventario de Dinosaurios de Jurassic Park ---") - -# 1. Contar el número total de dinosaurios -total_dinosaurios = 0 -for dinosaurio in inventario_dinosaurios: - total_dinosaurios += 1 # Incrementa el contador por cada dinosaurio en la lista -print(f"\nNúmero total de dinosaurios en el parque: {total_dinosaurios}") - -# 2. Identificar y listar los nombres de todos los Velociraptors -velociraptors_list = [] -for dinosaurio in inventario_dinosaurios: - if ( - dinosaurio[1] == "Velociraptor" - ): # Comprueba si la especie (índice 1) es "Velociraptor" - velociraptors_list.append( - dinosaurio[0] - ) # Añade el nombre (índice 0) a la lista -print(f"\n--- Listado de Velociraptors ---") -print(f"Velociraptors encontrados: {velociraptors_list}") - -# 3. Determinar cuántos dinosaurios necesitan atención médica -dinosaurios_necesitan_atencion = 0 -for dinosaurio in inventario_dinosaurios: - if ( - dinosaurio[3] == "Necesita Atención" - ): # Comprueba si el estado de salud (índice 3) es "Necesita Atención" - dinosaurios_necesitan_atencion += 1 # Incrementa el contador -print(f"\n--- Dinosaurios que necesitan atención médica ---") -print( - f"Número de dinosaurios que necesitan atención médica: {dinosaurios_necesitan_atencion}" -) - - -# 4. Simular una "inspección de recinto" para el Recinto 2 -def inspeccionar_recinto(recinto_numero): - print(f"\n--- Inspección del Recinto {recinto_numero} ---") - print(f"Dinosaurios en el Recinto {recinto_numero}:") - for dinosaurio in inventario_dinosaurios: - if ( - dinosaurio[2] == recinto_numero - ): # Comprueba si el recinto (índice 2) coincide con el recinto_numero dado - print(f"- Nombre: {dinosaurio[0]}, Estado: {dinosaurio[3]}") - - -inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 +inventario_dinosaurios = [ + ("Rexy", "Tyrannosaurus Rex", 1, "Saludable"), + ("Blue", "Velociraptor", 2, "Saludable"), + ("Charlie", "Velociraptor", 2, "Necesita Atención"), + ("Delta", "Velociraptor", 2, "Saludable"), + ("Echo", "Velociraptor", 2, "Saludable"), + ("Braquiosaurio_1", "Braquiosaurio", 3, "Saludable"), + ("Triceratops_1", "Triceratops", 4, "Saludable"), + ("Spino", "Spinosaurus", 5, "Necesita Atención"), + ("Pterodáctilo_1", "Pterodáctilo", 6, "Saludable"), + ("Rexy_Junior", "Tyrannosaurus Rex", 1, "Necesita Atención"), +] + +print("--- Informe del Inventario de Dinosaurios de Jurassic Park ---") + +# 1. Contar el número total de dinosaurios +total_dinosaurios = 0 +for dinosaurio in inventario_dinosaurios: + total_dinosaurios += 1 # Incrementa el contador por cada dinosaurio en la lista +print(f"\nNúmero total de dinosaurios en el parque: {total_dinosaurios}") + +# 2. Identificar y listar los nombres de todos los Velociraptors +velociraptors_list = [] +for dinosaurio in inventario_dinosaurios: + if ( + dinosaurio[1] == "Velociraptor" + ): # Comprueba si la especie (índice 1) es "Velociraptor" + velociraptors_list.append( + dinosaurio[0] + ) # Añade el nombre (índice 0) a la lista +print(f"\n--- Listado de Velociraptors ---") +print(f"Velociraptors encontrados: {velociraptors_list}") + +# 3. Determinar cuántos dinosaurios necesitan atención médica +dinosaurios_necesitan_atencion = 0 +for dinosaurio in inventario_dinosaurios: + if ( + dinosaurio[3] == "Necesita Atención" + ): # Comprueba si el estado de salud (índice 3) es "Necesita Atención" + dinosaurios_necesitan_atencion += 1 # Incrementa el contador +print(f"\n--- Dinosaurios que necesitan atención médica ---") +print( + f"Número de dinosaurios que necesitan atención médica: {dinosaurios_necesitan_atencion}" +) + + +# 4. Simular una "inspección de recinto" para el Recinto 2 +def inspeccionar_recinto(recinto_numero): + print(f"\n--- Inspección del Recinto {recinto_numero} ---") + print(f"Dinosaurios en el Recinto {recinto_numero}:") + for dinosaurio in inventario_dinosaurios: + if ( + dinosaurio[2] == recinto_numero + ): # Comprueba si el recinto (índice 2) coincide con el recinto_numero dado + print(f"- Nombre: {dinosaurio[0]}, Estado: {dinosaurio[3]}") + + +inspeccionar_recinto(2) # Llama a la función para inspeccionar el Recinto 2 From d532abea520e9a052807560ff45673f677faf46a Mon Sep 17 00:00:00 2001 From: Jefferson Chavez DIaz Date: Sat, 14 Jun 2025 22:48:40 -0500 Subject: [PATCH 124/187] ajustar el nivel de zoom de la ventana a 2 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d607508..6d49537 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,7 +173,7 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.4, + "window.zoomLevel": 2, "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", From 7898175f68f73f7231cc2868029568bd9a0d742c Mon Sep 17 00:00:00 2001 From: Jefferson Chavez DIaz Date: Sun, 15 Jun 2025 10:35:32 -0500 Subject: [PATCH 125/187] actualizar tema de trabajo y ajustar configuraciones de fuente --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6d49537..ada9fc8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,14 +6,14 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SynthWave '84", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SynthWave '84", - "workbench.preferredLightColorTheme": "SynthWave '84", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 14, + "editor.fontSize": 12.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", - "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 939f7c531cfc22aa302311cf7fd818b2a5c52376 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 17 Jun 2025 02:00:33 -0500 Subject: [PATCH 126/187] =?UTF-8?q?ajustar=20tama=C3=B1o=20de=20fuente=20d?= =?UTF-8?q?el=20editor=20a=2011.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ada9fc8..4129ca3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 12.5, + "editor.fontSize": 11.3, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 3918ab3cc5d5122df2ce5526b02409462c7fa69e Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Mon, 16 Jun 2025 22:12:05 -0500 Subject: [PATCH 127/187] =?UTF-8?q?ajustar=20la=20ubicaci=C3=B3n=20de=20la?= =?UTF-8?q?=20barra=20lateral=20a=20la=20izquierda=20y=20cambiar=20el=20ta?= =?UTF-8?q?ma=C3=B1o=20de=20fuente=20del=20editor=20a=2012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4129ca3..7709efb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 11.3, + "editor.fontSize": 12, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -340,5 +340,4 @@ "terminal.integrated.sendKeybindingsToShell": true, "glassit.alpha": 220, "oneDarkPro.vivid": true, - "editor.lineHeight": 20 } From 8a0da30dbe109b7e1751f8ca4ba3235109010ff3 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 22 Jun 2025 12:32:13 -0500 Subject: [PATCH 128/187] add new code editor and new setting --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7709efb..d19e628 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 2, - "editor.fontSize": 12, + "window.zoomLevel": 1.3, + "editor.fontSize": 13.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 656f8b9f24fa0d98f95a67f1c336cc051913e39d Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Sun, 22 Jun 2025 12:33:57 -0500 Subject: [PATCH 129/187] enable supermaven ai --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d19e628..bdc31fa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -287,7 +287,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": false, + "*": true, "supermaven.inlineCompletions.enabled": false, "supermaven.inlineCompletions.delayMs": 10, "supermaven.inlineCompletions.maxResults": 10 From d9ab426e79f4a87e703d059004755c15a84c33b1 Mon Sep 17 00:00:00 2001 From: Jefferson Chavez Diaz Date: Tue, 24 Jun 2025 07:14:13 -0500 Subject: [PATCH 130/187] enable minimap --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bdc31fa..d7faa73 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -172,7 +172,7 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": false, + "editor.minimap.enabled": true, "window.zoomLevel": 1.3, "editor.fontSize": 13.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", From f83c358958e683e4fb8e829333b8d47b32971584 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 24 Jun 2025 21:35:29 -0500 Subject: [PATCH 131/187] add new font size and window zoom level --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d7faa73..8143040 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": true, - "window.zoomLevel": 1.3, - "editor.fontSize": 13.5, + "window.zoomLevel": 1.8, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 4307749ec64dc5ae81d61e440b82de411880bc37 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 26 Jun 2025 16:10:57 -0500 Subject: [PATCH 132/187] add font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8143040..608d0d7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": true, "window.zoomLevel": 1.8, - "editor.fontSize": 13, + "editor.fontSize": 12.3, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 3c762d63641f7780b186544dfb8d07cdcda20cb7 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 28 Jun 2025 11:17:38 -0500 Subject: [PATCH 133/187] add new font family --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 608d0d7..af53de2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Iosevka Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From c41a328fb859023fe705e2bf2f44ea725dbd615b Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 28 Jun 2025 11:31:36 -0500 Subject: [PATCH 134/187] delete minimap and change on font size --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index af53de2..4968f4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -172,9 +172,9 @@ // ========== File Nesting ========== "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", - "editor.minimap.enabled": true, + "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 12.3, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 89babb1f24b1f87e76ce6a4958c610314ffb4eab Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 28 Jun 2025 13:01:24 -0500 Subject: [PATCH 135/187] change theme on the editor. --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4968f4d..a79d50d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "SpaceBox Fluent (Dark)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "SpaceBox Fluent (Dark)", + "workbench.preferredLightColorTheme": "SpaceBox Fluent (Dark)", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "SpaceBox Fluent (Dark)", + "workbench.preferredHighContrastColorTheme": "SpaceBox Fluent (Dark)", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 0890c67c9587559f20c88945d281c75488749a5c Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 29 Jun 2025 09:12:37 -0500 Subject: [PATCH 136/187] change on theme --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a79d50d..f4ad0c6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SpaceBox Fluent (Dark)", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SpaceBox Fluent (Dark)", - "workbench.preferredLightColorTheme": "SpaceBox Fluent (Dark)", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 13, + "editor.fontSize": 12.6, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SpaceBox Fluent (Dark)", - "workbench.preferredHighContrastColorTheme": "SpaceBox Fluent (Dark)", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 7c1fbc9ba580f370e8a3d0bee6b738ec7e477ab7 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 30 Jun 2025 07:55:22 -0500 Subject: [PATCH 137/187] change theme and font size --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f4ad0c6..39872a4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Iosevka Nerd Font", + "editor.fontFamily": "JetBrainsMono Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.8, - "editor.fontSize": 12.6, + "editor.fontSize": 11.9, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 26ae89e6f27b2c00772c3fad980d79cfb0827e4c Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 1 Jul 2025 21:02:50 -0500 Subject: [PATCH 138/187] change font family. --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 39872a4..bafbe82 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrainsMono Nerd Font", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From 98ef54c09fb3f38af11769b7b5e4f48db3c11fd2 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Fri, 4 Jul 2025 20:15:50 -0500 Subject: [PATCH 139/187] changing theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bafbe82..316745b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Bearded Theme Vivid Black", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Bearded Theme Vivid Black", + "workbench.preferredLightColorTheme": "Bearded Theme Vivid Black", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Bearded Theme Vivid Black", + "workbench.preferredHighContrastColorTheme": "Bearded Theme Vivid Black", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 7c11aa1849fc29b0ff38c37e3740366c71b3929d Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 5 Jul 2025 08:11:52 -0500 Subject: [PATCH 140/187] changing by one dark pro --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 316745b..bafbe82 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Bearded Theme Vivid Black", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Bearded Theme Vivid Black", - "workbench.preferredLightColorTheme": "Bearded Theme Vivid Black", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Bearded Theme Vivid Black", - "workbench.preferredHighContrastColorTheme": "Bearded Theme Vivid Black", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 5e6bf90cf8ed77b56e11503af0664490a9052697 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 12 Jul 2025 10:21:19 -0500 Subject: [PATCH 141/187] changes on zoom and font size --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bafbe82..edf6df3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.8, - "editor.fontSize": 11.9, + "window.zoomLevel": 0.8, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From f7e216db14d1d21ddba5ecdb645e5b2bd9efaad7 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 12 Jul 2025 10:47:55 -0500 Subject: [PATCH 142/187] changes on AI --- .vscode/settings.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index edf6df3..451cdc3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -279,7 +279,7 @@ "editor.detectIndentation": false, "workbench.editor.showTabs": "multiple", "editor.colorDecorators": true, - "editor.renderLineHighlight": "line", + "editor.renderLineHighlight": "none", "chat.editor.wordWrap": "on", "editor.accessibilitySupport": "off", "terminal.integrated.smoothScrolling": true, @@ -288,9 +288,6 @@ "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { "*": true, - "supermaven.inlineCompletions.enabled": false, - "supermaven.inlineCompletions.delayMs": 10, - "supermaven.inlineCompletions.maxResults": 10 }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", From c91bf11527b5cabd505a0c9534436d5210319962 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 12 Jul 2025 16:55:53 -0500 Subject: [PATCH 143/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 451cdc3..bbf35b4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 0.8, - "editor.fontSize": 14, + "editor.fontSize": 14.6, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 75281aa371cd022f4989a922e51c3386ec5c1191 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Wed, 23 Jul 2025 16:23:29 -0500 Subject: [PATCH 144/187] disabled editor hover --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bbf35b4..81e5978 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -182,7 +182,7 @@ "editor.formatOnSave": true, "prettier.useTabs": false, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.hover.enabled": true, + "editor.hover.enabled": false, "[python]": { "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, From 76135568d44c8b324931d9919bdd993156e80478 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Wed, 23 Jul 2025 16:35:12 -0500 Subject: [PATCH 145/187] changing font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 81e5978..9174525 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 0.8, - "editor.fontSize": 14.6, + "editor.fontSize": 14.9, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From 004c65b1d09975d6b1666092b134c8de7218a184 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 24 Jul 2025 19:50:53 -0500 Subject: [PATCH 146/187] add new settings --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9174525..7d91f0d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -51,7 +51,7 @@ "terminal.integrated.cursorStyle": "block", "terminal.integrated.persistentSessionReviveProcess": "never", "terminal.integrated.tabs.enabled": false, - "terminal.integrated.fontSize": 13, + "terminal.integrated.fontSize": 14, "workbench.editor.closeOnFileDelete": true, "workbench.editor.highlightModifiedTabs": true, "workbench.editor.limit.enabled": true, @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 0.8, - "editor.fontSize": 14.9, + "window.zoomLevel": 1.8, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, From c0d55c0c9d6b505326d2d866a94216c4d845bb30 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Fri, 25 Jul 2025 16:08:05 -0500 Subject: [PATCH 147/187] change on zoom level --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7d91f0d..9047130 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -173,7 +173,7 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.8, + "window.zoomLevel": 1.3, "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", From 5b4fe47103c9625710964fb7a2baa9214d07dbf9 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 2 Aug 2025 23:33:51 -0500 Subject: [PATCH 148/187] change font family and theme --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9047130..bfd1457 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Fira Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "scepter (darker)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "scepter (darker)", + "workbench.preferredLightColorTheme": "scepter (darker)", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "scepter (darker)", + "workbench.preferredHighContrastColorTheme": "scepter (darker)", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 687b0dd18752cf0e8495331d43da2ad2c23a0885 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 3 Aug 2025 11:57:07 -0500 Subject: [PATCH 149/187] add new terminal integrated --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bfd1457..8705f3f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -266,7 +266,7 @@ "file:///c:/Users/jefer/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.4/dist/updateHandler.js" ], "workbench.editor.wrapTabs": false, - "terminal.integrated.defaultProfile.windows": "PowerShell", + "terminal.integrated.defaultProfile.windows": "Git Bash", "git.blame.editorDecoration.enabled": false, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" From 88e6768563db922cca431ba15d7e0df9000a3926 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 4 Aug 2025 08:17:07 -0500 Subject: [PATCH 150/187] add new theme: one dark pro mix --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8705f3f..192a2eb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "scepter (darker)", + "workbench.colorTheme": "One Dark Pro Mix", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "scepter (darker)", - "workbench.preferredLightColorTheme": "scepter (darker)", + "workbench.preferredDarkColorTheme": "One Dark Pro Mix", + "workbench.preferredLightColorTheme": "One Dark Pro Mix", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "scepter (darker)", - "workbench.preferredHighContrastColorTheme": "scepter (darker)", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Mix", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Mix", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From 11adfba1abb9f182c54ca98d86302069dbe0ba02 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 4 Aug 2025 19:41:34 -0500 Subject: [PATCH 151/187] add font family --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 192a2eb..7ddeb37 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Fira Code", + "editor.fontFamily": "JetBrainsMono Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From 5bd44b015efd3492fd6fd405956b4aa45afbed50 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 5 Aug 2025 07:33:10 -0500 Subject: [PATCH 152/187] new theme --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7ddeb37..4de7d38 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Mix", + "workbench.colorTheme": "Tokyo Night", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Mix", - "workbench.preferredLightColorTheme": "One Dark Pro Mix", + "workbench.preferredDarkColorTheme": "Tokyo Night", + "workbench.preferredLightColorTheme": "Tokyo Night", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Mix", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Mix", + "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", + "workbench.preferredHighContrastColorTheme": "Tokyo Night", "workbench.activityBar.location": "default", "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", From d9568fed28387f317053e045328285cf57bab27a Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 9 Aug 2025 08:31:35 -0500 Subject: [PATCH 153/187] change something configs --- .vscode/settings.json | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4de7d38..c5f63cb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "JetBrainsMono Nerd Font", + "editor.fontFamily": "Fira Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Tokyo Night", + "workbench.colorTheme": "Moonlight II", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Tokyo Night", - "workbench.preferredLightColorTheme": "Tokyo Night", + "workbench.preferredDarkColorTheme": "Moonlight II", + "workbench.preferredLightColorTheme": "Moonlight II", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -182,7 +182,7 @@ "editor.formatOnSave": true, "prettier.useTabs": false, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.hover.enabled": false, + "editor.hover.enabled": true, "[python]": { "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, @@ -212,10 +212,9 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Tokyo Night", - "workbench.preferredHighContrastColorTheme": "Tokyo Night", + "workbench.preferredHighContrastLightColorTheme": "Moonlight II", + "workbench.preferredHighContrastColorTheme": "Moonlight II", "workbench.activityBar.location": "default", - "workbench.iconTheme": "symbols", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, "breadcrumbs.icons": false, @@ -287,7 +286,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true, + "*": false, }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", @@ -337,4 +336,8 @@ "terminal.integrated.sendKeybindingsToShell": true, "glassit.alpha": 220, "oneDarkPro.vivid": true, + "database-client.autoSync": true, + "supermaven.enableFixWithSupermaven": true, + "diffEditor.codeLens": true, + "workbench.iconTheme": "symbols", } From a03e0ca59439a8b3211318e00a8e2698085dac67 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 9 Aug 2025 16:40:51 -0500 Subject: [PATCH 154/187] changes on theme and font size --- .vscode/settings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c5f63cb..6a89e0f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Fira Code", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Moonlight II", + "workbench.colorTheme": "SynthWave '84", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Moonlight II", - "workbench.preferredLightColorTheme": "Moonlight II", + "workbench.preferredDarkColorTheme": "SynthWave '84", + "workbench.preferredLightColorTheme": "SynthWave '84", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.3, - "editor.fontSize": 14, + "editor.fontSize": 13.7, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Moonlight II", - "workbench.preferredHighContrastColorTheme": "Moonlight II", + "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", + "workbench.preferredHighContrastColorTheme": "SynthWave '84", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -286,7 +286,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": false, + "*": true, }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", From dafa7d6c33eee77926e261e6304d1b86fcfcc4c8 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 9 Aug 2025 21:15:29 -0500 Subject: [PATCH 155/187] new settings on the editor --- .vscode/settings.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6a89e0f..7158b64 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Fira Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SynthWave '84", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SynthWave '84", - "workbench.preferredLightColorTheme": "SynthWave '84", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.3, - "editor.fontSize": 13.7, + "window.zoomLevel": 2, + "editor.fontSize": 12.6, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -200,9 +200,9 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "smooth", + "editor.cursorBlinking": "solid", "editor.smoothScrolling": true, - "editor.cursorStyle": "line", + "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -212,12 +212,12 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", - "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, - "breadcrumbs.icons": false, + "breadcrumbs.icons": true, "breadcrumbs.showArrays": false, "breadcrumbs.showBooleans": false, "breadcrumbs.showClasses": false, From df524a983d491e00d46f8c60691d1467d276b8b1 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 10 Aug 2025 11:53:29 -0500 Subject: [PATCH 156/187] changes on the editor. --- .vscode/settings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7158b64..06a88c6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 2, - "editor.fontSize": 12.6, + "window.zoomLevel": 1.7, + "editor.fontSize": 12.99, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -200,7 +200,7 @@ "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.defaultFormatter": "redhat.java" }, - "editor.cursorBlinking": "solid", + "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, "editor.cursorStyle": "block", "editor.find.cursorMoveOnType": false, From d2cdfb025b74834089522c6ed89edb384f858042 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 10 Aug 2025 16:15:50 -0500 Subject: [PATCH 157/187] new settings --- .vscode/settings.json | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 06a88c6..33dda00 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Moonlight II", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Moonlight II", + "workbench.preferredLightColorTheme": "Moonlight II", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -173,11 +173,11 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.7, + "window.zoomLevel": 1.4, "editor.fontSize": 12.99, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", - "editor.fontLigatures": false, + "editor.fontLigatures": true, "editor.formatOnPaste": true, "editor.formatOnSave": true, "prettier.useTabs": false, @@ -202,7 +202,7 @@ }, "editor.cursorBlinking": "blink", "editor.smoothScrolling": true, - "editor.cursorStyle": "block", + "editor.cursorStyle": "line", "editor.find.cursorMoveOnType": false, "emmet.syntaxProfiles": { "html": { @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Moonlight II", + "workbench.preferredHighContrastColorTheme": "Moonlight II", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -340,4 +340,5 @@ "supermaven.enableFixWithSupermaven": true, "diffEditor.codeLens": true, "workbench.iconTheme": "symbols", + "geminicodeassist.updateChannel": "Insiders" } From 384f71645f143f29d11cae8cd645fa9d448e68b3 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 10 Aug 2025 16:47:39 -0500 Subject: [PATCH 158/187] new font family --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 33dda00..359d873 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Fira Code", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From 1389b3fd858bed8059ec24f276083c61f6ccdbba Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 10 Aug 2025 16:57:23 -0500 Subject: [PATCH 159/187] nueva tipografia --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 359d873..41a2083 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Iosevka Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", From f1ac9fecaabb21f33e399b9031d2238c60a0c979 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 10 Aug 2025 20:14:14 -0500 Subject: [PATCH 160/187] add new settings on the editor --- .vscode/settings.json | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 41a2083..fb8afc1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Moonlight II", + "workbench.colorTheme": "Ayu Mirage Bordered", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Moonlight II", - "workbench.preferredLightColorTheme": "Moonlight II", + "workbench.preferredDarkColorTheme": "Ayu Mirage Bordered", + "workbench.preferredLightColorTheme": "Ayu Mirage Bordered", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 12.99, + "editor.fontSize": 16, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Moonlight II", - "workbench.preferredHighContrastColorTheme": "Moonlight II", + "workbench.preferredHighContrastLightColorTheme": "Ayu Mirage Bordered", + "workbench.preferredHighContrastColorTheme": "Ayu Mirage Bordered", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -340,5 +340,13 @@ "supermaven.enableFixWithSupermaven": true, "diffEditor.codeLens": true, "workbench.iconTheme": "symbols", - "geminicodeassist.updateChannel": "Insiders" + "geminicodeassist.updateChannel": "Insiders", + "github.copilot.enable": { + "*": true, + "plaintext": false, + "markdown": false, + "scminput": false, + "typescriptreact": false + }, + "editor.lineHeight": 26 } From 255942ca39af49d2b179b39773b69f7ef132c631 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 11 Aug 2025 07:44:17 -0500 Subject: [PATCH 161/187] deleting editor line height to .vscode --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fb8afc1..f0178a6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -348,5 +348,4 @@ "scminput": false, "typescriptreact": false }, - "editor.lineHeight": 26 } From d4a3ab2ffb0ce1d9a6ff86f75e8be70aee42a1ed Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 11 Aug 2025 13:05:05 -0500 Subject: [PATCH 162/187] change font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f0178a6..7460212 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 16, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From 915e8f5392f677a9b095d13903b8a5e39ea6733a Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 11 Aug 2025 22:10:40 -0500 Subject: [PATCH 163/187] settings quick suggestion on the editor --- .vscode/settings.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7460212..be1cad3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,7 +24,7 @@ "editor.find.addExtraSpaceOnTop": false, "editor.inlineSuggest.enabled": true, "editor.multiCursorModifier": "ctrlCmd", - "editor.suggestSelection": "recentlyUsedByPrefix", + "editor.suggestSelection": "first", "editor.tabSize": 2, "editor.unicodeHighlight.invisibleCharacters": false, "editor.stickyScroll.enabled": false, @@ -250,14 +250,14 @@ "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": false, + "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "comments": false, - "strings": false, - "other": true + "strings": true, + "other": false }, "editor.parameterHints.enabled": false, - "editor.glyphMargin": true, + "editor.glyphMargin": false, "editor.showFoldingControls": "mouseover", "editor.matchBrackets": "never", "template-string-converter.enabled": true, @@ -329,10 +329,9 @@ "editor.suggest.showIcons": true, "editor.suggest.showSnippets": true, "debug.showInStatusBar": "never", - "github.copilot.nextEditSuggestions.enabled": true, + "github.copilot.nextEditSuggestions.enabled": false, "oneDarkPro.italic": true, "oneDarkPro.bold": true, - "editor.quickSuggestionsDelay": 130, "terminal.integrated.sendKeybindingsToShell": true, "glassit.alpha": 220, "oneDarkPro.vivid": true, From fe2ba14fa3cd6b33a3d6f404f6aa9e21bfed3324 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 12 Aug 2025 15:25:03 -0500 Subject: [PATCH 164/187] material theme ocean --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index be1cad3..b6e1980 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Ayu Mirage Bordered", + "workbench.colorTheme": "Material Theme Ocean High Contrast", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Ayu Mirage Bordered", - "workbench.preferredLightColorTheme": "Ayu Mirage Bordered", + "workbench.preferredDarkColorTheme": "Material Theme Ocean High Contrast", + "workbench.preferredLightColorTheme": "Material Theme Ocean High Contrast", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 15, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Ayu Mirage Bordered", - "workbench.preferredHighContrastColorTheme": "Ayu Mirage Bordered", + "workbench.preferredHighContrastLightColorTheme": "Material Theme Ocean High Contrast", + "workbench.preferredHighContrastColorTheme": "Material Theme Ocean High Contrast", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From e2ab28cb018b9b8001adf27febdd54b9bbccddd2 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 12 Aug 2025 17:45:09 -0500 Subject: [PATCH 165/187] add new theme one dark pro --- .vscode/settings.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b6e1980..9425b6e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Material Theme Ocean High Contrast", + "workbench.colorTheme": "One Dark Pro Night Flat", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Material Theme Ocean High Contrast", - "workbench.preferredLightColorTheme": "Material Theme Ocean High Contrast", + "workbench.preferredDarkColorTheme": "One Dark Pro Night Flat", + "workbench.preferredLightColorTheme": "One Dark Pro Night Flat", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Material Theme Ocean High Contrast", - "workbench.preferredHighContrastColorTheme": "Material Theme Ocean High Contrast", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Night Flat", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Night Flat", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -338,13 +338,14 @@ "database-client.autoSync": true, "supermaven.enableFixWithSupermaven": true, "diffEditor.codeLens": true, - "workbench.iconTheme": "symbols", + "workbench.iconTheme": "material-icon-theme", "geminicodeassist.updateChannel": "Insiders", "github.copilot.enable": { "*": true, "plaintext": false, "markdown": false, "scminput": false, - "typescriptreact": false + "typescriptreact": false, + "javascript": false }, } From 8bdb1d7d3e171c24cd6c3d1bbfa235a4f44758f2 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Wed, 13 Aug 2025 08:18:33 -0500 Subject: [PATCH 166/187] add new font family --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9425b6e..5addcb4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Iosevka Nerd Font", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.4, - "editor.fontSize": 14, + "window.zoomLevel": 1.3, + "editor.fontSize": 13, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From 65af404f1be07a3944f9361f0f1428473525e3aa Mon Sep 17 00:00:00 2001 From: Jefferson Date: Wed, 13 Aug 2025 09:14:55 -0500 Subject: [PATCH 167/187] one dark pro darker --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5addcb4..a8ee30a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Night Flat", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Night Flat", - "workbench.preferredLightColorTheme": "One Dark Pro Night Flat", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.3, - "editor.fontSize": 13, + "editor.fontSize": 13.1, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Night Flat", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Night Flat", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 80b1cf1ac4c54661aac542c9e68269e85e106bd1 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Wed, 13 Aug 2025 14:53:33 -0500 Subject: [PATCH 168/187] quick suggestion on false --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a8ee30a..0fd7b5a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -253,7 +253,7 @@ "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "comments": false, - "strings": true, + "strings": false, "other": false }, "editor.parameterHints.enabled": false, From bf9ffc3f0bb2e705ea8f50b5ad1b74332f2ccfef Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 14 Aug 2025 14:59:42 -0500 Subject: [PATCH 169/187] add theme dracula oficial --- .vscode/settings.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0fd7b5a..81087fa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,18 +6,18 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "Dracula Theme Soft", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "Dracula Theme Soft", + "workbench.preferredLightColorTheme": "Dracula Theme Soft", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, - // ========== Editor ========== + // ========== Editor ========== "debug.onTaskErrors": "debugAnyway", "diffEditor.ignoreTrimWhitespace": false, "editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", @@ -79,12 +79,12 @@ "**/temp": true, "**/yarn.lock": true, "**/CHANGELOG*": true, - "**/LICENSE*": true, + "**/LICENSE*": true }, "window.nativeTabs": true, // this is great, macOS only "window.title": "${rootName}", // this make tabs more readable "extensions.autoUpdate": "false", - // ========== Extension configs ========== + // ========== Extension configs ========== "emmet.showSuggestionsAsSnippets": true, "emmet.triggerExpansionOnTab": false, "errorLens.enabledDiagnosticLevels": [ @@ -187,7 +187,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.autopep8", + "editor.defaultFormatter": "ms-python.autopep8" }, "autopep8.args": [ "--max-line-length", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "Dracula Theme Soft", + "workbench.preferredHighContrastColorTheme": "Dracula Theme Soft", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -253,8 +253,8 @@ "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "comments": false, - "strings": false, - "other": false + "strings": true, + "other": true }, "editor.parameterHints.enabled": false, "editor.glyphMargin": false, @@ -286,7 +286,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true, + "*": true }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", @@ -346,6 +346,6 @@ "markdown": false, "scminput": false, "typescriptreact": false, - "javascript": false - }, + "javascript": true + } } From 8d178c5b71a4cab14082c401894d4cfcab868f41 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 14 Aug 2025 17:09:19 -0500 Subject: [PATCH 170/187] news settings on the editor --- .vscode/settings.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 81087fa..c4d0ee4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,18 +6,18 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Dracula Theme Soft", + "workbench.colorTheme": "Night Owl (No Italics)", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Dracula Theme Soft", - "workbench.preferredLightColorTheme": "Dracula Theme Soft", + "workbench.preferredDarkColorTheme": "Night Owl (No Italics)", + "workbench.preferredLightColorTheme": "Night Owl (No Italics)", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, - // ========== Editor ========== + // ========== Editor ========== "debug.onTaskErrors": "debugAnyway", "diffEditor.ignoreTrimWhitespace": false, "editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", @@ -79,12 +79,12 @@ "**/temp": true, "**/yarn.lock": true, "**/CHANGELOG*": true, - "**/LICENSE*": true + "**/LICENSE*": true, }, "window.nativeTabs": true, // this is great, macOS only "window.title": "${rootName}", // this make tabs more readable "extensions.autoUpdate": "false", - // ========== Extension configs ========== + // ========== Extension configs ========== "emmet.showSuggestionsAsSnippets": true, "emmet.triggerExpansionOnTab": false, "errorLens.enabledDiagnosticLevels": [ @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.3, - "editor.fontSize": 13.1, + "window.zoomLevel": 1, + "editor.fontSize": 13.80, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -187,7 +187,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.autopep8" + "editor.defaultFormatter": "ms-python.autopep8", }, "autopep8.args": [ "--max-line-length", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Dracula Theme Soft", - "workbench.preferredHighContrastColorTheme": "Dracula Theme Soft", + "workbench.preferredHighContrastLightColorTheme": "Night Owl (No Italics)", + "workbench.preferredHighContrastColorTheme": "Night Owl (No Italics)", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -253,7 +253,7 @@ "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "comments": false, - "strings": true, + "strings": false, "other": true }, "editor.parameterHints.enabled": false, @@ -286,7 +286,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true + "*": true, }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", @@ -347,5 +347,5 @@ "scminput": false, "typescriptreact": false, "javascript": true - } + }, } From 38daa5525b8b580c1561f460756ce3ead37271f9 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 14 Aug 2025 18:35:56 -0500 Subject: [PATCH 171/187] more themes --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c4d0ee4..31be2fe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "CaskaydiaCove Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Night Owl (No Italics)", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Night Owl (No Italics)", - "workbench.preferredLightColorTheme": "Night Owl (No Italics)", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Night Owl (No Italics)", - "workbench.preferredHighContrastColorTheme": "Night Owl (No Italics)", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 8c5db538cb86456143ea108b217a7e27514f80b8 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 14 Aug 2025 20:38:07 -0500 Subject: [PATCH 172/187] fira code nerd font --- .vscode/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 31be2fe..ef95a3c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "CaskaydiaCove Nerd Font", + "editor.fontFamily": "FiraCode Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "One Dark Pro Darker", "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "left", + "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1, - "editor.fontSize": 13.80, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From dc21e83679d2f50ad9b1bd6d081a03fc3dd24b72 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Thu, 14 Aug 2025 21:36:38 -0500 Subject: [PATCH 173/187] font victor mono --- .vscode/settings.json | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ef95a3c..e830a2f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,23 +1,23 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "FiraCode Nerd Font", + "editor.fontFamily": "VictorMono Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "GitHub Dark", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "GitHub Dark", + "workbench.preferredLightColorTheme": "GitHub Dark", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, - // ========== Editor ========== + // ========== Editor ========== "debug.onTaskErrors": "debugAnyway", "diffEditor.ignoreTrimWhitespace": false, "editor.wordSeparators": "`~!@#%^&*()=+[{]}\\|;:'\",.<>/?", @@ -79,12 +79,12 @@ "**/temp": true, "**/yarn.lock": true, "**/CHANGELOG*": true, - "**/LICENSE*": true, + "**/LICENSE*": true }, "window.nativeTabs": true, // this is great, macOS only "window.title": "${rootName}", // this make tabs more readable "extensions.autoUpdate": "false", - // ========== Extension configs ========== + // ========== Extension configs ========== "emmet.showSuggestionsAsSnippets": true, "emmet.triggerExpansionOnTab": false, "errorLens.enabledDiagnosticLevels": [ @@ -173,8 +173,9 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1, + "window.zoomLevel": 1.15, "editor.fontSize": 14, + "editor.fontWeight": "600", "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -187,7 +188,7 @@ "diffEditor.ignoreTrimWhitespace": false, "editor.formatOnType": true, "editor.wordBasedSuggestions": "off", - "editor.defaultFormatter": "ms-python.autopep8", + "editor.defaultFormatter": "ms-python.autopep8" }, "autopep8.args": [ "--max-line-length", @@ -212,8 +213,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "GitHub Dark", + "workbench.preferredHighContrastColorTheme": "GitHub Dark", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -286,7 +287,7 @@ "github.copilot.selectedCompletionModel": "gpt-4o-copilot", "security.workspace.trust.untrustedFiles": "open", "supermaven.enable": { - "*": true, + "*": true }, "telemetry.enabledTelemetry": false, "telemetry.telemetryLevel": "off", @@ -341,7 +342,7 @@ "workbench.iconTheme": "material-icon-theme", "geminicodeassist.updateChannel": "Insiders", "github.copilot.enable": { - "*": true, + "*": false, "plaintext": false, "markdown": false, "scminput": false, From 895a623d27f4f21b4d6edc1eaed2c9c88a92e334 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Fri, 15 Aug 2025 19:53:13 -0500 Subject: [PATCH 174/187] delete font weight --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e830a2f..46b986e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -175,7 +175,6 @@ "editor.minimap.enabled": false, "window.zoomLevel": 1.15, "editor.fontSize": 14, - "editor.fontWeight": "600", "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From 639ea83bebedb4ef09e20e2c7807164e2fbd4303 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 16 Aug 2025 08:02:09 -0500 Subject: [PATCH 175/187] more settings --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 46b986e..b4d2eb8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "VictorMono Nerd Font", + "editor.fontFamily": "Cascadia Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "GitHub Dark", + "workbench.colorTheme": "One Dark Pro Flat", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "GitHub Dark", - "workbench.preferredLightColorTheme": "GitHub Dark", + "workbench.preferredDarkColorTheme": "One Dark Pro Flat", + "workbench.preferredLightColorTheme": "One Dark Pro Flat", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "GitHub Dark", - "workbench.preferredHighContrastColorTheme": "GitHub Dark", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Flat", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Flat", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 25929f973b0d984ff50a65a97e2e4072c562741e Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sat, 16 Aug 2025 21:14:44 -0500 Subject: [PATCH 176/187] add theme andromeda italic --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b4d2eb8..4f12e71 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Flat", + "workbench.colorTheme": "Andromeda Italic", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Flat", - "workbench.preferredLightColorTheme": "One Dark Pro Flat", + "workbench.preferredDarkColorTheme": "Andromeda Italic", + "workbench.preferredLightColorTheme": "Andromeda Italic", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 1.15, - "editor.fontSize": 14, + "window.zoomLevel": 2, + "editor.fontSize": 12.23, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Flat", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Flat", + "workbench.preferredHighContrastLightColorTheme": "Andromeda Italic", + "workbench.preferredHighContrastColorTheme": "Andromeda Italic", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 129fc3fe2787877525c5d4bf8d2177b08b21863a Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 17 Aug 2025 15:57:11 -0500 Subject: [PATCH 177/187] new font size --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4f12e71..731ed7c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 12.23, + "editor.fontSize": 11.25, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From c9f3bba2c372bfa504df807510c8bbb9a2a816b6 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 17 Aug 2025 16:14:02 -0500 Subject: [PATCH 178/187] new font size in 12.10 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 731ed7c..cd6fb5c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 11.25, + "editor.fontSize": 12.10, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, From 1b5199247118f9e744936e4e49f35a1b2fb89d63 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Sun, 17 Aug 2025 17:34:30 -0500 Subject: [PATCH 179/187] one dark --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cd6fb5c..1195dde 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Andromeda Italic", + "workbench.colorTheme": "One Dark Pro Darker", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Andromeda Italic", - "workbench.preferredLightColorTheme": "Andromeda Italic", + "workbench.preferredDarkColorTheme": "One Dark Pro Darker", + "workbench.preferredLightColorTheme": "One Dark Pro Darker", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Andromeda Italic", - "workbench.preferredHighContrastColorTheme": "Andromeda Italic", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 95fbdcba60e8c451bd54f62adc607748826a9aab Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 18 Aug 2025 20:59:29 -0500 Subject: [PATCH 180/187] new settings delay suggest --- .vscode/settings.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1195dde..698e3ea 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -246,11 +246,11 @@ "explorer.compactFolders": false, "explorer.openEditors.visible": 1, "explorer.sortOrder": "type", - "workbench.statusBar.visible": true, + "workbench.statusBar.visible": false, "terminal.integrated.gpuAcceleration": "on", "editor.autoIndent": "full", "editor.folding": true, - "editor.suggestOnTriggerCharacters": true, + "editor.suggestOnTriggerCharacters": false, "editor.quickSuggestions": { "comments": false, "strings": false, @@ -346,6 +346,8 @@ "markdown": false, "scminput": false, "typescriptreact": false, - "javascript": true + "javascript": true, + "javascriptreact": false }, + "editor.quickSuggestionsDelay": 300, } From 6735543370be725813c904e58d797cdb062ecde0 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Mon, 18 Aug 2025 22:31:12 -0500 Subject: [PATCH 181/187] add new theme synthwave 84 --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 698e3ea..bb93591 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro Darker", + "workbench.colorTheme": "SynthWave '84", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro Darker", - "workbench.preferredLightColorTheme": "One Dark Pro Darker", + "workbench.preferredDarkColorTheme": "SynthWave '84", + "workbench.preferredLightColorTheme": "SynthWave '84", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 2, - "editor.fontSize": 12.10, + "editor.fontSize": 12.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro Darker", - "workbench.preferredHighContrastColorTheme": "One Dark Pro Darker", + "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", + "workbench.preferredHighContrastColorTheme": "SynthWave '84", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 047c7240a683d9a9844a86f6abba9b67c2015ab5 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 11:30:47 -0500 Subject: [PATCH 182/187] second setting --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bb93591..d4cd682 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "SynthWave '84", + "workbench.colorTheme": "One Dark Pro", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "SynthWave '84", - "workbench.preferredLightColorTheme": "SynthWave '84", + "workbench.preferredDarkColorTheme": "One Dark Pro", + "workbench.preferredLightColorTheme": "One Dark Pro", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -173,8 +173,8 @@ "explorer.fileNesting.enabled": true, "files.autoSave": "afterDelay", "editor.minimap.enabled": false, - "window.zoomLevel": 2, - "editor.fontSize": 12.5, + "window.zoomLevel": 1.4, + "editor.fontSize": 13.2, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "SynthWave '84", - "workbench.preferredHighContrastColorTheme": "SynthWave '84", + "workbench.preferredHighContrastLightColorTheme": "One Dark Pro", + "workbench.preferredHighContrastColorTheme": "One Dark Pro", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 12ec898f1858f847a68bd1140528e6136cff0a13 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 14:04:44 -0500 Subject: [PATCH 183/187] aura dark theme --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d4cd682..20ad589 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Cascadia Code", + "editor.fontFamily": "Iosevka Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "One Dark Pro", + "workbench.colorTheme": "Aura Dark", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "One Dark Pro", - "workbench.preferredLightColorTheme": "One Dark Pro", + "workbench.preferredDarkColorTheme": "Aura Dark", + "workbench.preferredLightColorTheme": "Aura Dark", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "right", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13.2, + "editor.fontSize": 13.5, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": true, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "One Dark Pro", - "workbench.preferredHighContrastColorTheme": "One Dark Pro", + "workbench.preferredHighContrastLightColorTheme": "Aura Dark", + "workbench.preferredHighContrastColorTheme": "Aura Dark", "workbench.activityBar.location": "default", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 7824be5d8979aad4c69e8e77a55f390c2b279be4 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 15:44:52 -0500 Subject: [PATCH 184/187] new font family --- .vscode/settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 20ad589..a2090a9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Iosevka Nerd Font", + "editor.fontFamily": "Fira Code", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -13,7 +13,7 @@ "workbench.preferredDarkColorTheme": "Aura Dark", "workbench.preferredLightColorTheme": "Aura Dark", "workbench.productIconTheme": "fluent-icons", - "workbench.sideBar.location": "right", + "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", "workbench.tree.expandMode": "singleClick", "workbench.tree.indent": 4, From fdc9b21ad894e079d51b9f37c44dd8f87eba3ab9 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 19:39:09 -0500 Subject: [PATCH 185/187] activity bar location --- .vscode/settings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a2090a9..b2924a1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Fira Code", + "editor.fontFamily": "Iosevka Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", @@ -174,10 +174,10 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 13.5, + "editor.fontSize": 15, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", - "editor.fontLigatures": true, + "editor.fontLigatures": false, "editor.formatOnPaste": true, "editor.formatOnSave": true, "prettier.useTabs": false, @@ -214,7 +214,7 @@ "editor.guides.indentation": true, "workbench.preferredHighContrastLightColorTheme": "Aura Dark", "workbench.preferredHighContrastColorTheme": "Aura Dark", - "workbench.activityBar.location": "default", + "workbench.activityBar.location": "top", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, "breadcrumbs.icons": true, From 450da2350fbf5b1caa48d79cf5d5091f72babbc1 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 22:02:27 -0500 Subject: [PATCH 186/187] moonlight II --- .vscode/settings.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b2924a1..17ada25 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,17 @@ { // ========== Visuals ========== "editor.cursorSmoothCaretAnimation": "on", - "editor.fontFamily": "Iosevka Nerd Font", + "editor.fontFamily": "CaskaydiaCove Nerd Font", "editor.guides.bracketPairs": "active", "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Aura Dark", + "workbench.colorTheme": "Moonlight II", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Aura Dark", - "workbench.preferredLightColorTheme": "Aura Dark", + "workbench.preferredDarkColorTheme": "Moonlight II", + "workbench.preferredLightColorTheme": "Moonlight II", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -174,7 +174,7 @@ "files.autoSave": "afterDelay", "editor.minimap.enabled": false, "window.zoomLevel": 1.4, - "editor.fontSize": 15, + "editor.fontSize": 14, "terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font Mono", "editor.wordWrap": "bounded", "editor.fontLigatures": false, @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Aura Dark", - "workbench.preferredHighContrastColorTheme": "Aura Dark", + "workbench.preferredHighContrastLightColorTheme": "Moonlight II", + "workbench.preferredHighContrastColorTheme": "Moonlight II", "workbench.activityBar.location": "top", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, From 64de1714ac06ad3adfae23c81adb634b39476999 Mon Sep 17 00:00:00 2001 From: Jefferson Date: Tue, 19 Aug 2025 23:35:05 -0500 Subject: [PATCH 187/187] new icontheme --- .vscode/settings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 17ada25..930febe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,12 +6,12 @@ "editor.lineNumbers": "on", "editor.renderWhitespace": "none", "window.autoDetectColorScheme": false, - "workbench.colorTheme": "Moonlight II", + "workbench.colorTheme": "GitHub Dark", "workbench.editor.tabActionLocation": "left", "workbench.fontAliasing": "antialiased", "workbench.list.smoothScrolling": true, - "workbench.preferredDarkColorTheme": "Moonlight II", - "workbench.preferredLightColorTheme": "Moonlight II", + "workbench.preferredDarkColorTheme": "GitHub Dark", + "workbench.preferredLightColorTheme": "GitHub Dark", "workbench.productIconTheme": "fluent-icons", "workbench.sideBar.location": "left", "workbench.startupEditor": "newUntitledFile", @@ -212,8 +212,8 @@ "liveServer.settings.donotShowInfoMsg": true, "editor.snippetSuggestions": "top", "editor.guides.indentation": true, - "workbench.preferredHighContrastLightColorTheme": "Moonlight II", - "workbench.preferredHighContrastColorTheme": "Moonlight II", + "workbench.preferredHighContrastLightColorTheme": "GitHub Dark", + "workbench.preferredHighContrastColorTheme": "GitHub Dark", "workbench.activityBar.location": "top", "workbench.tree.renderIndentGuides": "none", "breadcrumbs.enabled": false, @@ -338,7 +338,7 @@ "database-client.autoSync": true, "supermaven.enableFixWithSupermaven": true, "diffEditor.codeLens": true, - "workbench.iconTheme": "material-icon-theme", + "workbench.iconTheme": "vscode-icons", "geminicodeassist.updateChannel": "Insiders", "github.copilot.enable": { "*": false,