Send data from PC to USB
All microcontrollers have a hardware UART or the possibility of bitbanging one. The easiest way to get some data to a PC would be to add a USB-UART bridge, and then just open the COM/TTY port in python to transfer the data according to a protocol that you define.

USB-UART bridges are supported by all modern operating systems and integrate without issues. 
If you were to design your own method of connecting the microcontroller directly to the USB, it would require you to thoroughly understand the USB protocol, and frankly that is not worth the time required to learn it.

SPI and I2C bridges are available as well, but not as easy to implement.