Jan-31-2017, 09:02 AM
I need to write program that checks if a word supplied as the argument is an Isogram. An Isogram is a word in which no letter occurs more than once.
Create a method called is_isogram that takes one argument, a word to test if it's an isogram. This method should return a tuple of the word and a boolean indicating whether it is an isogram. If the argument supplied is an empty string, return the argument and False: (argument, False). If the argument supplied is not a string, raise a TypeError with the message 'Argument should be a string'
This is the code i created
NameError Global name is_isogram not defined.
kindly help
Create a method called is_isogram that takes one argument, a word to test if it's an isogram. This method should return a tuple of the word and a boolean indicating whether it is an isogram. If the argument supplied is an empty string, return the argument and False: (argument, False). If the argument supplied is not a string, raise a TypeError with the message 'Argument should be a string'
This is the code i created
def is_isogram(word): if type(word) == str: for i in word: if word.count(i) >1 or word == "": return (word, False) else: return (word, True) else: raise TypeError ("'{}' should be a string" .format(word))And this is the test code
from unittest import TestCase class IsogramTestCases(TestCase): def test_checks_for_isograms(self): word = 'abolishment' self.assertEqual( is_isogram(word), (word, True), msg="Isogram word, '{}' not detected correctly".format(word) ) def test_returns_false_for_nonisograms(self): word = 'alphabet' self.assertEqual( is_isogram(word), (word, False), msg="Non isogram word, '{}' falsely detected".format(word) ) def test_it_only_accepts_strings(self): with self.assertRaises(TypeError) as context: is_isogram(2) self.assertEqual( 'Argument should be a string', context.exception.message, 'String inputs allowed only' )The code runs well but when I want to test it against the test code. It gives me the error code
NameError Global name is_isogram not defined.
kindly help