[progress Communities] [progress Openedge Abl] Forum Post: Learn How To Program In Python...

Status
Not open for further replies.
G

gracylayla

Guest
Python is an all-purpose programming language that can be used to create desktop applications, 3D graphics, video games, and even websites. It's a great first programming language because it can be easy to learn and it's simpler than complex languages like C, C++, or Java. Even so, Python is powerful and robust enough to create advanced applications, and it's used in just about every industry that uses computers. This makes Python a good language for young and old, with or without any programming experience. Installing Python Before learning Python, you may need to install it. Linux: If you use Linux, Python is already included, but make sure that you have Python 3 specifically. To check which version is installed, open a terminal window and type: python3 -V If that command is not found, you'll need to install Python 3 from your package manager. MacOS: If you're on a Mac, follow the instructions for Linux above to see if you have Python 3 installed. MacOS does not have a built-in package manager, so if Python 3 is not found, install it from python.org/downloads/mac-osx . . Although macOS does have Python 2 installed, you should learn Python 3. Windows: Microsoft Windows doesn't currently ship with Python. Install it from python.org/downloads/windows . Be sure to select Add Python to PATH in the install wizard. Running an IDE To write programs in Python, all you really need is a text editor, but it's convenient to have an integrated development environment (IDE). An IDE integrates a text editor with some friendly and helpful Python features. IDLE 3 and NINJA-IDE are two options to consider. IDLE 3 Python comes with a basic IDE called IDLE. It has keyword highlighting to help detect typos and a Run button to test code quickly and easily. To use it: On Linux or macOS, launch a terminal window and type idle3. On Windows, launch Python 3 from the Start menu. If you don't see Python in the Start menu, launch the Windows command prompt by typing cmd in the Start menu, and type C:\Windows\py.exe. If that doesn't work, try reinstalling Python. Be sure to select Add Python to PATH in the install wizard. Refer to docs.python.org/3/using/windows.html for detailed instructions. If that still doesn't work, just use Linux. It's free and, as long as you save your Python files to a USB thumb drive, you don't even have to install it to use it. Ninja-IDE Ninja-IDE is an excellent Python IDE . It has keyword highlighting to help detect typos, quotation and parenthesis completion to avoid syntax errors, line numbers (helpful when debugging), indentation markers, and a Run button to test code quickly and easily. To use it: Install Ninja-IDE. if you're using Linux, it's easiest to use your package manager; otherwise download the correct installer version from NINJA-IDE's website. Launch Ninja-IDE. Go to the Edit menu and select Preferences. In the Preferences window, click the Execution tab. In the Execution tab, change python to python3. Telling Python what to do Keywords tell Python what you want it to do. In either IDLE or Ninja, go to the File menu and create a new file. Ninja users: Do not create a new project, just a new file. In your new, empty file, type this into IDLE or Ninja: print ( "Hello world." ) If you are using IDLE, go to the Run menu and select Run module option. If you are using Ninja, click the Run File button in the left button bar. The keyword print tells Python to print out whatever text you give it in parentheses and quotes. That's not very exciting, though. At its core, Python has access to only basic keywords, like print, help, basic math functions, and so on. Use the import keyword to load more keywords. Start a new file in IDLE or Ninja and name it pen.py. Warning: Do not call your file turtle.py, because turtle.py is the name of the file that contains the turtle program you are controlling. Naming your file turtle.py will confuse Python, because it will think you want to import your own file. Type this code into your file, and then run it: import turtle Turtle is a fun module to use. Try this: turtle . begin_fill ( ) turtle . forward ( 100 ) turtle . left ( 90 ) turtle . forward ( 100 ) turtle . left ( 90 ) turtle . forward ( 100 ) turtle . left ( 90 ) turtle . forward ( 100 ) turtle . end_fill ( ) See what shapes you can draw with the turtle module. To clear your turtle drawing area, use the turtle.clear() keyword. What do you think the keyword turtle.color("blue") does? Try more complex code: import turtle as t import time t. color ( "blue" ) t. begin_fill ( ) counter = 0 while counter ai : print ( "You win" ) # notice indentation else : print ( "You lose" ) Launch your game to make sure it works. This basic version of your dice game works pretty well. It accomplishes the basic goals of the game, but it doesn't feel much like a game. The player never knows what they rolled or what the computer rolled, and the game ends even if the player would like to play again. This is common in the first version of software (called an alpha version). Now that you are confident that you can accomplish the main part (rolling a die), it's time to add to the program. Improving the game In this second version (called a beta) of your game, a few improvements will make it feel more like a game. 1. Describe the results Instead of just telling players whether they did or didn't win, it's more interesting if they know what they rolled. Try making these changes to your code: player = random . randint ( 1 , 6 ) print ( "You rolled " + player ) ai = random . randint ( 1 , 6 ) print ( "The computer rolled " + ai ) If you run the game now, it will crash because Python thinks you're trying to do math. It thinks you're trying to add the letters "You rolled" and whatever number is currently stored in the player variable. You must tell Python to treat the numbers in the player and ai variables as if they were a word in a sentence (a string) rather than a number in a math equation (an integer). Make these changes to your code: player = random . randint ( 1 , 6 ) print ( "You rolled " + str ( player ) ) ai = random . randint ( 1 , 6 ) print ( "The computer rolled " + str ( ai ) ) Run your game now to see the result. 2. Slow it down Computers are fast. Humans sometimes can be fast, but in games, it's often better to build suspense. You can use Python's time function to slow your game down during the suspenseful parts. import random import time player = random . randint ( 1 , 6 ) print ( "You rolled " + str ( player ) ) ai = random . randint ( 1 , 6 ) print ( "The computer rolls...." ) time . sleep ( 2 ) print ( "The computer has rolled a " + str ( player ) ) if player > ai : print ( "You win" ) # notice indentation else : print ( "You lose" ) 3. Detect ties If you play your game enough, you'll discover that even though your game appears to be working correctly, it actually has a bug in it: It doesn't know what to do when the player and the computer roll the same number. To check whether a value is equal to another value, Python uses ==. That's two equal signs, not just one. If you use only one, Python thinks you're trying to create a new variable, but you're actually trying to do math. When you want to have more than just two options (i.e., win or lose), you can using Python's keyword elif, which means else if. This allows your code to check to see whether any one of some results are true, rather than just checking whether one thing is true. Modify your code like this: if player > ai : print ( "You win" ) # notice indentation elif player == ai: print ( "Tie game." ) else : print ( "You lose" ) Programming the final release The beta release of your dice game is functional and feels more like a game than the alpha. For the final release, create your first Python function. A function is a collection of code that you can call upon as a distinct unit. Functions are important because most applications have a lot of code in them, but not all of that code has to run at once. Functions make it possible to start an application and control what happens and when. Change your code to this: import random import time def dice ( ) : player = random . randint ( 1 , 6 ) print ( "You rolled " + str ( player ) ) ai = random . randint ( 1 , 6 ) print ( "The computer rolls...." ) time . sleep ( 2 ) print ( "The computer has rolled a " + str ( player ) ) if player > ai : print ( "You win" ) # notice indentation else : print ( "You lose" ) print ( "Quit? Y/N" ) cont = input ( ) if cont == "Y" or cont == "y" : exit ( ) elif cont == "N" or cont == "n" : pass else : print ( "I did not understand that. Playing again." ) This version of the game asks the player whether they want to quit the game after they play. If they respond with a Y or y, Python's exit function is called and the game quits. More importantly, you've created your own function called dice. The dice function doesn't run right away. In fact, if you try your game at this stage, it won't crash, but it doesn't exactly run, either. To make the dice function actually do something, you have to call it in your code. Add this loop to the bottom of your existing code. The first two lines are only for context and to emphasize what gets indented and what does not. Pay close attention to indentation. else : print ( "I did not understand that. Playing again." ) # main loop while True : print ( "Press return to roll your die." ) roll = input ( ) dice ( ) The while True code block runs first. Because True is always true by definition, this code block always runs until Python tells it to quit. The while True code block is a loop. It first prompts the user to start the game, then it calls your dice function. That's how the game starts. When the dice function is over, your loop either runs again or it exits, depending on how the player answered the prompt. Using a loop to run a program is the most common way to code an application. The loop ensures that the application stays open long enough for the computer user to use functions within the application.

Continue reading...
 
Status
Not open for further replies.
Top