The answer is that you have print it yourself, which is what SQL*Plus does.
DDL statements are statements not queries because they do not return data.  They return a success or error condition to the tool that executed them, which can then print any message.  In your case the tool is cx_Oracle.  There isn't a way to get the type (GRANT, CREATE etc) of the statement automatically in cx_Oracle.  Your application can either print a generic message like 'statement executed successfully', or you can extract the first keyword(s) from the SQL statement so you can print a message like SQL*Plus does.
I am currently working with cx_oracle
Here with SELECT statements I am able to use the fetchall() function to get rows.
But how to get the outputs for queries that fall under Data Definition Language (DDL) category.
For example, after executing a GRANT statement with cursor.execute(), the expected output assuming the query is valid would be,
"GRANT executed successfully"
But how do I get this with cx_oracle, Python.
how to get the output of DDL commands Python cx_oracle