Re: [Tutor] The Card Game

2011-06-30 Thread Steven D'Aprano

Christopher King wrote:

I would go with __cmp__ which covers them all. 1 for greater, 0 for equal,
-1 for less than.



So-called "rich comparisons" using __lt__, __gt__, etc. have been 
preferred since Python 2.1. The major advantage of them is that they can 
be used for more complicated data types, e.g. with sets where > means 
superset and < means subset:



>>> a = set([1, 2, 3, 4])
>>> b = set([2, 3, 4, 5])
>>>
>>> a < b  # a is not a subset of b
False
>>> a > b  # neither is it a superset
False
>>> a == b  # and they're not equal either
False
>>> a & b  # but they do overlap:
set([2, 3, 4])



In Python 2.x, __cmp__ is only used as a fall-back if the rich 
comparisons aren't defined. In Python 3.x, __cmp__ is gone: even if you 
define it, it won't be used.




___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] The Card Game

2011-06-30 Thread ALAN GAULD
I may be wrong but I thought __cmp__ was deprecated. 
In fact I thought it was one oof the things removed in 
Python v3


But I may have just imagined it! :-)


 Alan Gauld
Author of the Learn To Program website
http://www.alan-g.me.uk/






From: Christopher King 
To: Alan Gauld 
Cc: tutor@python.org
Sent: Thursday, 30 June, 2011 20:43:29
Subject: Re: [Tutor] The Card Game

I would go with __cmp__ which covers them all. 1 for greater, 0 for equal, -1 
for less than.


On Thu, Jun 30, 2011 at 5:35 AM, Alan Gauld  wrote:


>"Vincent Balmori"  wrote
>
>I keep getting a Type Error since for the moment since the
>>values of the cards cannot be compared due to their
>>types.
>>
Please send the complete error text sincethat will tell us
where to look etc.


I am thinking of creating a Card_Value class that will give each rank
>and suit a certain value. If there is also a more elegant way of handling
>some of the code in the main section that will be welcome.
>
You can get cards to compare themselves by adding a few
more "magic methods". Then you can do stuff like

if card1 < card2:
  # 
elif card2 > card1:
  # 
else:

The methods you need to create are
__gt__(), __lt__(), __eq__(), __le__(), __ge__()

for


,<,==,<=,>=
>
operations.

BTW, In your code you have a comparison using = instead of ==.
That will fail.

HTH,


-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


___
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


Re: [Tutor] Copying Files

2011-06-30 Thread Prasad, Ramit
-Original Message-
From: tutor-bounces+ramit.prasad=jpmchase@python.org 
[mailto:tutor-bounces+ramit.prasad=jpmchase@python.org] On Behalf Of 
gagnr...@verizon.net
Sent: Thursday, June 30, 2011 1:03 PM
To: tutor@python.org
Subject: [Tutor] Copying Files

I was using glob and shutil to copy logs from one location to another 
successfully, however, I have run into a snag when trying to copy a directory.  
 Not sure how to fix this.

Current Code is as follows:


for file in glob.glob("/drbd1/monitorcenter/Apps/WEB-INF/*"):   #This line is 
holding up the script due to copying a directory and not a single file
shutil.copy(file, path_2_b_2)

Any ideas?




Why not try shutil.copytree instead? 
Shutil.copytree('/drbd1/monitorcenter/Apps/WEB-INF', path_2_b_2 )
http://docs.python.org/library/shutil.html 


Ramit


Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
712 Main Street | Houston, TX 77002
work phone: 713 - 216 - 5423

This communication is for informational purposes only. It is not
intended as an offer or solicitation for the purchase or sale of
any financial instrument or as an official confirmation of any
transaction. All market prices, data and other information are not
warranted as to completeness or accuracy and are subject to change
without notice. Any comments or statements made herein do not
necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
and affiliates.

This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and any
attachments are believed to be free of any virus or other defect
that might affect any computer system into which it is received and
opened, it is the responsibility of the recipient to ensure that it
is virus free and no responsibility is accepted by JPMorgan Chase &
Co., its subsidiaries and affiliates, as applicable, for any loss
or damage arising in any way from its use. If you received this
transmission in error, please immediately contact the sender and
destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.

Please refer to http://www.jpmorgan.com/pages/disclosures for
disclosures relating to European legal entities.
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Blackjack Betting

2011-06-30 Thread Prasad, Ramit
>I keep getting the error: “NameError: global
>name 'bet' is not defined.” I know I came across this error before in a
>previous thread, but I am confused on how to solve this, since I am also
>trying to juggle it with inherited methods at the same time.

Telling us this without the stack trace is pretty unhelpful. The Python 
exceptions include a very good stack trace (with line numbers +- 1 line) and a 
decent description. This error means that wherever this error was raised was a 
reference to the name "bet" and it had no reference to any "bet" at that point. 
The reasons could be that you forgot to assign a value to the name first, maybe 
it was a typo, in a preceding function, forgot the reference to self, etc, etc.

I took a *quick* look at the code and found this (I did not check for other 
problems or if this error happens in more than one place):


class BJ_Player(BJ_Hand, Bet):
""" A Blackjack Player. """
def is_hitting(self):
response = games.ask_yes_no("\n" + self.name + ", do you want a hit? 
(Y/N): ")
return response == "y"

def bust(self):
print(self.name, "busts.")
self.lose()

def lose(self):
print(self.name, "loses.")
betting = Bet()
bet.stash -= bet.wager

def win(self):
print(self.name, "wins.")
bet = Bet()
bet.stash += bet.wager

def push(self):
print(self.name, "pushes.")


There are a couple things wrong with this class. First, you never define an 
__init__ which might be technically okay but is unlikely to be what you want 
for any user defined class (especially one with multiple inheritance). Since 
there is no __init__ defined, it will call the first parent class 
BJ_Hand.__init__ but not the second parent class Bet.__init__ (if it has one). 

Next for BJ_Player.lose(), bet is never defined and thus neither is bet.stash. 
Maybe you meant betting.stash -= betting.wager? I bet if you ran lint/pylint on 
this module it would have told you the error without even having to run it.


Ramit


Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
712 Main Street | Houston, TX 77002
work phone: 713 - 216 - 5423



-Original Message-
From: tutor-bounces+ramit.prasad=jpmchase@python.org 
[mailto:tutor-bounces+ramit.prasad=jpmchase@python.org] On Behalf Of 
Vincent Balmori
Sent: Thursday, June 30, 2011 1:49 PM
To: tutor@python.org
Subject: [Tutor] Blackjack Betting


I have been working on another challenge that involves improving the
Blackjack program so the players can wager an amount. If a player loses they
will be removed from the game.  I keep getting the error: “NameError: global
name 'bet' is not defined.” I know I came across this error before in a
previous thread, but I am confused on how to solve this, since I am also
trying to juggle it with inherited methods at the same time. Here is the old
and new file for the blackjack program for comparison:

http://old.nabble.com/file/p31966195/blackjack.py blackjack.py 
http://old.nabble.com/file/p31966195/blackjackbetting.py blackjackbetting.py 
-- 
View this message in context: 
http://old.nabble.com/Blackjack-Betting-tp31966195p31966195.html
Sent from the Python - tutor mailing list archive at Nabble.com.

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

This communication is for informational purposes only. It is not
intended as an offer or solicitation for the purchase or sale of
any financial instrument or as an official confirmation of any
transaction. All market prices, data and other information are not
warranted as to completeness or accuracy and are subject to change
without notice. Any comments or statements made herein do not
necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
and affiliates.

This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and any
attachments are believed to be free of any virus or other defect
that might affect any computer system into which it is received and
opened, it is the responsibility of the recipient to ensure that it
is virus free and no responsibility is accepted by JPMorgan Chase &
Co., its subsidiaries and affiliates, as applicable, for any loss
or damage arising in any way from its use. If you received this
transmission in error, please immediately contact the sender and
destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.

Please refer to http://www.jpmorgan.com/pages/disclosures for
disclosures relating to European legal entities.
__

Re: [Tutor] The Card Game

2011-06-30 Thread Christopher King
I would go with __cmp__ which covers them all. 1 for greater, 0 for equal,
-1 for less than.

On Thu, Jun 30, 2011 at 5:35 AM, Alan Gauld wrote:

>
> "Vincent Balmori"  wrote
>
>> I keep getting a Type Error since for the moment since the
>> values of the cards cannot be compared due to their
>> types.
>>
>
> Please send the complete error text sincethat will tell us
> where to look etc.
>
>  I am thinking of creating a Card_Value class that will give each rank
>> and suit a certain value. If there is also a more elegant way of handling
>> some of the code in the main section that will be welcome.
>>
>
> You can get cards to compare themselves by adding a few
> more "magic methods". Then you can do stuff like
>
> if card1 < card2:
>   # 
> elif card2 > card1:
>   # 
> else:
>
> The methods you need to create are
> __gt__(), __lt__(), __eq__(), __le__(), __ge__()
>
> for
>
>  ,<,==,<=,>=
>>
>
> operations.
>
> BTW, In your code you have a comparison using = instead of ==.
> That will fail.
>
> HTH,
>
>
> --
> Alan Gauld
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
>
>
> __**_
> 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


Re: [Tutor] Zipping files and Mysql

2011-06-30 Thread Christopher King
/myfiles/my_db/ needs to be a string
that right there is trying to divide nothing by the variable called myfiles,
divided by my_db, divide by nothing

On Mon, Jun 27, 2011 at 3:45 PM,  wrote:

> I am trying to write a script that will dump a mysql db and then zip the
> file.
>
>
> I do know about mysqldb, but I was wondering if there is anything native to
> the libraries that will allow me to do this without using a seperate piece.
>   Then after I gather the DBs, I need to zip them.   I wrote the following,
> but wanted to know if I am heading in the correct direction.
>
> zipfile.zipfile(/myfiles/my_db/, w, zip_stored)
> ___
> 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


Re: [Tutor] Python GUI

2011-06-30 Thread Christopher King
dude, what are all those story comments, did you just edit the mad
lib program from Python for Absolute Beginners?

On Wed, Jun 29, 2011 at 12:28 AM, David Merrick wrote:

> # Guess My Number GUI
> # Create a story based on user input
>
> from tkinter import *
> import random
> class Application(Frame):
> """ GUI application that creates a story based on user input. """
> def __init__(self, master):
> """ Initialize Frame. """
> super(Application, self).__init__(master)
> self.grid()
> self.create_widgets()
>
> def create_widgets(self):
> """ Create widgets to get story information and to display story.
> """
> # create instruction label
> Label(self,
>   text = "Welcome to 'Guess My Number'!\n\nI'm thinking of a
> number between 1 and 100.\nTry to guess it in as few attempts as possible."
>   ).grid(row = 0, column = 0, columnspan = 2, sticky = W)
>
>
>
> # create a label for body parts radio buttons
> Label(self,
>   text = "Take a guess:"
>   ).grid(row = 6, column = 0, sticky = W)
> self.numberEnt = Entry(self)
> self.numberEnt.grid(row = 6, column = 1, sticky = W)
>
> # create a submit button
> Button(self,
>   text = "Click to see if you got it",
>command = self.testNumber
>).grid(row = 7, column = 0, sticky = W)
>
> self.numberTxt = Text(self, width = 75, height = 10, wrap = WORD)
> self.numberTxt.grid(row = 8, column = 0, columnspan = 4)
>
> def testNumber(self):
> """ Fill text box with new story based on user input. """
> # get values from the GUI
>
> # create the story
>
> guess = int(self.numberEnt.get())
> tries = 1
>
> while guess != the_number:
> if guess > the_number:
>   number += "Lower..."
> else:
>   number += "Higher..."
> guess = int(self.numberEnt.get())
> tries += 1
>
> # display the text
> self.numberTxt.delete(0.0, END)
> self.numberTxt.insert(0.0, number)
>
>
> number += "You guessed it!  The number was" + the_number
> number += "And it only took you " + tries + " tries!\n"
> self.numberTxt.delete(0.0, END)
> self.numberTxt.insert(0.0, number)
>
>
>
> # main
> number = ""
> the_number = random.randint(1, 100)
> root = Tk()
> root.title("Mad Lib")
> app = Application(root)
> root.mainloop()
>
> *Output*
>
> Traceback (most recent call last):
>   File "I:\Python\programs\guess_my_ numberChapter10.py", line 60, in
> 
> number += "You guessed it!  The number was" + the_number
> NameError: name 'number' is not defined
>
> Any ides??? Is my code going to work apart from this
> problem?
>
> --
> Dave Merrick
>
> merrick...@gmail.com
>
> Ph   03 3423 121
> Cell 027 3089 169
>
> ___
> 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


Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-30 Thread Christopher King
What's step 4?

On Sat, Jun 25, 2011 at 10:08 AM, Mac Ryan  wrote:

> On Sat, 25 Jun 2011 06:18:14 -0700 (PDT)
> Adam Carr  wrote:
>
> > Good Morning:
> >
> > I am very new to Python but I am enjoying the learning process. I
> > have a question about the application of Python to a problem at the
> > industrial business where I work. My two main questions are:
> >
> > 1. Can Python be used to achieve the goals of the possible project?
> > 2. Where are the best places to look (books, blogs, websites, etc.)
> > for programming examples or modules that would help me begin to
> > assemble and test some code?
> >
> > We currently have a Windows-PC based safety training program that was
> > put together in MS Access around 2001
>
> 
>
> > Thanks in advance for taking the time to read my long note. I
> > appreciate any help or direction that can be offered.
>
> Hi Adam,
>
>from the way you describe your problem, to me the obvious
> answer would be "web application". This way you will be able to:
>
> 1. Make sure all employees will use the latest up-to-date training
>   material and software version.
>
> 2. Have a central DB able to track employees' activity (this opens up
>   the possibility for extra functionalities like sending a "gentle
>   reminder e-mail" to those who are not taking tests frequently
>   enough, statistics on what topics employees struggle most with,
>   etc...)
>
> 3. Be platform independent.
>
> 5. Save time on developing the GUI (which - done properly - is a very
>   time consuming part of desktop projects).
>
> That said, python is a great tool for web apps too. I personally looked
> a bit into Django (www.djangoproject.com), which is one of the python
> web frameworks and I was impressed by the speed you can prototype a
> fully working application.
>
> As for presenting the training material, for iteration #1 I would
> simply make them available as a download link. But in following
> iteration of the project I would also integrate them with the web (so
> as to make the entire application truly portable. I once used S5 for a
> project. Here you can see a presentation of it that is - coherentely -
> done with the standard presented:
> http://meyerweb.com/eric/tools/s5/s5-intro.html#slide1
> However an alternative I did not experiment with is XOXO, which I read
> has python code examples available (see
> http://microformats.org/wiki/xoxo-sample-code-python)
>
> HTH,
> Mac.
> ___
> 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


[Tutor] Copying Files

2011-06-30 Thread gagnrath
I was using glob and shutil to copy logs from one location to another 
successfully, however, I have run into a snag when trying to copy a directory.  
 Not sure how to fix this.

Current Code is as follows:


for file in glob.glob("/drbd1/monitorcenter/Apps/WEB-INF/*"):   #This line is 
holding up the script due to copying a directory and not a single file
shutil.copy(file, path_2_b_2)

Any ideas?
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Blackjack Betting

2011-06-30 Thread Vincent Balmori

I have been working on another challenge that involves improving the
Blackjack program so the players can wager an amount. If a player loses they
will be removed from the game.  I keep getting the error: “NameError: global
name 'bet' is not defined.” I know I came across this error before in a
previous thread, but I am confused on how to solve this, since I am also
trying to juggle it with inherited methods at the same time. Here is the old
and new file for the blackjack program for comparison:

http://old.nabble.com/file/p31966195/blackjack.py blackjack.py 
http://old.nabble.com/file/p31966195/blackjackbetting.py blackjackbetting.py 
-- 
View this message in context: 
http://old.nabble.com/Blackjack-Betting-tp31966195p31966195.html
Sent from the Python - tutor mailing list archive at Nabble.com.

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] decorators

2011-06-30 Thread Christopher King
It would be cool if their where decorators that modified decorators. I know
its possible, but I can't think of a use.

On Thu, Jun 23, 2011 at 11:05 PM, Steven D'Aprano wrote:

> Robert wrote:
>
>> Is there a good tutorial out there somewhere about decorators? Google
>> doesn't bring up much.
>>
>>
>
> Define "good" :)
>
> I'm interested in what you think about this article:
>
> http://www.artima.com/weblogs/**viewpost.jsp?thread=240808
>
> Personally, I think it's filled with jargon that will be alien to most
> Python coders, but otherwise interesting.
>
> Here's my cheap introduction to decorators...
>
> Before you understand decorators, you have to understand two things about
> Python:
>
> (1) Functions are "first class objects";
>
> (2) and therefore you can write "factory functions".
>
> Everything else is just a bonus.
>
> What I mean by "first class" is best explained by giving an example of the
> opposite, second class objects. In some languages, functions are "special",
> and by special I mean they are more restricted. You cannot (easily, or at
> all) pass a function as an argument to another function, or give it a new
> name. This makes a lot of code hard to write. For instance, you might want
> to create a Grapher application, that lets the user draw the graph of some
> function. The basic algorithm would be something like this:
>
> def grapher(function, low, high, step):
>for x in range(low, high, step):
>y = function(x)
>draw_pixel(x, y)  # draw a pixel on the graph, somehow...
>
> This is easy in Python, but very hard in languages where functions are
> second class. Because they are second class, you cannot pass them as
> arguments:
>
> grapher(math.sin, 0, 100, 1)
>
> is not allowed in some languages, but is allowed in Python.
>
> One consequence of this is the idea of "factory functions" is allowed. You
> can write a function which builds new functions, and returns them:
>
> >>> def factory(x):
> ... def inner(arg):
> ... return arg + x
> ... return inner  # return the function object itself
> ...
> >>> plusone = factory(1)
> >>> plustwo = factory(2)
> >>>
> >>> plusone(23)
> 24
>
>
> Decorators are a special type of factory function. They take as their
> argument a function, and then modify, wrap, or replace the function to
> perform special processing. Because the decorator itself is a function,
> anything you can do in Python, you can do in a decorator. The only
> limitation is that it must take a single argument, expected to be a
> function. (Or a class, in newer versions of Python.) Everything else is up
> to you!
>
> "Decorator syntax" is the special syntax you often see:
>
> @decorator
> def spam():
>pass
>
>
> is syntactic sugar for the longer version:
>
> def spam():
>pass
>
> spam = decorator(spam)
>
>
>
> What are decorators good for?
>
> The most common use is to *wrap* the function so as to eliminate
> boilerplate code.
>
> Suppose you have a bunch of functions that look like this:
>
>
> def func(arg):
>if isinstance(arg, int) and arg > 0:
>arg = min(arg, 1000)
>do stuff
>else:
>raise ValueError('bad argument')
>
> def func2(arg):
>if isinstance(arg, int) and arg > 0:
>arg = min(arg, 1000)
>do different stuff
>else:
>raise ValueError('bad argument')
>
> def func3(arg):
>if isinstance(arg, int) and arg > 0:
>arg = min(arg, 1000)
>do something else
>else:
>raise ValueError('bad argument')
>
> All of the functions go through the same boilerplate at the beginning and
> end, testing for a valid argument, raising an error if not, adjusting the
> argument value... Only the "do stuff" parts are different. This is a lot of
> duplicated code. We can reduce the duplication, making it easier to maintain
> and test, by moving all the common code into one place:
>
>
> def test_argument(func):
>def inner(arg):
>if not (isinstance(arg, int) and arg > 0):
>raise ValueError('bad argument')
>arg = min(arg, 1000)
>return func(arg)
>return inner
>
>
> @test_argument
> def func(arg):
>do stuff
>
> @test_argument
> def func2(arg):
>do different stuff
>
> @test_argument
> def func3(arg):
>do something else again
>
>
> The common code (the boilerplate) is now inside the decorator. The
> decorator takes a function as an argument, wraps it with an inner function
> that calls the common boilerplate code, tests the argument, raises an error
> if needed, and returns the result of calling the unique "do stuff" part.
>
>
> --
> Steven
>
> __**_
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/**mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsu

Re: [Tutor] Trivia

2011-06-30 Thread Christopher King
Just some programming philosophy.

On Fri, Jun 24, 2011 at 3:58 AM, Vincent Balmori
wrote:

>
> "Your whole approach is very fragile in this respect, it only
> takes one small mistake in the data to wreck your program,.
> Somethjing like a config file format would be much more
> robust (and readable) the config reader module would make
> sure you got what you expected back. "
>
> Can you please explain more on what you mean by this?
>
>
> Alan Gauld wrote:
> >
> >
> > "Vincent Balmori"  wrote
> >
> >> It's working fine now with the scoring, but now at the end of the
> >> program
> >> for some reason I get this error message:
> >>
> >
> "/Users/vincentbalmori/Desktop/Python/py3e_source/chapter07/trivia_challenge2.py",
> >> line 27, in next_block
> >>point = int(next_line(the_file))
> >> ValueError: invalid literal for int() with base 10: ''
> >
> > Thats because after the last question you try to read another
> > block and don't check anywhere whether you actually read
> > anything. Your next_block code just assumes there will
> > always be valid data there, but at the end of the file there
> > won't be. You get away with category being blank
> > because replace() doesn't complain. But int() does.
> >
> > Your whole approach is very fragile in this respect, it only
> > takes one small mistake in the data to wreck your program,.
> > Somethjing like a config file format would be much more
> > robust (and readable) the config reader module would make
> > sure you got what you expected back.
> >
> > HTH,
> >
> >
> > --
> > Alan Gauld
> > Author of the Learn to Program web site
> > http://www.alan-g.me.uk/
> >
> >
> > ___
> > Tutor maillist  -  Tutor@python.org
> > To unsubscribe or change subscription options:
> > http://mail.python.org/mailman/listinfo/tutor
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Trivia-tp31917610p31917979.html
> Sent from the Python - tutor mailing list archive at Nabble.com.
>
> ___
> 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


Re: [Tutor] The Card Game

2011-06-30 Thread Alan Gauld


"Vincent Balmori"  wrote

I keep getting a Type Error since for the moment since the
values of the cards cannot be compared due to their
types.


Please send the complete error text sincethat will tell us
where to look etc.

I am thinking of creating a Card_Value class that will give each 
rank
and suit a certain value. If there is also a more elegant way of 
handling

some of the code in the main section that will be welcome.


You can get cards to compare themselves by adding a few
more "magic methods". Then you can do stuff like

if card1 < card2:
   # 
elif card2 > card1:
   # 
else:

The methods you need to create are
__gt__(), __lt__(), __eq__(), __le__(), __ge__()

for


,<,==,<=,>=


operations.

BTW, In your code you have a comparison using = instead of ==.
That will fail.

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


[Tutor] War: The Card Game

2011-06-30 Thread Vincent Balmori

I am working on the card game of war challenge where each player is given a
single card and the highest value wins. I keep getting a Type Error since
for the moment since the values of the cards cannot be compared due to their
types. I am thinking of creating a Card_Value class that will give each rank
and suit a certain value. If there is also a more elegant way of handling
some of the code in the main section that will be welcome.

http://old.nabble.com/file/p31961149/war.py war.py 
-- 
View this message in context: 
http://old.nabble.com/War%3A-The-Card-Game-tp31961149p31961149.html
Sent from the Python - tutor mailing list archive at Nabble.com.

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor