On Thu, 14 Jan 2010 07:52:58 -0800 (PST)
chandra <chyav...@gmail.com> wrote:
> Folks,
> 
> I am new to Python and could not find a function along the lines of

Welcome.

> string.ishex in Python. There is however, a string.hexdigits constant
> in the string module. I thought I would enhance the existing modlue
> but am unsure how I should go about it. Specifically, I have attempted
> this much:

You should always test code before posting and post the exact code that
you tested.

> ---cut---
> #! /usr/bin/python
> # -*- coding: utf-8 -*-
> 
> import string
> 
> def ishex(string):

Bad idea to name your variable after a module.  This function fails
because of that.

>     ishex = False
>     for i in strdef ishex(sing:
>         if i in string.hexdigits:
>             ishex = True
>         else:
>             ishex = False
>             break
>     return ishex

After renaming the variable this works but you can simplify it.


> ---cut---

Just return False once you find a non-hex digit.

def ishex(s):
  for c in s:
    if not c in string.hexdigits: return False

  return True

And here are your unit tests.  Every line should print "True".

print ishex('123') is True
print ishex('abc') is True
print ishex('xyz') is False
print ishex('0123456789abcdefABCDEF') is True
print ishex('0123456789abcdefABCDEFG') is False

-- 
D'Arcy J.M. Cain <da...@druid.net>         |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to