Changes

Jump to: navigation, search

OPS435 Python Lab 2

10,849 bytes added, 09:25, 21 January 2020
no edit summary
<font color='red'>
'''** DO NOT USE - TO BE UPDATED FOR CENTOS 8.0 **'''
</font>
= LAB OBJECTIVES =
The :This lab covers will cover the necessary methods to allow a user interaction to interact with programs that we will writea running Python script. The objectives will be  :'''<u>Objectives</u>''' :Write Python code in order to write programs that can take information : :*'''Accept data from the users''' that run a Python script, such as a username or password. The next step in these programs is to use the information that  :*'''Process the user providesinputted data''' using '''Conditional Statements'''. :::This means that the program will completely change how it works behaves based on the input given, an example would be, providing the correct password or providing the wrong password. Finally  :*'''Process the lab will go over the procedures for repitition, this inputted data''' using '''Looping Statements'''.:::Looping (iteration) is the ability for your program to repeatedly run the same code block of codes over and over. An example of this, could be found when you provide the incorrect password to a login page and it responds with, 3 attempts to login remaining. Through these 3 investigations you will learn to use: user input/arguments, if/else/logic, and for/while loops.<br><br>
= INVESTIGATION 1: USER INPUT =
== PART 1 - User Input ==This first part :In this section, you will cover learn how to prompt (ask ) the user running the program python script for input or more informationdata. Though we Although you will not be doing very much with immediately be using the data that the information we provide currentlyuser provided, you will use that data later in later labs this will become a key part of lab to change how you change the way a program Python script worksin different situations.
'''lab2a'''First lets start out with a very basic script. This script will use variables Storing User Input data to print out specific information to the screen. Make the script '''lab2a.pyPython objects''' with the following content.
:'''Perform the following steps:''':#Launch your Centos VM, open your code editor, and a a shell terminal (as a regular user) for executing your code.:#To begin, let's start out with a very basic script. This script will use objects that will display specific values to your terminal. Create the file '''lab2a.py''' in your '''~/ops435/lab2''' directory, containing the following content:<presource lang="python">
#!/usr/bin/env python3
age = 20
print('Hi ' + name + ', you are ' + str(age) + ' years old.')
</presource:#Try running this script inside ipython3 and study the output:<presource>run ./lab2a.py</presource> This Python script is not very useful, : it also gives displays the same output everytime it runsregardless of the number of times that the Python script is run. In ipython3 lets use the <br>The '''input() ''' function is used to get obtain information from the userand store it into an object (also called a variable). Place It is typical to place a question (or hint ) as a argument in the input() function, : this will aid the user in typing in the correct informationdata.<br><br> :#Replace the print() call in your lab2a.py with the following (you can just comment-out the print() call using a '''#''' at the beginning of the line): <presource lang="python">
colour = input("Type in a colour and press enter: ")
Type in a colour and press enter: red</presourceNow print out :#When prompted, type the variable text: '''colourred''' and it should contain the value you entered after the promptpress ENTER.Did anything display? Why not? :#Add another line to your script:<presource lang="python">print(colour)</source>What was displayed?:#Now replace that line with this:<source lang="python">print('The colour I typed in is: ' + colour)</presourceIf you didn't get the colour you typed in returned, try the above steps with the input() function again. Download the check script and check your work. Enter the following commands from the bash shell.<pre>cd ~/ops435/lab2/pwd #confirm that you are in the right directoryls CheckLab2.py || wget matrix.senecac.on.ca/~acoatley-willis/CheckLab2.pypython3 Note what was displayed./CheckLab2.py -f -v lab2a</pre>
Before proceeding, make certain that you identify any and all errors in "lab2a.py". When the check script tells you everything is "ok", you may procede to the next step.''' Practice Storing User Input data '''
:Now it's time to create a new script to prompt the user to enter data and display that data on their terminal. Refer to object name and prompt text information when creating your Python script. Refer to Sample Runs displayed below for exact prompt and output requirements.
:'''Perform the following Instructions:'''
''' lab2b '''Now it's time to create a new script. :# Make a copy of '''lab2a.py''' and call it '''lab2b.py'''. Now modify :# Modify '''lab2b.py''' so that it asks prompts the user for both the value of user's '''name ''' and the value of '''age'''. Use the input() function and store the values in the correct variables. Example output is shown below:
The script should have a Shebang lineThe script should use a variable called "name"The script should use a variable called "age"The script should prompt the user for "Name: "The script should prompt the user for "Age: "The script should store the values in the correct variablesThe script should print the EXACT OUTPUT as shown:'''Input / Output Requirements'''
Sample run 1:::*The script should have a '''Shebang line''':::*The script should use an object called '''name''':::*The script should use an object called '''age''':::*The script should prompt the user for "Name: ":::*The script should prompt the user for "Age: ":::*The script should store the values in the correctly spelled objects (case sensitivity counts):::*The script should print the EXACT OUTPUT as shown (case sensitivity counts)
:::'''Sample run 1:'''<presource>run ./lab2b.py
Name: Jon
Age: 20
Hi Jon, you are 20 years old.
</presource:::'''Sample run 2: '''<presource>run ./lab2b.py
Name: Jen
Age: 25
Hi Jen, you are 25 years old.
</presource>  :::3. Download the check checking script and check your work. Enter Run the following commands from the bash shell.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2b
</presource:::4. Before proceeding, make certain that you identify any and all errors in "'''lab2b.py"'''. When the check script tells you everything is "ok"'''OK''', you may procede to the next step. 
== PART 2 - ARGUMENTS Arguments ==A :An argument is a value data item that is passed to a program or passed to a function that can be used for processing within that program or function. In the previous section , you passed a an argument to the '''input() ''' function. In this section we , you will go over the steps of passing a learn how to pass an argument to your Python script, but this time the , this argument will be passed when we execute your Python script from the bash shell.
In order to read arguments in Python, we will need to import special variables from '''Perform the system. This is done very easily.following steps:'''
:#Use a temporary file for testing your work for this section.:#In order to read arguments in Python, we will need to '''import special objects''' from the system. This is a standard 'library' of code provided by the developers of Python. By issuing '''import sys''', you have loaded code written by another person, each 'library' that gets loaded will give us extra functionality and objects to our program.<prebr><br>ipython3:#Start with the following line to import additional python objects:<source>
import sys
</presourceThis is a standard 'library' of code provided by the developers of Python. By typing 'import sys' we have loaded code written by another person, each 'library' that gets loaded will give us extra functionality in our program.  To inspect this library and look at all that it contains we can use the 'dir()' function. This can be used to inspect any library(and more) looking at all :#Call the following functions and values contained within. note what they do:<pre>dir(sys)</pre> Now don't feel overwhelmed, this will provide a lot of information, but we can also get some hints at the different information this library provides.  <presource lang="python">print(sys.version) # tells us our the version of the python versioncurrently in use
print(sys.platform) # tells us our operating system platform
print(sys.argv) # tells us our argumentsor shell version if issued from shellprint(len(sys.argv)) # tells us the number of command line arguments the user provide issued from shellsys.exit() # will immediately end our the running Python script, ignoring the remaining lines in the Python script when run</presourceThe <br>Instead of using the '''sys.exitinput()' will immediately end '' function to prompt the script on user for data, we can use the line it is called, no other line in '''sys.argv''' <b>list object</b> to store data as a result of running the Python script will ever be runwith arguments. The list object '''sys. This function will be useful later in this labargv''', make sure you write it down in when used within your notesPython script can store the following:<ul><li>'''sys.argv''' - stores all argument items</li><li>'''sys.argv[0]''' - stores the name of the script/program</li><li>'''sys.argv[1]''' - stores the first argument</li><li>'''sys.argv[2]''' - stores the second argument</li><li>etc...</li><li>'''len(sys.argv)''' - gives the number of arguments</li></ul><br>  :#Create a new script called '''~/ops435/lab2/showargs.py''' and place add the following content inside:<presource lang="python">
#!/usr/bin/env python3
print('Print out ALL script arguments: ', arguments)
 
print('Print out the script name: ' + name)
print('Print out the number of argument: ', len(sys.argv))
</presource:#Run the script and examine the outputby running the Python script without and with arguments:<source>./showargs.py./showargs.py testing different arguments./showargs.py argument1 argument2 argument3 argument4</source>
<pre>''' Practice Using Arguments '''run showargs:Now it's time to create a new script, but unlike prompting the user for data, the data (as arguments from running your Python script) will be used instead.pyrun showargsRefer to variable name and prompt text information when creating your Python script.py testing different argumentsrun showargsRefer to Sample Runs displayed below for exact prompt and output requirements.py argument1 argument2 argument3</pre>
The :'sys.argv' contains all arguments, 'sys.argv[0]' contains Perform the name of the script/program, following Instructions:'sys.argv[1]' contains the first argument, 'sys.argv[2]' contains the second argument.
''' lab2c '''Now it's time to create a new script. :#Make a copy of '''lab2b.py''' and call it '''lab2c.py'''. Now modify :#Modify '''lab2c.py''' so that it uses to use the '''sys.argv[1]''' and '''sys.argv[2]' '' functions instead of the '''input() functions''' function (used in your previous ''lab2b.py'' script). Example output is shown below:
The script should have a Shebang lineThe script should import sysThe script should use a variable called "name"The script should use a variable called "age"The script should use sys.argv[1] (first argument)The script should use sys.argv[2] (second argument)The script should store the values in the correct variablesThe script should print the EXACT OUTPUT as shown:::'''Input / Output Requirements'''
Sample run :::*The script should have a '''Shebang line''':::*The script should contain '''import sys''':::*The script should use a variable called '''name''':::*The script should use a variable called '''age''':::*The script should use '''sys.argv[1]''' (first argument):::*The script should use '''sys.argv[2]''' (second argument):::*The script should store the values in the correct variables (including case sensitivity):::*The script should print the EXACT OUTPUT as shown (including case sensitivity)
:::'''Sample run 1:'''<presource>run ./lab2c.py Jon 20
Hi Jon, you are 20 years old.
</presource:::'''Sample run 2: '''<presource>run ./lab2c.py Jen 25
Hi Jen, you are 25 years old.
</presourceThis final sample <br>Note that running '''Sample run 3''' (shown below) will give us a result in an error. This is important to see this, as we will fix it in the next sectionmessage. This error happens if you run the script without any arguments. Since we still try It is important to use them. Lets move forward and leave note that an error such as this can occur, so you can avoid this type of error, until we have when creating Python scripts (explained in the right tools to fix itnext section). Let's continue in this section for now..:::'''Sample run 3: '''<presource>run ./lab2c.py
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
IndexError: list index out of range
</presource>  :::3. Download the check checking script and check your work. Enter the following commands from the '''bash shell'''.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2c
</presource>:::4. Before proceeding, make certain that you identify any and all errors in '''lab2c.py'''. When the check script tells you everything is '''OK''', you may procede to the next step.<br><br>
Before proceeding= INVESTIGATION 2: USING CONDITIONAL STATEMENTS =:In computer programming, make certain that you identify any and all errors in "lab2ccontrol flow statement can be used to change the direction (flow) of a program. The [https://en.py"wikipedia. When the check script tells org/wiki/Flowchart diagram here] may help you everything is "ok"visualize it. In this section, you may procede will focus on LOGIC control flow statements that are used to change the way each script runs, based entirely on input data (either via the next stepinput() function, or command arguments via the list object sys.argv). In this section, we will discuss several LOGIC control flow statements including: IF, and IF/ELIF/ELSE.
= INVESTIGATION 2: = PART 1 - Using IF STATEMENTS Statements ==In computer programming an "if statement" is a condition that executes different code based on whether the condition is True or False. In this section "if statements" will be used to change the way each script runs, based entirely on the output we provide.
== PART 1 - INDENTATION AND :An '''IF LOGIC ==Indentation means to start ''' statement is a line with spaces or tabs before your text. In Python, indentation can control how the program itself runs. From now on be very careful and consistent in the indetation flow statement that you make. Using indentation you can choose what executes or does not execute different code runs as part of based on whether the if statement and what code runs as part of the main programcondition is '''True''' or '''False'''.
In ipython3 lets make some '''Understanding If Statements ''' :'''Perform the following steps''' :#Create a temporary python file for testing things in this section.:#Let's create an if statements and see what happensstatement.<prebr>Try the following 2 lines, indenting the second line:<source lang="python">
if True:
print('This print is apart of the if statement')
</presource>What happened when you ran this code? It is important to note a couple of things with the IF statement:<ul><li> When a if the expression in an IF statement is '''evaluates to True''', it runs the code that is indented underneith underneath it. In this case, we can use the boolean value "True" to make this happen, or test to see if a expression determined true or false.</li><li>However , if the statement is If expression evaluates to '''False ''', then it will not runthe code indented underneath it. Any code not indented under the if statement will perform normallyas the main program and is NOT associated with control flow statement.</li><li>Indentation means to start a line with spaces or tabs before your text. Using '''indentation''' will direct the script what code will run as part of the IF statement and which code will run regardless. Also, using indentation makes it easier for a programmer to identify Control Flow statements. From this point on, be VERY careful and consistent with indentation because it will affect how your code works. </li></ul><preblockquote style="margin-left:35px;">{{Admon/important|style="padding-left:25px"|4 spaces|While python allows some flexibility with your indentation - please don't be creative with it. Always use 4 spaces for each new block. There will be exceptions later on, but start with this now. You may find it helpful to configure your editor to insert for spaces instead of a tab when you press the tab key.}}</blockquote><ol><li value='3'>Try the following 3 lines, indenting the second and third lines, but NOT the fourth line:<source lang="python">
if False:
print('This first print statement will never run')
print('This second print statement will also not run')
print('This print statement will run')
</presourceThese if statements are What do you notice?<br><br>So far, you have been using boolean logic, this means they are either only the '''Boolean values True or False''' for your IF statements. The above code uses if statement Although this can be useful, it can be more practical to state an expression that are ALWAYS set, next lets makes will be evaluated to a if '''True''' or '''False''' Boolean value to be used with control flow statements (referred to as: '''Boolean Logic''').<br><br></li><li>let's create an IF statement that runs under specific conditions.Issue the following code below:<presource lang="python">
password = input('Please enter a secret password')
if password == 'P@ssw0rd':
print('You have succesfully used the right password')
</presourceWhat happened? In the above example we , you are making a comparison between the value we enter int you entered via the '''input() ''' function, which will be in turn, was saved into the '''password variable''' object. The IF statement is using that object (named password), followed by '''==''' which represents '''identical to''', and with followed by the word string ''' 'P@ssw0rd' '''. The Never use '''==' stands for '' to 'compare values since this is equal used to store the value into an object and may not allow IF statement to, we are asking if properly evaluate the password variable expression! Also note that a '''space is equal used to separate arguments with the word IF statement'''. The IF statement tests that expression to see if it is '''True or False''P@ssw0rd'. If this condition that expression is '''True''', it will run the code indented below. On the other hand, if the condition that expression is '''False''', it will not run the code. Try experimenting with different combinations of passwords. We <br><br>If statements can also use this be used to compare numbers. We can do this by using comparison operators (such as: '''==''', '''!=''', '''>''', and '''>=''', '''<''', '''<='''), but we will can also learn a new function here as welluse functions. The function '''len()''' can be used to give us return the number of characters in a word (plus other features). length of words and other variablesobjects. We can also use this the '''len()''' function to give us the number of arguments argumuents provided to our script by using 'len(sys.argv)' and it should return a number. Below we are also using '!='. Which stands for not equal eqal to. <br><br></li> <preli>Try the following program:<source lang="python">
import sys
sys.exit()
</presource>What happened?</li></ol>
This if statement means<blockquote style="margin-left:35px;">{{Admon/important|style="padding-left: IF 25px"|Number of Arguments with len(sys.argv)|If you are calling the '''len()''' function with the '''sys.argv''' argument, the number of arguments(returned will be always be at least '1'. This number will always be one) is NOT EQUAL to tenhigher than the actual number of arguments entered, then since it also counts the condition is True. These can get script name as a little confusing, try experimenting and move on when readyargument.}}</blockquote>
''' Practice Using IF Statements'''
:Now it's time to create a new script. You will be modifying the previous Python script to provide a message if the user did NOT provide any argument when running the script, and abort the script if two additional arguments are not provided. Refer to Sample Runs displayed below for exact prompt and output requirements.
If you are running this in ipython3, :'''Perform the number of arguments will be always be following Instructions:''1'. This number will always be one higher than the actual number of arguments entered. This is because it also counts the script name as a argument.
''' lab2d '''Now it's time to create a new script. :#Make a copy of '''lab2c.py''' and call it '''lab2d.py'''. Now modify :#Modify '''lab2d.py''', add a by adding an if statement right before immediately BEFORE your print statements. This if statement should make sure that lab2d.py is using '2' additional arguments.
The script should have a Shebang lineThe script should import sysThe script should print a usage message IF additional arguments are not givenThe script should exit IF two additional arguments are not givenThe script should use a variable called "name"The script should use a variable called "age"The script should use sys.argv[1] (first argument)The script should use sys.argv[2] (second argument)The script should store the values in the correct variablesThe script should print the EXACT OUTPUT as shown:::'''Input / Output / Processing Requirements'''
Sample run :::*The script should have a '''Shebang line''':::*The script should '''import sys''':::*The script should print a '''usage message''' if zero arguments present, or if not exactly 2 arguments are provided when running the script<br>(NOTE: Use '''sys.argv[0]''' value in this message in case you rename the script at a later date!):::*The script should exit without attempting to do any more work if exactly 2 arguments are not provided when running script:::*The script should use an object called '''name''':::*The script should use an object called '''age''':::*The script should use '''sys.argv[1]''' (first argument):::*The script should use '''sys.argv[2]''' (second argument):::*The script should store the values in the correct objects:::*The script should print the EXACT OUTPUT as shown
:::'''Sample run 1:'''<presource>run ./lab2d.py Jon 20
Hi Jon, you are 20 years old.
</presource:::'''Sample run 2: '''<presource>run ./lab2d.py Jen 25
Hi Jen, you are 25 years old.
</presource:::'''Sample run 3: '''<presource>run ./lab2d.py Usage: ./lab2d.py [name] [age]</presource:::'''Sample run 4: '''<presource>run ./lab2d.py Jon is 20Usage: ./lab2d.py [name] [age]</presource:::3. Download the check checking script and check your work. Enter the following commands from the bash shell.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2d
</presourceBefore proceeding, make certain that you identify any and all errors in "lab2d.py". When the check script tells you everything is "ok", you may procede to the next step. 
== PART 2 - IF/ELSE/ELIF ==There are many ways to use if statements :::4. Before proceeding, make certain that you identify any and all errors in more advanced configurations'''lab2d.py'''. This section will give a few examples and explain themWhen the check script tells you everything is '''OK''', you may procede to the next step.
For the following == PART 2 - Using IF/ELIF/ELSE Statements ==:There are many ways to use IF statements in more advanced configurations. This section will provide a few more examples, try changing the numbers in the variables to get different resultsand provide an explanation of how they work.
Using if statements #For the following examples, try changing the numbers in the objects to get different results.#Create one or more new files for testing the following steps (you won't need to do numeric comparisonssubmit them).#Let's use an IF statement testing a condition of two object values. In this case, if variable object 'a' is greater than variable object 'b', this then print a message, if statements condition will be True:False, do nothing.<presource lang="python">
a = 10
b = 15
if a > b:
print('a is greater than b')
</presourceBut we may want to know if 'a' is less than 'b'. The 'elifWhat happened? Let' statement allows us to string together multiple if s now use an IF/ELSE statement. This new statement 'elif' means: IF the first condition is False, it will check the second condition under 'elif'. HOWEVER, if the first condition is True, it will run <br><br>#Try the following code indented under the first condition and SKIP the 'elif' statement.instead:<presource lang="python">
a = 10
b = 15
if a > b:
print('a is greater than b')
elif a < belse:
print('b is greater than a')
</presourceIn the event that we want to know What happened?<br><br>This is neat, but what if 'a' and is equal to 'b' are equal ? In order to each othermake this work, we could add would need to perform another test! The 'elif' using the statement allows us to string together multiple if statement. This new statement '==elif' equal signsmeans: IF the first expression is False, but instead lets use it will check the second expression under 'elseelif'. The 'else' statement HOWEVER, if the first expression is True, it will run the code indented under it only when all the first expression and SKIP the 'elif'statement. Finally, we include the ELSE statement - in this case, if'a' is equal to 'b' (i.e. fails first test since 'a' is not greater than 'b' and fails second test since 'a'elifis not less than 'b' statements above are False, so they must be equal to check other). <br><br>#Modify your program to looks like this:<presource lang="python"> a = 10b = 1510
if a > b:
print('a is greater than b')
print('a is not greater than b')
print('a is not less than b')
print('Therefore, a is equal to b')</presource>
= INVESTIGATION 3: USING LOOP STATEMENTS =
:In the first two labs, you have been exposed to tools and methods to write powerful Python scripts. In Lab1, this included using using variables. In Lab 2 you learned how to input variables by either prompting the user for input or using data that are arguments containing within a Python script that you run. You also learned about LOGIC control-flow statements in order to make the Python script behave differently based on differing input.
:You will start to learn about the second major category of control flow statements by learning how to repeat a command or a series of commands. Although, you will be learning other scripting techniques, the ability to know how to use variables, CONDITIONAL and LOOPING control-flow statements will allow you to create useful and powerful programs to assist you when managing your computer system (including virtual machines).
= INVESTIGATION 3: LOOPS = PART 1 - Understanding WHILE Loops ==In programming :'''WHILE loops are sequences ''' use a the same type of conditions found in if statements. While the condition is True, the code that are indented under the while loop will be repeated multiple times or until a . When the condition is satisfiedbecomes False the loop will stop repeating.
== PART 1 - WHILE LOOPS ==:'''Perform the following steps'''While loops use :#Create a temporary python file for practicing with the same type of conditions found in if statementsfollowin examples. While the condition :#A '''WHILE''' loop is True, not the code indented under the while most common type of loop will be repeated. When in Python but it's the condition becomes False the loop will stop repeatingsimplest. Below is a program that WHILE loop which will count to 5run five times. Each time the loop is run, it will add one to the count variable, increasing the variables number.:<presource lang="python">
count = 0
while count != 5:
count = count + 1
print('loop has ended')
</presource>Sometimes you know in advance how many times a loop will execute but often you don't. For example loops are extremely useful for '''error-checking''' in order to prevent incorrect data being accepted and causing the script not to perform correctly.<br:#Here is an example of guessing a loop used for error-checking. Run this code and type several incorrect passwords then the correct passwordone to see what happens:<presource lang="python">
password = ''
while password != 'P@ssw0rd':
password = input("Type in a password: ")
print('Congratulations you guessed the correct password!')
</presource:Now it's time to create a new script. You will be creating an entirely new Python script to use a WHILE loop as a determinant loop. This while loop will count down from 10, print each value as it counts down. When it gets to the end it will output 'blast off!' Refer to Sample Runs displayed below for exact prompt and output requirements. :'''Perform the following Instructions:'''
:#Make a new file called '''lab2e.py''', this script will contain a WHILE loop.
:::''' lab2e Input / Output / Processing Requirements'''Now it's time to create a new script. Make a new file called '''lab2e.py''', this script will contain a while loop. This while loop will count down from 10, print each value as it counts down. When it gets to the end it will output 'blast off!'.
:::*The script should have a Shebang line:::*The script should use a variable named timer with a value of 10:::*The script should have a while loop that repeats until timer equals 0:::*The script should print the EXACT OUTPUT as shown
:::'''Sample run:'''<presource>run ./lab2e.py
10
9
1
blast off!
</presource:::2. Download the check script and check your work. Enter the following commands from the bash shell.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2e
</presource>:::3. Before proceeding, make certain that you identify any and all errors in '''lab2e.py'''. When the check script tells you everything is '''OK''', you may proceed to the next step.
Before proceeding, make certain that you identify any and all errors in "lab2d.py". When the check == PART 2 - Using WHILE loops with script tells you everything is "ok", you may procede to the next step.arguments ==
== PART 2 - :You will now learn to make your Python scripts more flexible by using numbers as arguments to be used with WHILE LOOPS WITH ARGUMENTS ==loops. You will learn that arguments used in Python scripts are strings (not numbers) and therefore, cannot be used in Mathematical operations unless they are converted into numbers (like an integer). You will be learning how to use the int() function in order to convert a string into an integer.
:''' lab2f '''Now lets make Perform the same script more intelligent. Make a copy of '''lab2e.py''' and call it 'Following Steps:''lab2f.py'''. Now modify '''lab2f.py''', modify the value of timer to user the first argument provided to the script. This will allow the argument to choose how long the timer is.
NOTE: #Make a copy of '''lab2e.py''' and call it '''lab2f.py'''.:#Modify '''lab2f.py''' to change the initial value of the variable '''count''' to the first argument when running your Python script. '''WARNING:''' When using arguments as number numbers/integers or performing math on arguments you must wrap them in the int() function, for example: number '''count = int(sys.argv[1])'''
The script should have a Shebang lineThe script should import sysThe script should use a variable named timer with the value of int(sys.argv[1]) The script should have a while loop that repeats until timer equals 0The script should print the EXACT OUTPUT as shown:::'''Additional Input / Output / Processing Requirements'''
:::*The script should have a '''Shebang line''':::*The script should '''import sys''':::*The script should use a variable named timer with the value of '''int(sys.argv[1])''' :::*The script should have a while loop that repeats until timer equals 0:::*The script should print the EXACT OUTPUT as shown :::'''Sample run 1:'''<presource>run ./lab2f.py 10
10
9
1
blast off!
</presource:::'''Sample run 2:'''<presource>run ./lab2f.py 3
3
2
1
blast off!
</presource>  :::3. Download the check script and check your work. Enter the following commands from the bash shell.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2f
</presource>:::4. Before proceeding, make certain that you identify any and all errors in '''lab2d.py'''. When the check script tells you everything is '''OK''', you may proceed to the next step.
Before proceeding, make certain that you identify any and all errors in "lab2d.py". When the check script tells you everything is "ok", you may procede to the next step.== PART 3 - Combining WHILE loops with IF statements==
== PART 3 :Let's improve upon your previous shell script to further prevent errors from incorrect input. You can combine LOGIC control- WHILE LOOPS WITH IF STATEMENTS ==flow statements with other LOGIC control-flow statements for more complex programming. For example, if you ran the previous Python script without an argument (i.e. empty string), you would encounter an error since it could not convert an empty string to an integer.
:''' lab2g '''Now lets make Perform the same script EVEN more intelligent. Make a copy of '''lab2f.py''' and call it '''lab2g.py'''. Now modify 'Following Steps ''lab2g.py''', add a if statement to the script that checks to see if a argument was entered. If a argument was entered use that number for the timer, if no argument was entered, timer should equal 3.
NOTE: When using arguments as number or performing math on arguments you must wrap them in the int() function: number = int(sys#Make a copy of '''lab2f.py''' and call it '''lab2g.py'''.argv[1])NOTE: Remember #Modify '''lab2g.py''', add an IF statement to check the number of arguments using len(sysscript that checks to see if a argument was entered.argv) in If a argument was entered use that number for the timer, if statementno argument was entered, then by default, the timer should equal 3.
The script should have a Shebang lineThe script should import sysThe script should use a variable named timer with <blockquote style="margin-left:35px;">{{Admon/important|style="padding-left:25px"|ADDITIONAL WARNINGS|When using arguments as numbers/integers or performing math on arguments you must wrap them in the value of 3 if no arguments are entered The script should use a variable named '''int()''' function:<br><source>timer with the value of = int(sys.argv[1]) if </source>Remember to check the number of arguments are entered The script should have a while loop that repeats until timer equals 0The script should print the EXACT OUTPUT as shownin an IF statement using:<source>len(sys.argv)</source>}}</blockquote>
:::'''Additional Input / Output / Processing Requirements''' :::*The script should have a '''Shebang line''':::*The script should '''import sys''':::*The script should use a variable named '''timer''' with the value of '''3''' if '''no arguments''' are entered :::*The script should use a variable named timer with the value of '''int(sys.argv[1])''' if '''arguments''' are entered :::*The script should have a WHILE loop that repeats until (and not including when) timer equals 0:::*The script should print the EXACT OUTPUT as shown :::'''Sample run 1:'''<presource>run ./lab2g.py 5
5
4
1
blast off!
</presource>
:::'''Sample run 2:'''<presource>run ./lab2g.py 2
2
1
blast off!
</presource>
:::'''Sample run 3:'''<presource>run ./lab2g.py
3
2
1
blast off!
</presource>  :::3. Download the check script and check your work. Enter the following commands from the bash shell.<presource lang="bash">
cd ~/ops435/lab2/
pwd #confirm that you are in the right directory
ls CheckLab2.py || wget matrix.senecachttps://raw.ongithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab2.py
python3 ./CheckLab2.py -f -v lab2g
</presourceBefore proceeding, make certain that you identify any and all errors in "lab2d.py". When the check script tells you everything is "ok", you may procede to the next step. 
:::4. Before proceeding, make certain that you identify any and all errors in '''lab2f.py'''. When the check script tells you everything is '''OK''', you may proceed to the next step.
<br><br>
= LAB 2 SIGN-OFF (SHOW INSTRUCTOR) =
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Output of: <code>./CheckLab2.py -f -v</code>
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Output of: <code>cat lab2a.py lab2b.py lab2c.py lab2d.py lab2e.py lab2f.py lab2g.py</code>
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Lab2 logbook notes completed
<br><br>
:'''Be able to answer any questions about the lab to show that you understood it!'''
 
= LAB REVIEW =
= Practice :# Write a short Python script to ask the user to provide their shoe size at the keyboard, and store the result in an integer object called '''shoeSize'''.:# Add codes to the previous Python script to display the shoe size entered using the same integer object created. (For example: '''Your size size is: 16''').:# What is the purpose of importing special module from your system?:# Write a short Python script to display two arguments from running your Python script.<br>For example if your Python script was called '''myscript.py''' and you issued the command:<br>'''python myscript.py happy afternoon''', you would get the following output:<br><br>The first argument is: happy<br>The second argument is afternoon<br><br>:# What is the purpose of using an '''if''' statement?:# What is the purpose of using an '''if-else''' statement?:# Write a short Python script which terminates the execution of the Python script if there are not exactly 3 arguments given at the command line.:# What is the purpose of an '''if-elif-else''' statement?:# Write a Python script to prompt the user for a course mark (no error checking is required... you can assume that the input will be a valid mark from 0 to 100). Use an if-elif-else statement to convert the mark to a letter grade. For Quizzessimplicity, you don't have to worry about D+, C+, TestsB+, Midterm &amp; Final Exam or A+:# Write a Python script to print the text '''I love Python''' twenty times (on a separate line).:# Identify and list the Python 3 keywords used in this lab.:# Identify and list the Python 3 built-in functions used in this lab. (hint: the functions provided by the __builtins__ module):# '''INTERESTING CHALLENGE:''' Perform a Netsearch to see how you can write Python code to perform error-checking (using a loop) to force a user to enter a number for the shoe size script (created in question #2). There are two things to consider:<ol type="a"><li>A number as opposed to a string</li><li>It has to be an acceptable range from 1 to 20</li></ol>
[[Category:# x:# x:# xOPS435-Python]]
1,760
edits

Navigation menu