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

Reply via email to