Skip to main content

Numeral systems, binary, roman, integer

Project description

https://travis-ci.org/RedXBeard/RomanNumbers.svg?branch=master

Roman or Integer numbers can be converted into eachother an additionally representation of each one of them into binary format.

Installation

$ pip install RomanAlphabet

Usage

To represent an integer value into roman numeral system;

: from romanalphabet.romanalphabet import RomanAlphabet
: rr = RomanAlphabet("4785")
: rr.convert_to_roman()
: 'MMMMDCCLXXXV'

or into binary;

...
: rr.convert_to_binary()
: '1001010110001'

numbers can also be added or mutiplied into one another, as following; result could be three type of numeric format; “decimal”, “binary” or in “roman”;

: RomanAlphabet.addition("roman",1)
: 'I'
: RomanAlphabet.multiply("roman",1,2,3)
: 'VI'
: RomanAlphabet.multiply("decimal",1,2,3)
: 6
: RomanAlphabet.addition("binary",1,2,3)
: '110'
: RomanAlphabet.multiply("decimal",7,4,2,4,2,3)
: '10101000000'

If first argument not one of <code>decimal</code> <code>roman</code> <code>binary</code> then the following error will be displayed

: RomanAlphabet.multiply("deciaml",7,4,2,4,2,3)
---------------------------------------------------------------------------
InvalidInputError                         Traceback (most recent call last)
<ipython-input-6-bbd7bcac2f3a> in <module>()
----> 1 RomanAlphabet.multiply("deciaml",7,4,2,4,2,3)

/Users/denizci/.virtualenvs/RomanAlphabet/project/RomanNumbers/romanalphabet/romanalphabet.py in multiply(returned_base, *args)
    172         except TypeError:
    173             raise InvalidInputError, \
--> 174                 u"first input must be one of 'decimal', 'binary' or 'roman'"
    175         # Decimal multiplication is used for multipling one into another
    176         mutiplied = reduce(lambda x,y: int(RomanAlphabet(x).convert_to_int()) *\

InvalidInputError: first input must be one of 'decimal', 'binary' or 'roman'

Also roman numbers can be an input and represented with integer and binary format. If anything will goes wrong then for input as an example, none roman numerics if given then an understandable error will displayed.

: rr = RomanAlphabet("CVII")
: rr.convert_to_int()
: 107
: rr.convert_to_binary()
: 1101011
: rr = RomanAlphabet("MXXCVII")
---------------------------------------------------------------------------
InvalidInputError                         Traceback (most recent call last)
<ipython-input-4-928ae041fe2c> in <module>()
----> 1 rr = RomanAlphabet("MXXCVII")

/Users/barbaros/.virtualenvs/RomanAlphabet/project/RomanNumbers/romanalphabet/romanalphabet.py in __init__(self, input)
     21             if not result:
     22                 raise InvalidInputError, \
---> 23                         "Input has unqualified chars; '%s'" % message
     24
     25     @staticmethod

InvalidInputError: Input has unqualified chars; 'MXXCVII'
: rr = RomanAlphabet("CTII")
---------------------------------------------------------------------------
InvalidInputError                         Traceback (most recent call last)
<ipython-input-5-9cb900ee7522> in <module>()
----> 1 rr = RomanAlphabet("TVII")

/Users/barbaros/.virtualenvs/RomanAlphabet/project/RomanNumbers/romanalphabet/romanalphabet.py in __init__(self, input)
     21             if not result:
     22                 raise InvalidInputError, \
---> 23                         "Input has unqualified chars; '%s'" % message
     24
     25     @staticmethod

InvalidInputError: Input has unqualified chars; 'T'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

RomanAlphabet-1.2.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file RomanAlphabet-1.2.tar.gz.

File metadata

  • Download URL: RomanAlphabet-1.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for RomanAlphabet-1.2.tar.gz
Algorithm Hash digest
SHA256 b9be5649080e80e64192b2deb773bb8016a457b36baeda1ee1bcab6ce7d21f0f
MD5 0888517dc0eb935850256fd5db3fd241
BLAKE2b-256 8bbff19066b24df508dd71eb951b64a826dac87875d87859014ac7e06267de75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page