[Tutor] More Function Questions (Joseph Q.)

Max Noel maxnoel_fr at yahoo.fr
Sun Apr 17 19:12:32 CEST 2005


On Apr 17, 2005, at 17:29, Joseph Quigley wrote:

> So what do you use the
> def bar(x, y):
> 	return x + y
>
> bar(4, 5)
>
> functions for? (I just need a simple example)

	Whenever you have something that you may want to do more than once 
and/or in more than one place in your program. Here's a small example: 
a dice-rolling function. Say you're writing a program to automate some 
part of a roleplaying game. At some point you'll want to roll dice. So 
instead of writing the code to do that every time, you just call the 
rollDice function, supplying the number and type of dice you want to 
roll. If you need to roll 2D6, just call rollDice(2, 6).



#!/usr/bin/env python

import random

def rollDice(numDice, numSides):
     dice = [random.randint(1, numSides) for i in range(numDice)]
     return dice



	Here it is in action:

 >>> rollDice(2, 6)
[1, 4]


	Note that rollDice itself calls functions: the randint function from 
the random module, and the built-in range function. (it also uses a 
list comprehension, but that's another topic)

-- Max
maxnoel_fr at yahoo dot fr -- ICQ #85274019
"Look at you hacker... A pathetic creature of meat and bone, panting 
and sweating as you run through my corridors... How can you challenge a 
perfect, immortal machine?"



More information about the Tutor mailing list