I just recently started programming on my own and I picked up python for my first programming language. I just finished my first pdf140~ pages and started second one. I know the "basics" of python. Now after that i've written some programs (text based only) also i've found two webpages for problems http://projecteuler.net and http://www.pythonchallenge.com/ so I have alot of learning and programming to do if i choose so but also i'm wondering how useful python is and when should I pick another language? I'm not trying to become a professional programmer/developer but i would like to keep that open aswell if I stick to my new hobby also i'm wondering the differences of python 2.x and python 3.x. I naturally picked up the newest version of python and started learning it but now i have a problem already. I can't find library for image manipulation for python 3. useful info about python 2 and 3 for beginner would be also appreciated.
The Big Programming Thread - Page 66
Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
loiop
34 Posts
I just recently started programming on my own and I picked up python for my first programming language. I just finished my first pdf140~ pages and started second one. I know the "basics" of python. Now after that i've written some programs (text based only) also i've found two webpages for problems http://projecteuler.net and http://www.pythonchallenge.com/ so I have alot of learning and programming to do if i choose so but also i'm wondering how useful python is and when should I pick another language? I'm not trying to become a professional programmer/developer but i would like to keep that open aswell if I stick to my new hobby also i'm wondering the differences of python 2.x and python 3.x. I naturally picked up the newest version of python and started learning it but now i have a problem already. I can't find library for image manipulation for python 3. useful info about python 2 and 3 for beginner would be also appreciated. | ||
japro
172 Posts
On July 11 2011 06:22 loiop wrote: but also i'm wondering how useful python is and when should I pick another language? Being a good programmer isn't that much a question of knowing the right or many languages. If you learn a reasonable modern language (like python) and get good at that you can pick up most other languages in reasonable time. I'd say just focus on becoming a good programmer (know your way around OOP/patterns/algorithms/clean coding) and pick up other languages when the need arises. | ||
Siniyas
Germany66 Posts
On July 11 2011 06:20 AkaHenchway wrote: Yea just realized that not to long ago, here is where I am at so far, still struggling but getting there. + Show Spoiler + import java.util.Scanner; public class highscore{ public static void main(String[] args){ Scanner input = new Scanner(System.in); int i = 0; int hiscore; string hiscorename; System.out.print("How many student's are there? "); int count = input.nextInt(); for(int i = 0; i < count; i++){ System.out.println("Students name: "); string n = input.nextLine(); System.out.println(""); System.out.println("Student Score: "); int score = input.nextInt();} if (score > 0){ score = hiscore; System.out.println(n + " has the highest score with " + hiscore);} if (score > hiscore){ score = hiscore; System.out.println(n + " has the highest score with " + hiscore);} else if (hiscore > score); while (i > count); System.out.println("No students left"); This looks really messed up. Try to write code that does this. Have 4 variables. 2 Of them are the onese you get the input in. The other two are your highest score onces. Set those to a default value beforehand. Now write a for loop. In this for loop read in the students name and score. Compare it to the highscore. If its worse do nothing, if its better put the new values into it. After the for loop you have your two variables with name and highestscore. Now just make a nice text output for them. Your code right now looks like a lot of patchwork. Define all the variables you need at the top. Also } into its own row and indent every {} block if your editor doesnt. | ||
tec27
United States3690 Posts
On July 11 2011 06:20 AkaHenchway wrote: Yea just realized that not to long ago, here is where I am at so far, still struggling but getting there. + Show Spoiler +
In the future try to paste your code into pastebin or at least put it in code tags here, its a real pain to read it otherwise. Also, you need to format your code better in general, your placement of curly braces and things like that leaves a lot to be desired. I went ahead and ran your code through a beautifier to correct that stuff and put it on pastebin, this is pretty much how it should be formatted: http://pastebin.com/cVHaqWnJ Now, onto fixing your code. You need to understand variable scoping. In its simplest form, this basically means that if you declare a variable inside a set of curly braces, it only exist inside of those. As an example of a scoping problem in your code, you declare the variable score inside your for loop, then try to use it outside of the for loop. You cannot do this, because score does not exist outside of the loop (and in fact only exists for each individual iteration of the loop). Your if statements outside of the loop make no sense anyway, because they are obviously meant to check each individual score against the high score, and you only have access to each individual score during the iterations of the loop. Sit down and walk through your code by hand for each of the different cases that could happen and see if its execution actually makes sense (For instance, walk through it for the first name being entered, then walk through it for a case where a lower score was entered, then a higher score, etc.). Your code right now doesn't really make sense logically, so it shouldn't take you long to identify the problem areas. | ||
catamorphist
United States297 Posts
On July 11 2011 06:22 loiop wrote: everyone's talking about c++ c# and java and whatnot may i hear some opinions about python? I just recently started programming on my own and I picked up python for my first programming language. I just finished my first pdf140~ pages and started second one. I know the "basics" of python. Now after that i've written some programs (text based only) also i've found two webpages for problems http://projecteuler.net and http://www.pythonchallenge.com/ so I have alot of learning and programming to do if i choose so but also i'm wondering how useful python is and when should I pick another language? I'm not trying to become a professional programmer/developer but i would like to keep that open aswell if I stick to my new hobby also i'm wondering the differences of python 2.x and python 3.x. I naturally picked up the newest version of python and started learning it but now i have a problem already. I can't find library for image manipulation for python 3. useful info about python 2 and 3 for beginner would be also appreciated. If I had to name a language based on how useful it is, Python would pretty much be at the top of the list; it would definitely be above C# or Java. It's a fairly good language, it's very popular, and people use it for almost any sort of thing you can think of. I don't see any reason to bother about learning another language until you consider yourself fairly proficient with Python. It's important to learn a single language well. There's not much point in dabbling unless you are an expert in something first, because the skills and knowledge you earn en route to your expertise are the tools you need to evaluate alternatives. What do you guys think, is doing informatics (programming I guess) as a minor enough to become decent at programming or does that take a lot of additional extracurricular work? It'd be 60 ECTS points for the bachelor and another 30 for the master. Doing something in school has little correlation with becoming decent at programming. Seventy percent of people majoring in CS are incompetent at programming. The act of working on software projects with the intent to learn and do a good job is both necessary and sufficient to become decent at programming. | ||
AkaHenchway
United States41 Posts
| ||
AkaHenchway
United States41 Posts
| ||
Siniyas
Germany66 Posts
On July 11 2011 07:13 AkaHenchway wrote: and my other question was you said that in each iteration fo the loop is when the numbers exist so I should be putting my if statement within the loop? for .... { if(score>highscore) { highscore=score; } } Each iteration of the for loop you get new numbers, so you need to compare them each time. | ||
Bortlett
United States302 Posts
On July 11 2011 06:22 loiop wrote: everyone's talking about c++ c# and java and whatnot may i hear some opinions about python? I just recently started programming on my own and I picked up python for my first programming language. I just finished my first pdf140~ pages and started second one. I know the "basics" of python. Now after that i've written some programs (text based only) also i've found two webpages for problems http://projecteuler.net and http://www.pythonchallenge.com/ so I have alot of learning and programming to do if i choose so but also i'm wondering how useful python is and when should I pick another language? I'm not trying to become a professional programmer/developer but i would like to keep that open aswell if I stick to my new hobby also i'm wondering the differences of python 2.x and python 3.x. I naturally picked up the newest version of python and started learning it but now i have a problem already. I can't find library for image manipulation for python 3. useful info about python 2 and 3 for beginner would be also appreciated. It is generally good to know a dynamic language like python and a statically compiled language like C/C++. They each are used to solve every different problems and you will not be able to jump into a C++ application easily just from learning python. C/C++ requires it's own time investment. There is another family of languages called functional languages (Lisp/Scheme/F#), but they tend to be more academic in nature. Once you know one of each though you'll be able to jump around very easily. | ||
EvanED
United States111 Posts
On July 11 2011 06:22 loiop wrote: everyone's talking about c++ c# and java and whatnot may i hear some opinions about python? Python is pretty good. Python 3 is a bit better in that it makes some elements more uniform and removes some behavior that can lead to latent bugs (Python 2 is a little weakly typed IMO; e.g. 1 < 'hello' is legal in Python 2 but not in 3). The main problem, as you've discovered, is Python 2 has a very large number of libraries that haven't been ported yet. Python 2 is still probably more widely deployed too. If you feel like you know Python pretty well, or your ultimate goals don't align well with Python for some reason, you could look at something else. But it does sound like Python would be good for you. On July 11 2011 06:34 japro wrote: Being a good programmer isn't that much a question of knowing the right or many languages. If you learn a reasonable modern language (like python) and get good at that you can pick up most other languages in reasonable time. I'd say just focus on becoming a good programmer (know your way around OOP/patterns/algorithms/clean coding) and pick up other languages when the need arises. OTOH, it definitely helps to know some different styles -- dynamically-typed scripting, traditional C-like, functional, etc. | ||
catamorphist
United States297 Posts
On July 11 2011 07:34 EvanED wrote: OTOH, it definitely helps to know some different styles -- dynamically-typed scripting, traditional C-like, functional, etc. I think if you harbor a long-term interest in programming or CS, then yeah, it helps to learn different languages so that you can absorb different styles. But I absolutely don't think that someone who has spent less than a year or two programming is getting anything out of bunny-hopping around learning multiple languages, especially if we're talking about learning languages that are 75% similar, like C++, C#, and Java (and Python isn't too far off.) If you're learning a language for six months and doing one or two little projects in it, and then learning a different language, the end result is knowing 0 different styles. | ||
Kfish
Chile282 Posts
Thanks in advance | ||
EvanED
United States111 Posts
On July 11 2011 09:50 catamorphist wrote: I think if you harbor a long-term interest in programming or CS, then yeah, it helps to learn different languages so that you can absorb different styles. But I absolutely don't think that someone who has spent less than a year or two programming is getting anything out of bunny-hopping around learning multiple languages, especially if we're talking about learning languages that are 75% similar, like C++, C#, and Java (and Python isn't too far off.) If you're learning a language for six months and doing one or two little projects in it, and then learning a different language, the end result is knowing 0 different styles. I do agree with this, and apologize if anyone got the wrong idea. (E.g., that's why I recommended against C# for RedJustice, who knows some Java and wants as an ultimate goal to learn C++.) If you want to start with Python that's a very good choice for a first language IMO, but wait until you are reasonably comfortable before you move on. (At least unless some additional specific goal comes up where a different language would be a clear better choice.) That said, I do disagree with where you put Python; I think there are a lot of very important differences between it and Java/C#/C++. (Especially Java and C++.) If you asked me whether I thought Python was closer to Java or to Scheme, I'd probably eventually come around to Java, but it would be far from an easy decision. If you stick something like TinyCLOS (/SRFI 20) onto Scheme, that would probably be enough to change my answer. | ||
catamorphist
United States297 Posts
On July 11 2011 10:45 EvanED wrote: I do agree with this, and apologize if anyone got the wrong idea. (E.g., that's why I recommended against C# for RedJustice, who knows some Java and wants as an ultimate goal to learn C++.) If you want to start with Python that's a very good choice for a first language IMO, but wait until you are reasonably comfortable before you move on. (At least unless some additional specific goal comes up where a different language would be a clear better choice.) That said, I do disagree with where you put Python; I think there are a lot of very important differences between it and Java/C#/C++. (Especially Java and C++.) If you asked me whether I thought Python was closer to Java or to Scheme, I'd probably eventually come around to Java, but it would be far from an easy decision. If you stick something like TinyCLOS (/SRFI 20) onto Scheme, that would probably be enough to change my answer. Well, I don't use Python regularly so I'm not really qualified. I know that Python started out with half-assed support for a functional style (e.g. no lambdas --> crippled lambdas, no tail recursion guarantee, built-in data structures are all mutable) which has since been rectified a little bit. But I do know that there's not a big culture of functional programming in Python; most people's Python code that I've seen has been written in basically a procedural style, kind of like C or Java but with a ton of thankful amenities and sugars like list comprehensions, garbage collection and dynamic typing. Nobody's Racket code looks like that. So I suspect that someone learning Python may very well stay in C territory rather than Scheme territory, because C territory seems to be where people naturally gravitate unless they are of a mathematical bent or unless they are taught well. | ||
AndyG
United States22 Posts
To keep this post I only put up to vent semi-relevant, I'm currently an undergraduate researching an information retrieval technique called Latent Semantic Indexing (using the Singular Value Decomposition of a term-document matrix.) I've implemented the method and am having to work with my own sparse matrix types, as the term-document matrix for the main dataset I'm working with would be about 64 gigabytes if stored in a dense format! I've been working in this field for over a year, so if anybody has any questions about linear algebra on gigantic datasets, I'm all ears ^_^ | ||
EvanED
United States111 Posts
On July 11 2011 11:00 catamorphist wrote:Well, I don't use Python regularly so I'm not really qualified. I know that Python started out with half-assed support for a functional style (e.g. no lambdas --> crippled lambdas, no tail recursion guarantee, built-in data structures are all mutable) which has since been rectified a little bit. Unless it was changed in Python 3, the lambdas are still crippled. However, it has "always" (at least for a long time) supported closures and functions as first-class objects. (Even classes are first-class objects.) Those are traditionally distinctly characteristics of functional languages. Generators and list comprehensions also have a distinctly functional flavor to them as well. Tail recursion guarantees I think are overrrated. Yes, they're important, but they're not that important. (Take Clojure for instance: no tail recursion. Some of that's the JVM's fault, but some is a deliberate design decision to not support it even when they could so as to make whether or not it's actually done explicit.) And yes, the built-in data structures are all mutable, but that's true in Scheme too (before R6RS anyway). But I do know that there's not a big culture of functional programming in Python; most people's Python code that I've seen has been written in basically a procedural style, kind of like C or Java but with a ton of thankful amenities and sugars like list comprehensions, garbage collection and dynamic typing. Nobody's Racket code looks like that. This, though, is definitely true, and is the primary reason that I would side with saying it's closer to Java. But if you look at the actual language.. I dunno. On July 11 2011 11:10 AndyG wrote: Man, the computer science GRE subject test is grueling. Everything I've ever seen is popping up to study for this, plus stuff I've never seen. This isn't strictly programming, it's mostly theory with some pseudocode problems, but damn. I'm going for my Ph.D in computer science as of next fall. I think that's true of most people who take it. It would be very difficult to have a background in everything that shows up. | ||
AkaHenchway
United States41 Posts
Doing class assignment which is basically follow what book says to do (This is in microsoft access 2010 SQL)....Question is how do i Execute the query? | ||
![]()
tofucake
Hyrule18968 Posts
On July 11 2011 06:22 loiop wrote: everyone's talking about c++ c# and java and whatnot may i hear some opinions about python? I just recently started programming on my own and I picked up python for my first programming language. I just finished my first pdf140~ pages and started second one. I know the "basics" of python. Now after that i've written some programs (text based only) also i've found two webpages for problems http://projecteuler.net and http://www.pythonchallenge.com/ so I have alot of learning and programming to do if i choose so but also i'm wondering how useful python is and when should I pick another language? I'm not trying to become a professional programmer/developer but i would like to keep that open aswell if I stick to my new hobby also i'm wondering the differences of python 2.x and python 3.x. I naturally picked up the newest version of python and started learning it but now i have a problem already. I can't find library for image manipulation for python 3. useful info about python 2 and 3 for beginner would be also appreciated. I'm opposed to Python on the simple fact that I do not want tabbing to be part of the lexicon. | ||
![]()
tofucake
Hyrule18968 Posts
On July 11 2011 06:20 AkaHenchway wrote: You have an infinite loop. In addition to some other problems, many of which would be clearly evident with a more sane code style.Yea just realized that not to long ago, here is where I am at so far, still struggling but getting there. + Show Spoiler + import java.util.Scanner; public class highscore{ public static void main(String[] args){ Scanner input = new Scanner(System.in); int i = 0; int hiscore; string hiscorename; System.out.print("How many student's are there? "); int count = input.nextInt(); for(int i = 0; i < count; i++){ System.out.println("Students name: "); string n = input.nextLine(); System.out.println(""); System.out.println("Student Score: "); int score = input.nextInt();} if (score > 0){ score = hiscore; System.out.println(n + " has the highest score with " + hiscore);} if (score > hiscore){ score = hiscore; System.out.println(n + " has the highest score with " + hiscore);} else if (hiscore > score); while (i > count); System.out.println("No students left"); | ||
EvanED
United States111 Posts
On July 11 2011 12:27 tofucake wrote: I'm opposed to Python on the simple fact that I do not want tabbing to be part of the lexicon. I've come to dislike that particular choice (at least in it's specifics), but IMO disqualifying a language because of one thing that you view as a poor design choice seems really silly. I could list 10 objections to any language I've ever used that I would view as much worse offenses. To concentrate on that particular issue ignores everything they did right, which with the tool and library support that's out there for it makes Python among very few peers if you want a language for lightweight to moderate programming. It's not alone in that area, but there are not many others that I would put on par. | ||
| ||