You'll build a program using Python to execute methods in a smart contract programmatically, and we call this program a decentralized application. So, there's a smart contract, and there's a decentralized application. A smart contract written with the Vyper or Solidity programming languages lives in an Ethereum blockchain. This means that if you deploy your smart contract to the Ethereum production blockchain, the bytecode of your smart contract is written in every Ethereum node. So, if we have 10,000 Ethereum nodes in this world, your smart contract is duplicated 10,000 times.
However, a decentralized application doesn't live in Ethereum blockchain. It lives in your computer, in your neighbor's computer, in a cloud, but it does not live on the blockchain, and it does not have to be duplicated all over the world...