Re: [Tutor] print "Hello, World!"
I'd also recommend using http://www.openbookproject.net/thinkcs/python/english2e/ . Currently I am learning from it. Once u are through with it u can read the book called Dive into Python. it's for experienced users. Google it. Hope that helps. On Thu, Feb 3, 2011 at 1:20 PM, wrote: > > Seven years ago, my story was similar. I started off with "The Python Quick > Book" (Manning) and "Python - Visual Quickstart Guide" (Peachpit Press). > Both are very easy to follow. I still pick up the "Quick" book once in a > while for reference. > > This "Tutor" list helped a lot. I learned by trying out the things people > offered as solutions to problems from people like you and me. > > Asking questions here is a way to help a lot of new Python programmers, and > a few older ones, too. > > There are a lot more resources these days, too. Search on "Python" in > YouTube. > > There are a lot of on-line tutorials, too. > > > - Original Message - From: "Doug Marvel" < > smokeinourlig...@gmail.com> > To: > Sent: Wednesday, February 02, 2011 6:00 PM > Subject: [Tutor] print "Hello, World!" > > > Hey folks, >> >> I'm Doug. I've been using computers since second grade, and I know a >> little about them. I am, however, completely new to programming. I >> don't even know what I know about it. I'd like some social interaction >> with this, but I can't go back to school until summer or fall of this >> year. I don't want to wait to start learning this as I feel like I'm >> already about a million years behind. I asked the Oracle >> (www.google.com) and after messing around with the Python Shell and >> getting a lot of error messages, I decided I need some remote help. >> Here's where I'm at: >> >> - I have downloaded and installed Python 2.6.4. Successfully, I think. >> - I am running Windows XP SP3 (though I'm going to see if I can do >> this on my laptop, which has Windows 7) >> - I have toyed around with some tutorials, but all they really taught >> me is that I need a teacher. >> >> I'm sure you guys are busy, but I read that the most basic questions >> are okay. As I'm sure there is at least one good resource on the net >> for people in my position, I'd like some suggestions on where to >> start. I plan on bothering you all as little as possible, but I am >> seriously hoping to make real progress between now and my first class. >> I have a feeling once I get a basic understanding, I'll run away with >> it. It's just very... big right now. So this list seems like a good >> thing, but tell me if I'm in the wrong place. >> >> I am hoping for a link to a somewhat comprehensive online resource >> that explains from the beginning in English, plain English, as this is >> the only language I speak. Something to get my foot in the door would >> be awesome. >> >> >> Cheers, >> Doug Marvel >> ___ >> Tutor maillist - Tutor@python.org >> To unsubscribe or change subscription options: >> http://mail.python.org/mailman/listinfo/tutor >> > > ___ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > -- Regards Dharmit Shah ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
[Tutor] Recursively flatten the list
Hello, I am learning Python and yesterday I cam across a definition wherein I was supposed to flatten a list recursively. I am getting the solution properly but wanted to know if I can optimize the code further. #!/usr/bin/env python new_list=[] def flatten(num_list): """ >>> flatten([2, 9, [2, 1, 13, 2], 8, [2, 6]]) [2, 9, 2, 1, 13, 2, 8, 2, 6] >>> flatten([[9, [7, 1, 13, 2], 8], [7, 6]]) [9, 7, 1, 13, 2, 8, 7, 6] >>> flatten([[9, [7, 1, 13, 2], 8], [2, 6]]) [9, 7, 1, 13, 2, 8, 2, 6] >>> flatten([[5, [5, [1, 5], 5], 5], [5, 6]]) [5, 5, 1, 5, 5, 5, 5, 6] """ global new_list for i in num_list: if type(i) == type([]): new_list = flatten(i) else: new_list.append(i) tmp = new_list new_list=[] return tmp if __name__=="__main__": import doctest doctest.testmod() PS - My knowledge of Python is still very basic and I am trying to dive into it as deeper as I can. Solutions on Stackoverflow.com were beyond my understandability. -- Regards Dharmit Shah ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
[Tutor] Web Programming
Hi all, I have been reading Head First Python<http://www.headfirstlabs.com/books/hfpython/> since some time now. I am stuck in a chapter on Web Development. Web Development has never been an area of my interest and hence I feel stuck in there. If anyone here has read the book, I wish to know if it's okay to skip that chapter and read further? -- Regards Dharmit Shah <http://about.me/dharmit> ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] How to replace the '\'s in a path with '/'s?
Ruchard, Try return path.replace('\\', '/'). That gave me the output desired by you. I don't know the reason. But I guess it's because \ is used as escape character. I am sure someone in the list will point out the accurate reason. On Sun, Jul 31, 2011 at 10:58 AM, Richard D. Moores wrote: > 64-bit Vista > Python 3.2.1 > > I would like to write a function that would take a path such as > 'C:\Users\Dick\Desktop\Documents\Notes\College Notes.rtf' > and return 'C:/Users/Dick/Desktop/Documents/Notes/College Notes.rtf' . I've > tried this: > > def test(path): >return path.replace('\', '/') > > print(test('C:\Users\Dick\Desktop\Documents\Notes\College Notes.rtf')) > > gets me > > File "c:\P32Working\untitled-5.py", line 2 >return path.replace('\', '/') >^ > SyntaxError: EOL while scanning string literal > Process terminated with an exit code of 1 > > Thanks, > > Dick > > > _______ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > > -- Regards Dharmit Shah <http://about.me/dharmit> ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
[Tutor] Recursion always returns None
Hello, I am trying to do the following : 1) Ask user for the length of the word that he'd like to guess (for hangman game). 2) Pick a random word from /usr/share/dict/words (which I understand is not the best choice for hangman). 3) Call a function that would pick a random word to proceed further. Below is the code for the part I described above : [code] #!/bin/env python import random def pick_random(l, ln): # picks a random word from the list l of length ln global mystery word = random.choice(l) if word.__len__() != ln: pick_random(l, ln)# recursion else: print "Should return %s" % word # prints the chosen random word correctly return word # always return None, why? :( if __name__ == "__main__": ln = raw_input("How long word can you guess (number of alphabets) : ") ln = int(ln) l = [] with open("/usr/share/dict/words", "r") as f: for i in f.readlines(): i = i.split("\n")[0] if i.isalpha(): l.append(i) word = pick_random(l, ln) print word [/code] Sample output : $ python hangman.py How long word can you guess (number of alphabets) : 6 Should return inarch None $ The problem is that the last line "print word" always prints None. I know I am doing something wrong in the recursion part of the function "pick_random". Can someone please point what I am missing. Thank you! Cheers, Dharmit -- Dharmit Shah www.about.me/dharmit ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Recursion always returns None
Hello, @Hugo Arts : Thank you! That was awesome to read. Thanks for the len() suggestion. @ Steve : Thank you. As suggested by Dave Angel, I am going to try the loop. And even before implementing it, I can feel that it's going to be more efficient than recursion. @Dave Angel : Thank you for the loop idea. It didn't strike me at all. @All : Thanks a bunch for helping me out. :) Cheers, Dharmit On Tue, Aug 28, 2012 at 7:18 PM, Dave Angel wrote: > On 08/28/2012 07:23 AM, Dharmit Shah wrote: >> Hello, >> >> I am trying to do the following : >> >> 1) Ask user for the length of the word that he'd like to guess (for >> hangman game). >> 2) Pick a random word from /usr/share/dict/words (which I understand >> is not the best choice for hangman). >> 3) Call a function that would pick a random word to proceed further. >> >> Below is the code for the part I described above : >> >> [code] >> >> #!/bin/env python >> import random >> >> def pick_random(l, ln): # picks a random word from the list >> l of length ln >> global mystery >> word = random.choice(l) >> if word.__len__() != ln: >> pick_random(l, ln)# recursion >> else: >> print "Should return %s" % word # prints the chosen random >> word correctly >> return word # always >> return None, why? :( > > There's no return statement here, to cover the case where the if-clause > succeeded. > >> if __name__ == "__main__": >> ln = raw_input("How long word can you guess (number of alphabets) : ") >> ln = int(ln) >> l = [] >> with open("/usr/share/dict/words", "r") as f: >> for i in f.readlines(): >> i = i.split("\n")[0] >> if i.isalpha(): >> l.append(i) >> >> word = pick_random(l, ln) >> print word >> >> [/code] >> >> Sample output : >> >> $ python hangman.py >> How long word can you guess (number of alphabets) : 6 >> Should return inarch >> None >> $ >> >> The problem is that the last line "print word" always prints None. I >> know I am doing something wrong in the recursion part of the function >> "pick_random". Can someone please point what I am missing. Thank you! >> >> Cheers, >> Dharmit >> > > There are two things wrong, one of which has already been pointed out. > But the most fundamental thing that's wrong is that once you have called > the recursion, you don't return a value at all, simply falling off the > end of the function. Python returns a value of None when you omit the > return statement. > > So you should add a statement 'return word', which will eliminate the > None. But of course it'll be the wrong word. To fix that, you need to > assign the results of the call to pick_random() to the same local > variable, word. > > As others have pointed out, this is a poor choice for recursion. > Recursion can be more readable for some problems, when the problem > statement is naturally recursive. But even then, it can frequently lead > to stack overruns, and performance problems. But in this case a simple > loop would make much more sense. So unless the instructor is requiring > you to use recursion, please redo it as a loop. > > While we're at it, please use the len() function, rather than __len__() > method. And instead doing a split() method for eliminating the > linefeeds, what you really want to do is rstrip(). > > > > -- > > DaveA > -- Dharmit Shah www.about.me/dharmit ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] List Python Question..Please help
Also, comparison is case sensitive. Meaning, 'A' and 'a' are not the same. Hope that helps. :) On Fri, Sep 27, 2013 at 1:14 PM, Amit Saha wrote: > On Fri, Sep 27, 2013 at 3:48 PM, Jacqueline Canales > wrote: >> So I have been trying to do this program using ifs and or loops. >> I am having a hard time solving this question, If you could please assist me >> in the right direction. >> >> Write a program that lists all the composers on the list ['Antheil', >> 'Saint-Saens', 'Beethoven', 'Easdale', 'Nielsen'] whose name starts and ends >> with the same letter (so Nielsen gets lsited, but Antheil doesn't). >> >> I know below it prints the entire list of composers but i dont know how to >> do the program above. I think I am thinking to much into but ive looked at >> all my notes and online resources and having a hard time coming up with >> anything. >> Please help! >> >> composers = ['Antheil', 'Saint-Saens', 'Beethoven', 'Easdale', 'Nielsen'] >> for person in composers: >> print(person) > > So, here you are printing every compose as you rightly state above. > What you now need to do is: > > For each of the composers (`person'), you need to check if the first > letter and the last letter are the same. Here;s a hint: > >>>> s='abba' > > The first letter: > >>>> s[0] > 'a' > > The last letter: > >>>> s[-1] > 'a' > > > If you now compare these, you will know if they are the same and hence > you print him/her. > > Hope that helps. > -Amit. > > > -- > http://echorand.me > ___ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor -- Dharmit Shah www.about.me/dharmit ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] Desktop Notifications on Linux
Hi all, I am trying to create a script that will go through the /var/log/secure file on a Linux system and provide desktop notifications for failed login attempts. Here is the code - http://pastebin.com/MXP8Yd91 And here's notification.py - http://pastebin.com/BhsSTP6H I am facing issue in the function "new_attempts_from_last". I am not able to raise a desktop notification from this function. It always fails with this traceback - http://pastebin.com/cgHMScv3 I see this error only when I try to raise a notification from the aforementioned function. If I run test examples under /usr/share/doc/notify-python/examples, it works just fine. Also, if I try to raise a notification from under if __name__ == "__main__":, it works without any issues. So I don't think there's any issue with OS's notification daemon. Running from python shell like below also works fine: In [1]: import notification In [2]: notification.notification("Hey") What am I missing or doing wrong here? If it matters, I am running Fedora 20, python 2.7 and Cinnamon desktop environment. For readability purposes, I have provided pastebin links. Let me know if this is not the correct way. Regards, Dharmit. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Desktop Notifications on Linux
Hi Peter, On Thu, Apr 10, 2014 at 2:30 PM, Peter Otten <__pete...@web.de> wrote: > Dharmit Shah wrote: > >> I am trying to create a script that will go through the >> /var/log/secure file on a Linux system and provide desktop >> notifications for failed login attempts. >> >> Here is the code - http://pastebin.com/MXP8Yd91 >> And here's notification.py - http://pastebin.com/BhsSTP6H >> >> I am facing issue in the function "new_attempts_from_last". I am not >> able to raise a desktop notification from this function. It always >> fails with this traceback - http://pastebin.com/cgHMScv3 >> >> I see this error only when I try to raise a notification from the >> aforementioned function. If I run test examples under >> /usr/share/doc/notify-python/examples, it works just fine. Also, if I >> try to raise a notification from under if __name__ == "__main__":, it >> works without any issues. So I don't think there's any issue with OS's >> notification daemon. Running from python shell like below also works >> fine: >> >> In [1]: import notification >> >> In [2]: notification.notification("Hey") >> >> What am I missing or doing wrong here? >> >> If it matters, I am running Fedora 20, python 2.7 and Cinnamon desktop >> environment. >> >> For readability purposes, I have provided pastebin links. Let me know >> if this is not the correct way. > Thanks for your prompt response. > Maybe you are running the code as a user that has no "desktop"? Here's a > strapped-down demo: > > $ cat notify_demo.py > import pynotify > import sys > > pynotify.init("Notification") > n = pynotify.Notification("Notification", " ".join(sys.argv[1:])) > n.show() > $ python notify_demo.py hello world > > The notification appeared on my desktop. However, when trying again as root > I got the error you are seeing: > > $ sudo su > # python notify_demo.py hello again > Traceback (most recent call last): > File "notify_demo.py", line 6, in > n.show() > glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name > org.freedesktop.Notifications was not provided by any .service files > That does ring some bells. I am logged into my F20 system as non-root user but since reading /var/log/secure file requires superuser privileges, I am running it as sudo: sudo python secure.py That probably explains the issue I am facing. I will add the user to the root group and see if it helps. Regards, Dharmit. > > ___ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor