Re: [Tutor] The Charms of Gmail
> I'm sorry Mark, I'm stuck with using gmail [...] Use sane e-mail, then. -- # apt-assassinate --help Usage: apt-assassinate [upstream|maintainer] PGP-Fingerprint: 3C9D 54A4 7575 C026 FB17 FD26 B79A 3C16 A0C4 F296 signature.asc Description: Digital signature ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Stuck on error
On Sat, Dec 21, 2013 at 12:36 PM, NZHacker1 . wrote: > I'm not finished with the program and I put Plays = int(x) * 100, > plays = int(x) * 100 > on purpose. > > I don't think you understood what people were trying to tell you. Python is case-sensitive; "plays" and "Plays" are NOT the same variable. The problem with line 47 is that you have this on the left side of the equals sign: "Game + z". "Can't assign to operator" means that Python thinks you are trying to assign a value to the plus sign, which is obviously impossible. I'm not sure I understand what you really wanted to do in line 47. I don't know what your Game variable is supposed to be - is it a string? A list of strings? Leaving aside the fact that what you've written is a syntax error... your line 47 is trying to do this: String + int = int + int + int + int + int + int which wouldn't make any sense, and is probably not what you had in mind anyway. I think you're trying to get Game to contain a string that says something like "Game 5: 45 57 38 24 66 89", right? If so, you want to use string formatting for that, NOT addition. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Global namespace/dictionary
On Sat, 21 Dec 2013 14:22:32 -0500, Keith Winston wrote: Tutor maillist - Tutor@python.org Please stick with text mail, not html. -- DaveA ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] Stuck on error
I'm trying to make a lottery in python and I keep getting this error. There's an error in your program: ***Cant assign to operator.(Mega Millions, line 47) Here's the code. import random for i in range(1): RN1 = random.randint(1,75) for i in range(1): RN2 = random.randint(1,75) for i in range(1): RN3 = random.randint(1,75) for i in range(1): RN4 = random.randint(1,75) for i in range(1): RN5 = random.randint(1,75) for i in range(1): RMB = random.randint(1,15) x = raw_input('Money in pennys.') Plays = int(x) * 100 plays = int(x) * 100 z = 0 Game = ('Game') while Plays != 0: Plays = Plays - 1 z = z + 1 for i in range(1): N1 = random.randint(1,75) for i in range(1): N2 = random.randint(1,75) for i in range(1): N3 = random.randint(1,75) for i in range(1): N4 = random.randint(1,75) for i in range(1): N5 = random.randint(1,75) for i in range(1): MB = random.randint(1,15) Game + z = N1 + N2 + N3 + N4 + N5 + MB z = 0 while plays != 0: Plays = Plays - 1 z = z + 1 print(Game + str(z)) Line 47 in highlighted in red. I'm not finished with the program and I put Plays = int(x) * 100, plays = int(x) * 100 on purpose. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] Global namespace/dictionary
On Sat, Dec 21, 2013 at 12:56 PM, wrote: > py> x = 23 > py> d = globals() > py> d['x'] > 23 > py> d['x'] = 42 > py> x > 42 > Well this is sort of fascinating, but a bit confusing: I was playing with this, and it seems like the global dictionary includes not just the name but the entire contents of every dictionary within it... that seems implausibly redundant, so maybe that's just something about how exploring a dictionary functions recursively, or something? Maybe it's correct to say that any dictionaries within a namespace are stored in that namespace, though that doesn't really sound right. >>> d = globals() >>> fubar = {1: 'spam', 'eggs': 2} >>> d {'__name__': '__main__', '__builtins__': , '__doc__': None, '__loader__': , 'fubar': {1: 'spam', 'eggs': 2}, 'd': {...}, '__package__': None} And yes, I did change up my string/int order in key/value positions: I'm fascinated by the flexibility of the data structure. I suspect the answer to my question lies in exactly this facet. -- Keith ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] The Charms of Gmail
On Sat, Dec 21, 2013 at 6:00 AM, wrote: > I'm unsure as to what the subject line has in common with class and > instance variables, would you care to explain it please. > I'm sorry Mark, I'm stuck with using gmail where I have to remember to delete the (essentially invisible) included text of the entire digest I'm responding to, and change the (entirely invisible) subject line. It -- Keith ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] more html/css question than python
On 21/12/13 19:10, Matthew Ngaha wrote: On Sat, Dec 21, 2013 at 5:56 PM, Alan Gauld wrote: basic javascript, so it's definately better to also learn jquery? I've always pushed it to the side :( In reality JavaScript is the only game in town for browser scripting. And if you want to have all those sexy modern features like popup menus, drag n' drop, rollovers, dynamic panels etc then JQuery is so much easier than raw Javascript and works in almost every browser too. You don't need it, in that you can build applications without it. But if you want something that looks like it was built this century then JQuery is pretty important. And as an added bonus it makes Ajax style programming a cinch too. Or as much of a cinch as Ajax ever can be. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] class variables
On Sat, Dec 21, 2013 at 12:40 PM, Steven D'Aprano wrote: > On Sat, Dec 21, 2013 at 08:41:17AM -0500, eryksun wrote: >> >> >>> vars(type)['__base__'] >> > > Oooh, nice! I always forget about vars(), and end up messing about with > __dict__. It's a bit more efficient to use the __dict__ attribute, but I like built-in vars(). vars(obj) is basically doing the equivalent of getattr(obj, '__dict__'), so there's that plus the overhead of the call. vars has to play it safe. A class may define a custom __dict__ property, such as the tuple subclass created by namedtuple: from collections import namedtuple Point = namedtuple('Point', 'x y') p = Point(1, 2) >>> type(vars(Point)['__dict__']) >>> vars(p) OrderedDict([('x', 1), ('y', 2)]) Even if an object has a dict, it would be wrong for vars to naively return a reference. A class might be overriding __getattribute__ to create dynamic attributes or raise an AttributeError for '__dict__'. Also, bypassing the descriptor would bypass the proxy protecting a class dict, enabling silliness: from ctypes import pythonapi, py_object # 3.3+ pythonapi.PyObject_GenericGetDict.restype = py_object pythonapi.PyObject_GenericGetDict.argtypes = [py_object] str_dict = pythonapi.PyObject_GenericGetDict(str) str_dict['lower'] = str_dict['upper'] >>> 'abc'.lower() 'ABC' ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] more html/css question than python
On Sat, Dec 21, 2013 at 11:10 AM, Matthew Ngaha wrote: > so xhtml even over html5? isn't html5 the new thing these days? I know > basic javascript, so it's definately better to also learn jquery? > I've always pushed it to the side :( HTML5 has an XML representation (called XHTML5) which works even in IE. -- Devin ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] more html/css question than python
On Sat, Dec 21, 2013 at 5:56 PM, Alan Gauld wrote: > You really need to know html and css if you are building > modern web UIs. That's because most good modern web sites > use a lot of client side(browser) scripting, usually using > JQuery. JQuery requires that you really understand how > html tags and css styles work. So you may get out of > creating the bulk of the code but you still need to > understand the detail of what the tool produces. More > so today that, say, 10 years ago. Finally, I'd really > aim for xhtml rather than html since it's easier to > parse and not too much extra work to produce. (htmltidy > can convert to xhtml for you if you prefer) > so xhtml even over html5? isn't html5 the new thing these days? I know basic javascript, so it's definately better to also learn jquery? I've always pushed it to the side :( ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] more html/css question than python
op 21-12-13 16:07, Matthew Ngaha schreef: hey guys ive got the very basics of django down. i was able to design a very basic dynamite site and interacted with django. It's basic & limited in every way, with the little it does, and the plain ugly design. This won't be good enough to put up anywhere but on localhost. My question is, How do you guys or designers in general go about creating a site. do you guys find designing a site from scratch with html/css fun... or is it so tedious that you just go with an existing template? I was told people don't design sites with manual html/css anymore as they use many tools that can generate web pages without having to type all that code. i'm wondering if its worth learning html5/css3 beyond a basic level in conjunction with django, or are there easier better options. I always use the Twitter Bootstrap boilerplate. Here are the docs: http://getbootstrap.com/ Everything is set up for you already so you can create good looking websites in a flash. Timo ___ 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
Re: [Tutor] more html/css question than python
On 21/12/13 15:07, Matthew Ngaha wrote: My question is, How do you guys or designers in general go about creating a site. Most of my personal websites are so trivial that I just hand craft everything in vim. If I had to do something bigger where looks were important I'd probably go with a simple word processor like Libre/OpenOffice anmd then hand tweak the html and css as needed. At work we did much bigger and more complex sites. For those we had a team of graphics designers who developed the html and css files using a standard web design tool (DreamWeaver I think) and some company based rules to fit our design. The developers then worked against a template system using whatever web tools they were working with: ASP.Net, JSP, WebLogic, OracleAppServer etc. Oddly, I've never worked on anything between those extremes. Its either been a tiny site for a few hundred hits per day or a huge site expecting millions of hits per day. do you guys find designing a site from scratch with html/css fun... or is it so tedious that you just go with an existing template? I only once used a template and hated it so much I redid it by hand. I don't consider html/css fun but I don't consider it any more of a chore than writing a requirements spec or test spec or architecture/design document. They are necessary evils on any project. I was told people don't design sites with manual html/css anymore as they use many tools that can generate web pages without having to type all that code. I suspect that's true, most sites are built using tools like Dreamweaver or even MS FrontPage or a web tool like WordPress. html5/css3 beyond a basic level in conjunction with django, or are there easier better options. You really need to know html and css if you are building modern web UIs. That's because most good modern web sites use a lot of client side(browser) scripting, usually using JQuery. JQuery requires that you really understand how html tags and css styles work. So you may get out of creating the bulk of the code but you still need to understand the detail of what the tool produces. More so today that, say, 10 years ago. Finally, I'd really aim for xhtml rather than html since it's easier to parse and not too much extra work to produce. (htmltidy can convert to xhtml for you if you prefer) -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] class variables
On Sat, Dec 21, 2013 at 08:41:17AM -0500, eryksun wrote: > On Sat, Dec 21, 2013 at 2:14 AM, Steven D'Aprano wrote: > > > > (Sometimes, people will call them "members", especially if they are used > > to C#. The meaning here is member as in an arm or leg, as in > > "dismember", not member in the sense of belonging to a group.) > > A Python object isn't just a fixed-size block of data with members at > fixed offsets. It stores its data dynamically in a dict. Yes, but that's just an implementation detail. There's no fundamental difference between "attribute", "member" and "(instance/class) variable". Different languages give them different names according to whatever vagaries the language creator considers important. C# happens to use fixed-sized records, Python happens to (usually) use dicts. Having said that, I do think it is useful to reserve the term "member" for the fixed-size block type, and "attribute" for the general term. At least when talking about Python. [...] > For example, the read-only __base__ attribute of a class uses the > following descriptor: > > >>> vars(type)['__base__'] > Oooh, nice! I always forget about vars(), and end up messing about with __dict__. > > Suppose we ask Python for "polly.colour". Python looks at the instance > > polly, and checks to see if it has an instance attribute called "polly". [...] > It first has to check Parrot and its base classes (in Method > Resolution Order, i.e. Parrot.__mro__) for a data descriptor (e.g. a > property) named "colour". An instance can't override a data > descriptor. I did say it was an over-simplified description. I didn't think it was helpful to start talking about descriptors to a beginner :-) For what it's worth, descriptors are both absolutely fundamental to how Python operates, and an advanced feature that newbies don't need to understand immediately, -- Steven ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] class variables [was Tutor Digest, Vol 118, Issue 99]
(I fixed the subject line for you.) On Sat, Dec 21, 2013 at 02:53:28AM -0500, Keith Winston wrote: > On Sat, Dec 21, 2013 at 2:14 AM, wrote: > > > I don't like the terms "class variable" and "instance variable". In the > > Python community, these are usually called class and instance attributes > > rather than variables or members. > > > > Hey Steven, that was a very generous explanation. Thanks! Very clear. I was > floundering over the simple name/concept of attibute, and it had undermined > my reading of other material. Your examples were extremely helpful. I think > I understood everything you said (after a second reading). Glad to be of service! > I keep hearing > about how Python creates namespaces which I think are dictionaries, I'm > going to have to look into that further to understand how some of this fits > together. Think of a typical family. Unless you're one of George Foreman's five sons all called George, chances are that everyone in the family has a different name. (Or at least a different nickname.) "Fred" in your family is not the same as "Fred" in my family. In this case, the family plays the role of a namespace: everyone inside the family has a unique name that they are known by, but people in different families can have the same name. In general, a "namespace" is some sort of environment or container that holds identifiers (such as names, or ID numbers). Within a single namespace, all identifiers have to be unique, but two different namespaces can hold the same identifier. For example, in Python, each module is a namespace. If you have two files, say "spam.py" and "eggs.py", the two modules may include variables with the same name: spam.thing = 23 eggs.thing = 42 Even though they are both called "thing", they live in different namespaces so they can have different values. Python namespaces are usually dictionaries. The globals() function returns the global namespace, which is a dict. You will find all your global variables in it. Here's an example: py> x = 23 py> d = globals() py> d['x'] 23 py> d['x'] = 42 py> x 42 (Note: operating directly on globals(), as I do in that example, is not a common thing to do. Python gives you the ability to do so, but it's quite rare to actually need it.) Classes and instances also behave as namespaces. Both normally have a special attribute called "__dict__" (that's two underscores at the start and end of the name). Class.__dict__ holds the class attributes, including methods. The instance __dict__ holds the instance attributes. Rather than access the __dict__ directly, it is nearly always better to use getattr and setattr functions. That is: # don't do this obj.__dict__['attribute'] = 23 # this is better setattr(obj, 'attribute', 23) # but this is even better obj.attribute = 23 The main reason for using getattr and setattr is when you don't know the name of the attribute when you write the code, but only at runtime. For example: name = get_some_name() # returns some attribute name getattr(obj, name) You can't use obj.name, since that will return the attribute called literally "name". In this case, you want the attribute named *by* name instead -- if name == "colour", you want obj.colour, if name == "height", you want obj.height, and so on. > I think that's where Python is going when you're talking about > looking up attributes (and it would include methods too, unless they're > still functions... maybe they're methods for instances and functions for > classes? Ok, I don't get that part yet). Methods and functions are another story, but in a nutshell, methods are just like functions except that they live inside classes, and when you call a method, it automatically gets the instance as the first argument. Confused? Here's an example, using a string method. Strings have a method, replace, that works like this: py> "the cat in the hat eats green ham".replace("cat", "dog") 'the dog in the hat eats green ham' If replace were a function, we would write it something like this: # simplified version def replace(s, old, new): ... and you would call it like this: replace("the cat in the hat eats green ham", "cat", "dog") => returns "the dog in the hat eats green ham" So you can think of the difference between methods and functions that methods use the syntax: arg1.method(arg2, arg3, ...) instead of: function(arg1, arg2, arg3, ...) There are other differences, but that is the most important one. -- Steven ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] more html/css question than python
hey guys ive got the very basics of django down. i was able to design a very basic dynamite site and interacted with django. It's basic & limited in every way, with the little it does, and the plain ugly design. This won't be good enough to put up anywhere but on localhost. My question is, How do you guys or designers in general go about creating a site. do you guys find designing a site from scratch with html/css fun... or is it so tedious that you just go with an existing template? I was told people don't design sites with manual html/css anymore as they use many tools that can generate web pages without having to type all that code. i'm wondering if its worth learning html5/css3 beyond a basic level in conjunction with django, or are there easier better options. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] class variables
On Sat, Dec 21, 2013 at 2:14 AM, Steven D'Aprano wrote: > > (Sometimes, people will call them "members", especially if they are used > to C#. The meaning here is member as in an arm or leg, as in > "dismember", not member in the sense of belonging to a group.) A Python object isn't just a fixed-size block of data with members at fixed offsets. It stores its data dynamically in a dict. That said, CPython objects do have members as an implementation detail, including class-defined __slots__. The member_descriptor type is used to access members as attributes. For example, the read-only __base__ attribute of a class uses the following descriptor: >>> vars(type)['__base__'] > Suppose we ask Python for "polly.colour". Python looks at the instance > polly, and checks to see if it has an instance attribute called "polly". > If it does, we're done. But if it doesn't, Python doesn't give up > straight away, it next checks the class of polly, which is Parrot. Does > Parrot have an attribute called "polly"? Yes it does, so that gets > returned. It first has to check Parrot and its base classes (in Method Resolution Order, i.e. Parrot.__mro__) for a data descriptor (e.g. a property) named "colour". An instance can't override a data descriptor. > So unlike *getting* an attribute, which searches both the instance > and the class, *setting* or *deleting* an attribute stops at the > instance. Setting and deleting an attribute also has to start by searching the class and bases for data descriptors. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Tutor Digest, Vol 118, Issue 99
On 21/12/2013 07:53, Keith Winston wrote: On Sat, Dec 21, 2013 at 2:14 AM, mailto:tutor-requ...@python.org>> wrote: I don't like the terms "class variable" and "instance variable". In the Python community, these are usually called class and instance attributes rather than variables or members. Hey Steven, that was a very generous explanation. Thanks! Very clear. I was floundering over the simple name/concept of attibute, and it had undermined my reading of other material. Your examples were extremely helpful. I think I understood everything you said (after a second reading). I keep hearing about how Python creates namespaces which I think are dictionaries, I'm going to have to look into that further to understand how some of this fits together. I think that's where Python is going when you're talking about looking up attributes (and it would include methods too, unless they're still functions... maybe they're methods for instances and functions for classes? Ok, I don't get that part yet). Anyway, thanks again -- Keith I'm unsure as to what the subject line has in common with class and instance variables, would you care to explain it please. -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Tutor Digest, Vol 118, Issue 99
On Sat, Dec 21, 2013 at 2:14 AM, wrote: > I don't like the terms "class variable" and "instance variable". In the > Python community, these are usually called class and instance attributes > rather than variables or members. > Hey Steven, that was a very generous explanation. Thanks! Very clear. I was floundering over the simple name/concept of attibute, and it had undermined my reading of other material. Your examples were extremely helpful. I think I understood everything you said (after a second reading). I keep hearing about how Python creates namespaces which I think are dictionaries, I'm going to have to look into that further to understand how some of this fits together. I think that's where Python is going when you're talking about looking up attributes (and it would include methods too, unless they're still functions... maybe they're methods for instances and functions for classes? Ok, I don't get that part yet). Anyway, thanks again -- Keith ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor