Spaces:
Running
Running
# /// script | |
# requires-python = ">=3.10" | |
# dependencies = [ | |
# "marimo", | |
# ] | |
# /// | |
import marimo | |
__generated_with = "0.10.12" | |
app = marimo.App(width="columns") | |
def _(): | |
import marimo as mo | |
return (mo,) | |
def _(mo): | |
mo.md( | |
""" | |
# 🐍 Python Strings: Your First Data Type | |
Welcome to your first Python lesson! Today, we'll explore strings - one of Python's fundamental data types. | |
## What are Strings? | |
Strings are sequences of characters - like words, sentences, or any text. In Python, we create strings by | |
enclosing text in either single (`'`) or double (`"`) quotes. | |
```python | |
greeting = "Hello, Python!" | |
name = 'Alice' | |
``` | |
""" | |
) | |
return | |
def _(input_text): | |
input_text | |
return | |
def _(mo): | |
input_text = mo.ui.text( | |
value="Hello, World!", | |
placeholder="Type any text here...", | |
label="Create your first string" | |
) | |
return (input_text,) | |
def _(input_text, mo): | |
mo.md(f""" | |
### Your String Analysis | |
Let's analyze the string you created: | |
- Your string: `"{input_text.value}"` | |
- Length: `{len(input_text.value)}` | |
- First character: `'{input_text.value[0] if input_text.value else ''}'` | |
- Last character: `'{input_text.value[-1] if input_text.value else ''}'` | |
""") | |
return | |
def _(operation): | |
operation | |
return | |
def _(input_text, mo, operation, result): | |
mo.md(f""" | |
### String Operation Result | |
Original: `{input_text.value}` | |
Result: `{result}` | |
Python code representation: | |
```python | |
text = "{input_text.value}" | |
result = text.{operation.selected_key}() | |
print(result) # {result} | |
``` | |
""") | |
return | |
def _(mo): | |
operation = mo.ui.dropdown( | |
options={ | |
"upper": "Convert to UPPERCASE", | |
"lower": "Convert to lowercase", | |
"title": "Convert To Title Case", | |
"strip": "Remove extra spaces" | |
}, | |
value="upper", | |
label="Choose a string operation" | |
) | |
return (operation,) | |
def _(input_text, operation): | |
operations = { | |
"Convert to UPPERCASE": input_text.value.upper(), | |
"Convert to lowercase": input_text.value.lower(), | |
"Convert To Title Case": input_text.value.title(), | |
"Remove extra spaces": input_text.value.strip() | |
} | |
result = operations[operation.value] | |
return operations, result | |
def _(mo): | |
slice_text = mo.ui.text( | |
value="Python", | |
placeholder="Enter text to slice", | |
label="Text for slicing" | |
) | |
start_idx = mo.ui.number( | |
value=0, | |
start=0, | |
stop=10, | |
label="Start Index" | |
) | |
end_idx = mo.ui.number( | |
value=3, | |
start=0, | |
stop=10, | |
label="End Index" | |
) | |
return end_idx, slice_text, start_idx | |
def _(end_idx, slice_text, start_idx): | |
slice_text, start_idx, end_idx | |
return | |
def _(end_idx, mo, slice_text, start_idx): | |
sliced = slice_text.value[start_idx.value:end_idx.value] | |
mo.md(f""" | |
### String Slicing | |
Text: `{slice_text.value}` | |
Slice `[{start_idx.value}:{end_idx.value}]`: `{sliced}` | |
```python | |
text = "{slice_text.value}" | |
slice = text[{start_idx.value}:{end_idx.value}] | |
print(slice) # {sliced} | |
``` | |
""") | |
return (sliced,) | |
if __name__ == "__main__": | |
app.run() | |