On Thu, Dec 12, 2019 at 04:17:58PM +0530, Siddharth Prajosh wrote:

> Python slicing looks really weird.

I disagree that it looks weird. I think it looks beautiful.


> How do I explain *s=list(range(100));
> s[10:20]  *gives you a part of the list.

The same way that you explain that the ^ operator does bitwise-XOR, that 
the ** operator does exponentiation, that 0x10FF is an integer in 
hexadecimal and that -23.84e15 is a float: you describe the syntax and 
describe what it does.

Slicing syntax is one of the oldest, most fundamental parts of Python. 
We're not going to change it. If you need to read Python code, you need 
to be able to read slicing notation.


> Can we have an extra function for lists and string (and wherever slicing
> works) to explicitly mention that we're slicing?? 

Slicing syntax already *explicitly* tells us that we're slicing, just as 
function call syntax explicitly tells us that we're calling a function, 
and the `+` operator explicitly tells us that we're performing addition 
(or concatenation).

We don't need a .slice() method for the same reason we don't need every 
class to define a .equals() method. Syntax does the job fine.

If you can read function call notation:

    something(a,b)

you should be able to read slicing notation:

    something[a:b]


P.S. "explicit" doesn't necessary mean "spelled out in English words", 
or "syntax that I like". Symbols can be explicit too. Syntax is explicit.

-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/WRZLZRMPYSQYWEYE6ITEXPB3PTXB7ON5/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to