I wanted to give more details. But I basically get the same issue with Emacs -Q and the default python console. 

On Sun, 18 Dec 2022 at 11:38, Eli Zaretskii <eliz@gnu.org> wrote:
> Date: Fri, 16 Dec 2022 23:54:23 +0100
> From: pmercatoris <mercatorispierre@gmail.com>
>
> I am unable to get correct behavious when sending a region from indented code
> to the python shell. Consider this python code:
>
> ```python
> if True:
>     if True:
>         a = "test"
> ```
>
> If I select the first `True` and `python-shell-send-region`, it will
> correctly send it to the consol and print `True`.
>
> Now if I do the same thing with the second `True` it will throw an
> error: `IndentationError: expected an indented block after 'if'
> statement on line 1` Although it would also reffer to unexpected block
> after `if` even it it were `for`, `try`, ...
>
> If I select the `a` or `a = "test"` it will correctly send it to the
> console, however it won't echo the evaluation of the statement.
>
> If I select the string "test" and send, it will throw the same error as
> the second True.
>
> My python config is very minimal:
>
>   (use-package python
>     :ensure nil
>     :mode
>     ("\\.py\\'" . python-mode)
>
>     :init
>     (setq-default indent-tabs-mode nil)
>
>     :config
>     (setq python-indent-offset 4
>           python-indent-guess-indent-offset-verbose nil
>           )
>
>     (setq python-shell-interpreter "jupyter"
>           python-shell-interpreter-args "console --simple-prompt"
>           python-shell-prompt-detect-failure-warning nil)
>
>     (add-to-list 'python-shell-completion-native-disabled-interpreters
>                  "jupyter"))

Could you two please look into this?  It sounds to me like Emacs works
as expected here, but I'm not an expert on Python and our interfaces
with it.

Thanks.