Files
freeCodeCamp/curriculum/challenges/english/99-dev-playground/daily-coding-challenges-python/python-challenge-2.md

3.8 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
681cb1b1dab50c87ddb2e51c Python Challenge 2: Base Check 29 python-challenge-2

--description--

Given a string representing a number, and an integer base from 2 to 36, determine whether the number is valid in that base.

  • The string may contain integers, and uppercase or lowercase characters.
  • The check should be case-insensitive.
  • The base can be any number 2-36.
  • A number is valid if every character is a valid digit in the given base.
  • Example of valid digits for bases:
    • Base 2: 0-1
    • Base 8: 0-7
    • Base 10: 0-9
    • Base 16: 0-9 and A-F
    • Base 36: 0-9 and A-Z

--hints--

is_valid_number("10101", 2) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("10101", 2))`);
}})

is_valid_number("10201", 2) should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertFalse(is_valid_number("10201", 2))`)
}})

is_valid_number("76543210", 8) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("76543210", 8))`)
}})

is_valid_number("9876543210", 8) should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertFalse(is_valid_number("9876543210", 8))`)
}})

is_valid_number("9876543210", 10) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("9876543210", 10))`)
}})

is_valid_number("ABC", 10) should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertFalse(is_valid_number("ABC", 10))`)
}})

is_valid_number("ABC", 16) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("ABC", 16))`)
}})

is_valid_number("Z", 36) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("Z", 36))`)
}})

is_valid_number("ABC", 20) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("ABC", 20))`)
}})

is_valid_number("4B4BA9", 16) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("4B4BA9", 16))`)
}})

is_valid_number("5G3F8F", 16) should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertFalse(is_valid_number("5G3F8F", 16))`)
}})

is_valid_number("5G3F8F", 17) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("5G3F8F", 17))`)
}})

is_valid_number("abc", 10) should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertFalse(is_valid_number("abc", 10))`)
}})

is_valid_number("abc", 16) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("abc", 16))`)
}})

is_valid_number("AbC", 16) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("AbC", 16))`)
}})

is_valid_number("z", 36) should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertTrue(is_valid_number("z", 36))`)
}})

--seed--

--seed-contents--

def is_valid_number(n, base):

    return n

--solutions--

def is_valid_number(n, base):
    allChars = "0123456789abcdefghijklmnopqrstuvwxyz"
    newN = n.lower()

    availableChars = allChars[0:base]

    for char in newN:
        if char not in availableChars:
            return False

    return True