Re: string.replace doesn't removes ":"

2013-02-12 Thread vduncan80
On Sunday, February 10, 2013 4:36:53 AM UTC-6, Johannes Bauer wrote:
> On 09.02.2013 12:04, Joshua Robinson wrote:
> 
> > Hi *Monte-Pythons*,
> 
> > 
> 
> > x = "this is a simple : text: that has colon"
> 
> > s = x.replace(string.punctuation, "");  OR
> 
> > s = x.replace(string.punctuation, "");
> 
> > print x   # 'this is a simple : text: that has colon'
> 
> > # The colon is still in the text 
> 
> > 
> 
> > Is this a bug or am I doing something wrong ?
> 
> 
> 
> The latter. str.replace() only replaces complete substrings, not single
> 
> character occurences of the given pattern. That is
> 
> 
> 
> "foo".replace("foo", "bar") == "bar"
> 
> "foofoo".replace("foo", "bar") == "barbar"
> 
> "foofoo".replace("fo", "bar") == "barobaro"
> 
> "foofoo".replace("abcdef", "bar") == "foofoo"
> 
> 
> 
> Regards,
> 
> Johannes
> 
> 
> 
> -- 
> 
> >> Wo hattest Du das Beben nochmal GENAU vorhergesagt?
> 
> > Zumindest nicht öffentlich!
> 
> Ah, der neueste und bis heute genialste Streich unsere großen
> 
> Kosmologen: Die Geheim-Vorhersage.
> 
>  - Karl Kaos über Rüdiger Thomas in dsa 

Hello Joshua:

Hopefully you have worked out the issue.  Johannes is right on the money using 
'replace' as shown below.

x = "this is a simple : text: that has colon
s = x.replace(":", "")
print(s)
'this is a simple  text that has colon'

Sincerely,
VDuncan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How would you do this?

2013-02-15 Thread vduncan80
On Thursday, February 14, 2013 5:19:51 PM UTC-7, eli m wrote:
> On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
> 
> > On 14 February 2013 23:34, eli m  wrote:
> 
> > 
> 
> > > I want to make a guess the number game (Which i have), but i want to make 
> > > the computer play the game against itself. How would i do this?
> 
> > 
> 



> > 
> 
> > 
> 
> > Your question would make more sense if you would show your program and
> 
> > 
> 
> > also explain how you would like the output to look when the computer
> 
> > 
> 
> > played itself.
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > Oscar
> 
> This is my code:
> 
> 
> 
> #Guess the number game
> 
> import random
> 
> run = 0
> 
> while run == 0:
> 
> print ("I am thinking of a number between 1 and 100")
> 
> num = random.randint(1, 100)
> 
> num = int(num)
> 
> guesses = 0
> 
> guessestaken = 0
> 
> while guesses == 0:
> 
> try:
> 
> guess = raw_input("Your guess:")
> 
> guess = int(guess)
> 
> guessestaken = (guessestaken) + 1
> 
> guessestaken = int(guessestaken)
> 
> if guess == (num):
> 
> print 'Correct! It took you', int(guessestaken), 'guesses!'
> 
> playagain = raw_input("Do you want to play again?")
> 
> if playagain == "yes":
> 
> guesses = 1
> 
> if playagain == "no":
> 
> run = 1
> 
> if guess > num:
> 
> print ("My number is lower")
> 
> if guess < num:
> 
> print ("My number is higher")
> 
> except TypeError, err:
> 
> print ("Not a valid number")
> 
> 
> 
> I would like it to show the computer guessing the numbers.

Hello.  I think you code is Python 2.7.  My solution uses Python 3 but I can 
help you convert it if the solution is what you are looking for.  My approach 
as to create a class that tries to guess the right number.  This code also 
eliminates raw_input.  I didn't know how important having it respond via 
raw_input is to you.  Code follows:

import random
import sys

class Guesser():
def __init__(self):
self.low = 1
self.high = 100

def getRand(self,x,y):
num = random.randint(x,y) 
return num 
   
def guess(self,guess,boundary):
if boundary == ">":
self.low = guess
elif boundary == "<":
self.high = guess
else:
self.low = 1
self.high = 100
return self.getRand(self.low,self.high)

def playagain(self):
choice = ['Y','N']
return random.choice(choice)
   

run = 0

while run == 0: 
guess=1
guesses=0
guessestaken = 0
comp = Guesser()
num = comp.getRand(1,100) 
result = ""
print ("I am thinking of a number between 1 and 100") 
while guesses == 0: 
guessestaken += 1
try: 
guess = comp.guess(guess,result) # replaces input
except:  
print("Unexpected error:", sys.exc_info()[0]) 
raise
  
print("Your guess:", guess)
if guess == num: 
print('Correct! It took you', guessestaken, 'guesses!') 
guesses = 1
elif guess > num:
print("My number is lower") 
result = "<"
else: 
print("My number is higher") 
result = ">"
print("Do you want to play again?") 
playagain = comp.playagain()# replaces input
print(playagain)
if playagain == "N": 
run = 1

Please let me know if you have questions or would like to discuss this solution 
further.

Cheers!
vduncan



-- 
http://mail.python.org/mailman/listinfo/python-list