def create_table(self, table_name, fail_on_exist=False, timeout=None):
_validate_not_none('<STR_LIT>', table_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT:POST>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = '<STR_LIT>'<EOL>request.query = {'<STR_LIT>': _int_to_str(timeout)}<EOL>request.headers = {<EOL>_DEFAULT_CONTENT_TYPE_HEADER[<NUM_LIT:0>]: _DEFAULT_CONTENT_TYPE_HEADER[<NUM_LIT:1>],<EOL>_DEFAULT_PREFER_HEADER[<NUM_LIT:0>]: _DEFAULT_PREFER_HEADER[<NUM_LIT:1>],<EOL>_DEFAULT_ACCEPT_HEADER[<NUM_LIT:0>]: _DEFAULT_ACCEPT_HEADER[<NUM_LIT:1>]<EOL>}<EOL>request.body = _get_request_body(_convert_table_to_json(table_name))<EOL>if not fail_on_exist:<EOL><INDENT>try:<EOL><INDENT>self._perform_request(request)<EOL>return True<EOL><DEDENT>except AzureHttpError as ex:<EOL><INDENT>_dont_fail_on_exist(ex)<EOL>return False<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self._perform_request(request)<EOL>return True<EOL><DEDENT>
Creates a new table in the storage account.

:param str table_name:
    The name of the table to create. The table name may contain only
    alphanumeric characters and cannot begin with a numeric character.
    It is case-insensitive and must be from 3 to 63 characters long.
:param bool fail_on_exist:
    Specifies whether to throw an exception if the table already exists.
:param int timeout:
    The server timeout, expressed in seconds.
:return:
    A boolean indicating whether the table was created. If fail_on_exist 
    was set to True, this will throw instead of returning false.
:rtype: bool