On 2018-10-12 11:44, Rhodri James wrote:
On 12/10/18 17:12, Rob Gaddi wrote:
On 10/11/2018 11:29 PM, Kaan Taze wrote:
Hi everyone,
Since this is my first post to mail-list I'm kind of hesitant to ask
this
question here but as many of you spend years working with Python
maybe some
of you can guide me.
What I trouble with is not a logical error that exist on a program I
wrote.
It's the Python itself. Well, I'm 22 years old CS student -from
Turkey- and
what they showed us at university was C Language and Java but I
mainly use
C in school projects etc. So it's been few months that I started to use
Python for my personal side-projects. There are lots of resources to
learn
language. I do what I need to do with Python too but I was kinda
shocked
when I solve Python questions at Hackerrank. Even with list
comprehensions
you can implement in very smart way to get things done and easy.
Iterations, string operations. The codes I see on the Internet using
basics
in a very clever way which I couldn't come up with the same solution
if I
tried to for some time. I do understand this ways but coming from
ANSI C
makes it hard to see this flexibility. I probably do things in a both
inefficient and hard way in my projects.
How do I get used to this? Is this just another "practice, practice,
practice" situation? Anything you can recommend?
All the best.
Kaan.
A) Yes, it's practice practice practice.
B) Don't get hung up on finding the clever solution. Comprehensions
and generators and lots of other things are great under some
circumstances for making the code clearer and easier to read, but
they too can become the hammer that makes everything look like a
nail. The most important thing is that your code is logical, clean,
and easy to understand. If it doesn't take full advantage of the
language features, or if the performance isn't optimized to within an
inch of its life, well so be it.
I completely agree. I too have come from a background in C, and still
do most of my day job in C or assembler. It took a while before I was
writing idiomatic Python, never mind efficient Python (arguably I
still don't, but as Rob says, who cares?). Don't worry about it; at
some point you will discover that the "obvious" Python you are writing
looks a lot like the code you are looking at now and thinking "that's
really clever, I'll never be able to to that."
I suggest two things:
1. Document your work as you do it in something like Jupyter
Notebooks that were discussed in another recent thread. I use "R
Markdown Documents" in RStudio. This allows me to mix Python code with
text and code for other languages (including R, C, SQL, and others). I
tried installing Jupyter using Ananconda Navigator and failed -- under
both Windows 7 and macOS 10.14.[1] One consulting gig I had involved
spending roughly a week creating an "R Markdown Document" mixing text
with code and results analyzing a client's data, followed by months
replying to questions by asking, "Did you look at p. ___ in the R
Markdown Document I gave you" -- plus a few extensions to that
document. An article in The Atlantic last April claimed, "The
scientific research paper is obsolete" and is being replaced by Jupyter
Notebooks.[2] I'd like to see a serious comparison of "R Markdown
Documents" with "Jupyter Notebooks": The latter may be better, but I
was unable to even started with them after two days of effort.
2. Find a reasonable "Introduction to Python" on the web. Others
on this list should be able to suggest several. I just found
"https://docs.python.org/2/tutorial/introduction.html". A web search
for "an introduction to Python" identified several others. I'd also be
interested in reference(s) others might suggest for "creating python
packages".
Hope this helps.
Spencer Graves
[1] RStudio offers a free "Desktop" version, which I have used routinely
for the past three years. It's available at
"www.rstudio.com/products/rstudio/download". Creating "R Markdown
Documents" (File > "New File" > "R Markdown..." in RStudio) made a
dramatic improvement in my productivity in many ways similar to those
described by Paul Romer in
"https://paulromer.net/jupyter-mathematica-and-the-future-of-the-research-paper".
(I also experimented with File > "New File" > "R Notebook" in RStudio
and encountered bazaar errors I could not understand -- and no benefits
that I could see that would push me to spend more time trying to get
past the problems I encountered. I've used "R Markdown Documents"
extensively for three years -- with R -- and I found it easy to use with
Python once I learned I could do that. See
"https://bookdown.org/yihui/rmarkdown".
[2]
https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/
--
https://mail.python.org/mailman/listinfo/python-list