Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #196964
| Path | csiph.com!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> |
| Newsgroups | comp.lang.python |
| Subject | Re: Two python issues |
| Date | Tue, 5 Nov 2024 22:27:53 +0100 |
| Organization | A noiseless patient Spider |
| Lines | 61 |
| Message-ID | <p7fqvk-jt4.ln1@lazy.lzy> (permalink) |
| References | <700403c2-e052-4670-b2ec-eaf9b4babada@pandora.be> <mailman.80.1730839406.4695.python-list@python.org> |
| MIME-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Tue, 05 Nov 2024 22:28:42 +0100 (CET) |
| Injection-Info | dont-email.me; posting-host="2a0534154ec88a34d27315aba77c9ccb"; logging-data="1812733"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/0QlSuaTuOtofzX8yKA580" |
| User-Agent | Mozilla Thunderbird |
| Cancel-Lock | sha1:0LVOYi4X9FqckxeyNHL/h61+rLU= |
| Content-Language | it, en-GB |
| In-Reply-To | <mailman.80.1730839406.4695.python-list@python.org> |
| Xref | csiph.com comp.lang.python:196964 |
Show key headers only | View raw
On 05/11/2024 15.48, Raymond Boute wrote:
> L.S.,
>
> Python seem to suffer from a few poor design decisions regarding strings
> and lists that affect the elegance of the language.
>
> (a) An error-prone "feature" is returning -1 if a substring is not found
> by "find", since -1 currently refers to the last item. An example:
>
> >>> s = 'qwertyuiop'
> >>> s[s.find('r')]
> 'r'
> >>> s[s.find('p')]
> 'p'
> >>> s[s.find('a')]
> 'p'
> >>>
>
> If "find" is unsuccessful, an error message is the only clean option.
> Moreover, using index -1 for the last item is a bad choice: it should be
> len(s) - 1 (no laziness!).
> Negative indices should be reserved for elements preceding the element
> with index 0 (currently not implemented, but a must for orthogonal
> design supporting general sequences).
>
> (b) When using assignment for slices, only lists with the same length as
> the slice should be acceptable, otherwise an error should be given.
> Anything that re-indexes items not covered by the slice is against the
> essential idea of assignment. For changes that imply re-indexing (e.g.,
> inserting a list longer than the slice), Python offers cleaner solutions.
>
> Comments are welcome.
To write the nested expression, s[s.find(...)] it
means you're 200% sure of what happens in case of
not found.
It could be -1 or None or [] or anything.
So, the really correct thing to do, since you know
what will happen in case of not found, is *not* to
write the nested form, but explicitly state what it
will happen.
r = s.find(...)
if r is good:
s[r]
else:
print('not found')
Which is much easier to read, to debug, etc.
To paraphrase someone: "If the length of a
program would be measured by the time needed
to understand it, some programs are too short
to be short."
bye,
--
piergiorgio
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Two python issues Raymond Boute <raymond.boute@pandora.be> - 2024-11-05 15:48 +0100
Re: Two python issues Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2024-11-05 22:27 +0100
Re: Two python issues (Posting On Python-List Prohibited) Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-11-05 21:56 +0000
csiph-web