Changes

Jump to: navigation, search

OPS435 Python Lab 1

5,133 bytes added, 15:32, 9 May 2019
LAB OBJECTIVES
= Lab Preparation LAB OBJECTIVES =
== Purpose/Objectives ==:In this lab, you will install a current distribution of Linux in a Virtual Machine on your external SSD. You will do all of your future work within this VM (including quizzes!). You will then setup your Python scripting environment on your host machine, including the setup the of '''python''' libraries and also the setup of a user-friendly interactive Python environment called '''ipython'''. You will also install additional framework tools (such as '''git''', '''vim''', and '''tmux''') to be used in later labs.
Selecting:After selecting an appropriate text editor to use, installingthen you will start to create '''Python''' scripts to learn basic operations such as: '''printing text''', '''using objects''', and setting up your Linux Distribution environment. Learning basics of interacting with pythonperforming '''math operations'''.<br><br>
= Investigation INVESTIGATION 1 - Installing Linux : INSTALLING LINUX VM=
=== Part PART 1 - Choosing Installing Your Linux Distribution ===
Since Python runs independently regardless <!-- Try to use tables and simplify the layers of the Linux distribution, WIKI to make top links less verbose to students --> :Centos 7 - release 1810 will be used for this course. The purpose for this is to allow you have some flexibility of which Linux OS to use. Below is a table displaying consistent and stable '''RedHat''' based OS, and to lower the characteristics amount of the Centos vs Fedora distributions and related Python packagesnew linux distros that you need to learn.
=== Centos 7 ===: Most of you will likely use the school's Windows machines with the Vmware hypervisor. It is also possible to use your own computer, but check with your professor before you do that.
The stable version of :Centos 7 - release 1151 will be chosen(tested) to be supported comes with python 2.7, for this coursewe will be primarily using Python3. This is to keep the ops stream on red hat based systemsHowever, lower the amount of new linux distros that need to be learned by studentsnot practicing python 2. This should 7 would be the default choice for this coursea mistake, as it allows for the course to run longer before getting outdated with new software since so many programs and operating systems still depend on Python2. It is recommended that students note general improvements/differences in Python2 and updatesPython3.
==== Python Version ====
:'''<u>Centos 7 comes with python 2.7, which means that it is not optimal out for the box for teaching this course. However not teaching python 2.7 would be a mistake since so many programs and operating systems still depend on python 2. It would be good to note some changes and encourage new work to be done in python3 while paying attention to specific projects that work only with python 2.VM Details / Minimum Requirements:</u>'''
==== ::*'''Name:''' centos7::*'''Boot media / Installation ====:''' CentOS7 Full Install DVD:::*Download at Seneca College: CentOS 7 Full Install DVD (image file): http://belmont.senecacollege.ca/pub/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.isoInstall the latest graphical version of Centos :::*Download outside Seneca College: http://mirror.csclub.uwaterloo.ca/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso::*'''Disk space:''' 50GB ::*'''CPUs:''' 4 (Number of processors: 1, Number of cores per processor: 4)::*'''Internal Memory:''' 8GB::*'''Environment:''' GNOME Desktop
<!--==== Environment Setup ====
-->
=== Fedora ===
 
Fedora will always be the slightly harder distribution to support for a course, so it would be great to have a alternative that is stable. The Fedora distribution has a much larger set of packages throughout its repositories, while this is usually not advantageous for a server context, it can work very well with developers. As students write code they may want more customized environments and coding applications, some of these applications may be harder to get on a server distribution. The other benefit to using Fedora is gaining experience using newer software, by practicing with newer software, students will be exposed to changes they will see in much later Centos releases.
 
==== Python Version ====
 
The most recent version of Fedora is a great pick for python development since they've switched the default python installed to python3, which is primarily what this course is about. However,this may cause issues as we get to Ansible or Openstack so we will have to cover the differences between python2 and python3 including a python2 installation on Fedora.
 
==== Installation ====
 
Install the latest graphical version of Fedora.
== Part 1 - Lab Check lab0a ==:'''Perform the following steps:'''
This :#Regardless of the Linux distribution that is used for this course is designed with a unit testing suite, which can these lab will be used using and referring to the current version of '''CentOS 7''' (Graphical Desktop) for our main Linux machine. When creating your VM, refer to look at the scripts '''Details / Minimum Requirements''' section above for assistance. :#Install CentOS 7 VM selecting the default partitions. When you have finished the installation of CentOS 7, you write may proceed to the next step.<blockquote style="margin-left:35px;">{{Admon/important|style="padding-left:25px"|Unit Feedback Scripts|Each '''Part''' (within an 'Investigation) is referred to as a '''Unit'''. Each Unit will require that the student download and give run a '''Unit Feedback Script''', which provides the OPS435 student "real-time feedback" of their completed work. <br>This feedback is not considered to be perfector fool-proof; however, however it may offer some provide feedback (hints if you get ) in case a student gets stuck with a or experiences an errorwhen performing administration tasks or when creating their Python scripts. It These unit feedback scripts can also be used to make sure you are confirm that the student's Python script is on the right track, and show provide a consistent record of their Python scripting progressthroughout their labs.}}</blockquote>
Download the check script. Enter <!--<ol><li value="3" style="margin-left:25px;">Issue the following commands from (as a regular user) in order to setup, download and run the first unit feedback script:<br><source lang="bash shell."><pre>mkdir -p ~/ops435/lab1/
cd ~/ops435/lab1/
pwd # <-- i.e. confirm that you are in the right correct directoryls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.py
python3 ./CheckLab1.py -f -v lab0a
</presource></li<li style="margin-left:25px;">Before moving on to the next step make sure you identify any and all errors in "lab1a.py"from the check script. <br>When the check script tells you everything is "ok" for "lab0a", you may proceed to the next step. == Part 2 - Environment Setup == It's time to install applications and setup your environment.  The first step is to update our entire system. Fedora uses a new package manager, it is based on yum, but has newer code, more maintainers and many improvements. It should work very similarly to the yum command, but check the man pages if you get confused.<prebr><br></li>dnf update</preol>-->
Lets start installing applications we need, first === PART 2 - Setting up Your Python version 3 and version 2.<pre>dnf install python3 python2 # Install python3.5 and python2.7</pre>Environment For Labs ===
This next couple applications are tmux In order to learn how to use python on your Linux machine, it is important to setup your Linux environment and screen. They are referred learn how to as terminal multiplexersinteract with a Python shell. If you plan to spend The following should be done on a lot of time in terminal as the terminal, this powerful tool will help you get it donesuperuser (i.e. Lets install it and plan to use it laterroot).<pre>dnf install screen tmux && ln -s /usr/bin/true /etc/sysconfig/bash-prompt-screen</pre>
We will set our hostname to the Linux Distribution we are using.
<pre>
hostnamectl set-hostname fedora24 # Set hostname to distribution-name
</pre>
Installing vim(Vi IMproved) will give us syntax highlighting and allow for advanced customization for terminal editing.<pre>dnf install vim-common vim-enhanced # Install vim </pre>:'''Perform the following steps:'''
Python pip :#The first step is a package manager specifically to update your entire system. <source lang="bash">yum update</source>:#Install extra packages for enterprise linux:<source lang="bash">yum install epel-release </source>:#Next install applications that we required, first Pythonversion 3 and version 2:<source lang="bash">yum install python34 python34-devel # Install python3.4 and python3.4 development librariesyum install python python2-devel # Install python2.7 and python2. While it is usually not recommended 7 development libraries</source>:#We now need to create a link to python3.4:<source lang="bash">cd /binln -s python3.4 python3</source>:#Next, you will install software outside a couple of dnf or yum, sometimes the only way useful applications called '''tmux''' and '''screen'''. They are referred to as '''terminal multiplexers'''. If you plan to get spend a specific or latest version lot of time in the terminal, this powerful tool will be through piphelp you get it done. Lets install it and plan to use it later:<source lang="bash">yum install screen tmux && ln -s /usr/bin/true /etc/sysconfig/bash-prompt-screen<pre/source>dnf :# Set your hostname to the Linux Distribution we are using in case you did not set it correctly during the install pythonprocess:<source lang="bash">hostnamectl set-pip python3hostname centos7 # Set your hostname to distribution-pip # Install pipname</presource>
Git is ::You will be required to use a version control system text editor in order to create and modify your Python scripts. There are many text editors that allows you provide various features to track any changes made to files become more comfortable and programsproductive during your Python coding sessions. The benefit to using git ::Below is primarily found when ita listing of several common text editors and their features.<blockquote style="margin-left:35px;">{{Admon/tip|style="padding-left:25px"|Selecting an Appropriate Text Editor|'''s used with multiple people, sharing and working on code togetherGeany''' (recommended text editor for labs)<br>A simple graphical text editor for developers. While that It is not how we will be using it available in this course, you may find some benefits in using it the CentOS package repositories.<br>'''Vim'''<br>vim is a powerful text editor for managing multiple versions system administration and programming tasks. All of the same program or for backing up your code onto shortcuts and commands you've learned over the internetyears will help you edit programs efficiently. Check out bitbucket <br>'''Sublime'''<br>Another powerful and popular text editor designed for a programming. Is not free private code repositoryor open source.<pre>dnf install git # Install git command line tool}}</preblockquote>
IPython will be one <ol><li value=6" style="margin-left:25px;">'''Python pip''' is a package manager specifically for Python. While it is usually not recommended to install software outside of '''dnf''' or '''yum''', sometimes the tools we only way to get a specific or latest version will use the mostbe through pip:<source lang="bash">yum install python-pip # Install python2. Lets 7 pipyum install itpython34-pip # Install python3. You will learn more about it in 4 pip</source></li><li style="margin-left:25px;">Upgrade python34-pip with the next sectionfollowing command:<source lang="bash">pip3.4 install --upgrade pip<pre/source></li>dnf <li style="margin-left:25px;">Issue the following command to install '''git''':<source lang="bash">yum install python-ipython python3-ipython git # Install enhanced interactive pythongit command line tool</presource></li></ol>
<blockquote style==Part 2 "margin- Lab left:35px;">{{Admon/tip|What is a Git?| '''Git''' refers to a '''version control system''' that allows you to track any changes made to files and programs. Our primary use for git in this course will be for backup onto to the internet. Check lab0b ==out '''bitbucket''' for a free private code repository.}}</blockquote>
<preol><li value="8" style="margin-left:25px;">IPython will be one of the tools we will use the most. Lets install it. You will learn more about it in the next section:<source lang="bash">yum install python-ipython # Install ipython for python2.7pip3.4 install ipython # Install ipython for python3.4</source></li><li style="margin-left:25px;">Exit from the superuser shell to your regular user shell and issue the following commands to check your work for this section:<source lang="bash">mkdir -p ~/ops435/lab1/
cd ~/ops435/lab1/
pwd #confirm that you are in the right directory
ls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.pypython3 ./CheckLab1.py-f -v lab0a
python3 ./CheckLab1.py -f -v lab0b
</presource></li><li style="margin-left:25px;">Before moving on to the next step, make sure you identify and correct any and all errors in "lab0b" output. When the check script tells you everything is "ok", you may proceed to the next step.</li></ol><br><br>
Before moving on to the next step make sure you identify any and all errors in = INVESTIGATION 2: USING THE "lab1a.pyIPYTHON". When the check script tells you everything is "ok", you may procede to the next step.CLI =
:'''IPython''' is an interactive environment that allows us to run python code line by line as we write it. This will also act like a bash shell prompt allowing users to enter a limited number of Bash shell commands. You will notice this by seeing an [IN] prompt where to enter commands and an [OUT] prompt that will display output from issued commands. We will start creating scripts out of the code within this '''IPython''' environment.
<blockquote style="margin-left:35px;">{{Admon/important|style="padding-left:25px"|ipython and python|[https://plot.ly/python/ipython-vs-python/ What is the difference between '''python''' and '''ipython'''?] Please note that in later labs, you can use either '''python''' or '''ipythone''' as the interactive python shell.}}</blockquote>
=== PART 1 - Common Ipython Commands and Features ===
== Part 3 - Text Editors == Using Magic Functions ====
There are a wide range of text editors for the :Lets begin by running some python language and just about any of them will do. As long as you get basic syntax highlighting and automatic indenting out of code in the application you are good to goipython interactive shell. This section will go over is a number of different text editorsadvanced python shell, showing off a few different text editors so students may find their favouritesimilar to the bash shell that you have been using throughout the Linux courses. There are no wrong answers here, give them all a try and use your favouriteThroughout these labs the term command can also refer to these "magical functions".
=== Vim Editor ===:'''Perform the following steps:'''
As a system administrator :#Make sure you have probably spent a ton of time inside vim're using your regular user login and not using the root user for the following section. Well vim is just as powerful and useful when you get to programming:#To access the '''ipython''' shell, all issue the following command:<source>ipython3</source>Now we are now inside the shortcuts and IPython environment. We can run some basic bash commands within this shell by issuing IPython magic functions. <br>:#Lets try a few commands youout now:<source> ls pwd cd ~/ ls</source>'''Remember:'''ve learned over the years will help You are not using Python here, instead, these are aliases for Bash shell commands that IPython gives you edit programs efficientlyaccess to. On top of what What you already knoware actually using is bash, it might be time to customize vim a little more for programming. Vim can actually be modified to become a full programming environment with but not all bash commands are available in the features you yould expectIPython environment.<br><br>:#Lets find out which ones are available, type the following command into the IPython shell:<source>=== Atom Editor === alias "A hackable text editor for the 21st Century". This text editor is </source>We should now have a powerful tools that comes with everything your need right out list of all the boxbash commands available in IPython. Atom allows :#Lets setup a directory structures for deep customization from everything from complete functionality changes completing and organizing labs. These should be the locations to just changing the theme. Definitely worth checking out, especially for python developmentstore your lab scripts. <source> mkdir ~/ops435/lab2 mkdir ~/ops435/lab3 mkdir ~/ops435/lab4 mkdir ~/ops435/lab5 mkdir ~/ops435/lab6 mkdir ~/ops435/lab7=== Sublime === mkdir ~/ops435/lab8</source>Sublime is a popular text editor with tons of customizations :#If you are interested in finding more information about other magic functions in IPython, then within the IPython shell, and themes.enter the following (press the letter '''q''' to exit this function):<source> magic=== More ===</source>
Suggest some more:::This resource will appear OVERWHELMING (a huge amount of information)! As we move throughout this course, you will slowly use different magic functions from here, but we will never use all of them. They cover a huge range of different tasks, while we are writing code, allowing us to interactively inspect the Python we are writing and running. Lets move on for now.
<ol><li value="6" style= Part 3 "margin- Lab Check lab0c ==left:25px;">Issue the following command to exit your ipython session:<source> exit</source></li>:In the future see if '''ctrl-d''' works instead of issuing the exit command to quit the ipython shell.</li>
<preli style="margin-left:25px;">Perform the following steps to evaluate this unit. Run these check scripts regularly as you work through the labs, they may give you hints if you get stuck.</li>:<source lang="bash">
cd ~/ops435/lab1/
pwd #confirm that you are in the right directory
ls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.py
python3 ./CheckLab1.py -f -v lab0c
</presourceBefore moving on to the next step make sure you identify any and all errors in "lab1a.py". When the check script tells you everything is "ok", you may procede to the next step.    = Investigation 2 - IPython = IPython is an interactive environment that allows us to run python code line by line as we write it. This will function almost exactly like a bash shell prompt, enter a command and recieve the output back. However the commands that we will be running are lines of python code. Using this method we will start creating scripts out of the code we build in the IPython environment.  == Part 1 - Using IPython == === Using Magic Functions === Lets start with trying to run some python code in a interactive shell. This is a advanced python shell, similar to the bash shell that you have been using throughout the linux courses.  To get into the ipython shell type: <pre>ipython3</preolNow we are inside the IPython environment. We can run some basic bash commands in here, this is done through by using IPython magic functions.  Lets try a few commands out now:<pre>%ls%pwd%cd ~/%ls</prebrNow hold on. You are not using Python here. These are aliases, that IPython gives you access to. What you are actually using is bash, but not all bash commands are available in the IPython environment. Lets find out which ones are available, type the following command into the IPython shell: <prebr>%alias</pre> We should now have a list of all the bash command available in IPython. Shortly we will go over how to add new bash commands into this environment, but you must remember, these are only here to assist in your python scripting, we are not here to learn bash commands. Next lets add a new bash command that seems to be missing from this list: <pre>%alias vim vim</pre> The vim command will give us our much needed syntax highlighting, while we are editing scripts from within the IPython environment. These magic %alias functions do not save in between sessions, this creates a problem since you would have to create them every time you start IPython. This will create a error. <pre>exitipython3vim</pre> You should be seeing an error telling you invalid syntax. This is happening because we need to create a config file to make this alias persist inbetween sessions. Exit your current IPython session:<pre>exit</pre> Create a new file and add the following content to it: <pre>vim ~/.ipython/profile_default/startup/00-alias.ipy <pre> Place our alias inside:<blockquote>%alias vim vim</blockquote> Save and quit the file. Now lets return to our IPython shell and confirm that our alias is available right away. <pre>ipython3%vim</pre> At this point vim should open successfully and you should now understand how to create new IPython aliases and store them persistently. Exit vim now and head back to the IPython shell.  Lets setup a directory structures for completing and organizing labs. These should be the locations to store your lab scripts. <pre>%mkdir ~/ops435%mkdir ~/ops435/lab1%mkdir ~/ops435/lab2%mkdir ~/ops435/lab3%mkdir ~/ops435/lab4%mkdir ~/ops435/lab5%mkdir ~/ops435/lab6%mkdir ~/ops435/lab7%mkdir ~/ops435/lab8</pre> If you are interested in finding more information about magic functions in IPython, try entering the IPython shell and typing the following:<pre>%magic</pre> This should show you a OVERWHELMING amount of information, as we move through the course we will slowly use different magic functions from here, but we will never use all of them. To be continued. Magic functions than just running bash commands. They cover a huge range of different tasks, while we are writing code, allowing us to interactively inspect the Python we are writing and running. Lets move on for now. == Part 1 - Lab Check lab1a ==
<pre>cd ~/ops435/lab1/pwd #confirm that you are in the right directoryls CheckLab1.py || wget matrix.senecacollege.ca/~acoatley-willis/CheckLab1.pypython3 ./CheckLab1.py -f -v lab1a</pre>= INVESTIGATION 3: WRITING PYTHON SCRIPTS =
Before moving on to the next step make sure you identify any :In this investigation we will start writing our very first python scripts. These will be very basic and help us practice syntax and all errors in "lab1a.py". When the check script tells you everything is "ok"foundation skills, you may procede such as: outputting text to the next stepscreen, storing data inside objects, and using math operators.
<blockquote style="margin-left:35px;">{{Admon/important|style="padding-left:25px"|Object and Variable|The terms '''object''' and '''variable''' are used to refer to a data item in computer programming. The term '''variable''' are mostly used in 3rd generation programming/scripting languages (e.g. bash) while the term '''object''' is preferred in object oriented programming/scripting languages like Python. In the context of Python programming/scripting, When you see the term '''variable''' in the lab instructions, it can be replaced by the term '''object'''.}}</blockquote>
= Investigation 3 - Writing a Python Script =
During this investigation we will start writing our very first python scripts. These will be very basic and help us practice syntax and foundational skills, such as: outputing text to the screen, storing data inside variables, and using math operators.=== PART 1 - Common Introductory Python Functions ===
== Part 1 - Printing ==Creating the introductory "Hello World" Script====
Lets start IPython interpreter You will learn to create a simple python script in this section. This python script will just print the text "hello world". The "hello world" an old traditional first program students usually are taught to create, which is based on the first programming example from the first C programming text co-written by Dennis Ritchie, the creator of the C programming language and start writing some Brian Kernighan. You will learn how to run the python script in the python3 shell as well as learn how to run the python codescript from the bash shell.
<pre>ipython3%cd ~/ops435/lab1%pwd%ls</pre>:'''Perform the following steps:'''
Our first python code we will write is the print function. A function is code that has been defined in another location. Functions can take arguments, use these arguments in some way, and then usually return a result. The first function we will use is the "print()" functions, it's sole purpose is to output information to the screen.
:#Create a new python file in your ~/ops435/lab1 directory. Call it lab1a.py. The first Python code we will write is going to call the print function. A function is code that has been defined in another location. Functions can take arguments, use these arguments in some way, and then usually return a result. The first function we will use is the "print()" functions, it's sole purpose is to output information to the screen.<prebr><br>:#Add the following line into your source code file:<source>
print()
</presource>And run it from the command-line: <source>python3 ./lab1a.py</source> You will notice that nothing happened when is printed even though we ran this called the "print()" function. This is because we didn't pass any arguments to it, lets try again.<br><br> :# Modify your call to print() to inlcude an argument ('hello world'):<br><presource>
print('hello world')
</presource> This time we should now see that the python function "print()" has outputted to the screen the words 'hello world'. In python a word or a bunch of characters like 'hello world' is called a 'string'. So what we did In the above isexample, passed a '''string''' was passed as a '''argument''' to the print '''function'''. These words are important for understanding and talking about different aspects of code.<br><br>  == Part 2 - Hello World == Next, we will make our first script with :# Note that there are similarities between the above Python print() function. Open and the Bash echo command, but Python is more picky than bash (which is a new text file called "lab1agood thing).py"Try to run print without the brackets or without the quotes to see what happens. <preblockquote style="margin-left:35px;">%vim ~{{Admon/ops435/lab1/lab1atip|Reading errors|One of the things that makes a good programmer is debugging skills. The first and most important debugging technique is reading and understanding error messages. Try to understand what the errors are saying even if you think you already know what the problem is and already have some idea about how to fix it.py}}</preblockquote>  <ol><li value="5" style="margin-left:25px;">Write the following code into our python file. Note the she-bang line at the top of the file to run this script in the python3 environment. You will need to add this she-bang line for all python scripts you create for this course.<presource lang="python">
#!/usr/bin/env python3
print('Hello world')
</presourceSave the file and quit vim. We will now go over the process <li style="margin-left:25px;">Another way of manually running this python script. Both in the Bash shell and in the IPython shella pythion program is executing it directly, e.  Now lets try running the script directly from the IPython shellg: <presource>ipython3%run ~./ops435/lab1/lab1atest.py</presourceYour python script should have run, if you have any errors you should check Note that you typed the script in exactly. Be careful of extra spaces, symbols, letters, or lowercase/uppercase differences.  Exit out of IPython. Now from the Bash shell we file will give it the correct linux need execute permissions and run even though you ran itjust fine earlier. This Why is just showing the multiple ways you can use this python script. You are not required to have IPython running on a system, however hopefully we can use IPython's powerful features to our advantage. <pre>exit</pre>that? <pre>chmod 755 ~/ops435/lab1/lab1a.pypython3 ~/ops435/lab1/lab1a.py</pre> li style=== Part 2 "margin- Lab Check lab1a === This course is designed with a unit testing suite, which can be used to look at the scripts you write and give real-time feedback. This feedback is not perfect, however it may offer some hints if you get stuck with a error. It can also be used to make sure you are on the write track, and show progress. left:25px;">Download the check scriptand check your work. Enter the following commands from the bash shell.<presource lang="bash"> cd ~/ops435/lab1/ pwd #confirm that you are in the right directory ls lab1a.py #confirm that you have the lab1a.py script in your directory ls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.py python3 ./CheckLab1.py -f -v lab1a</presource<li style="margin-left:25px;">Before moving on to the next step make sure you identify any and all errors in "lab1a.py". When the check script tells you everything is "ok", you may proceed to the next step. == Part 3 - Variables == A variable is used to store data for use later in the program. This data can be a string, integer, decimal, etc. === Part 3 - strings ===</ol>
First make a new variable containing a value.=== PART 2 - Working with Python Objects ===
<pre>name = :In Python, an object is used to store data for use later in the program. This data can be a string, integer, decimal number, characters, etc. We will only be covering 'Thomas'</pre>'string''' and '''integer''' variables in this lab. You will learn and use other python object types in future labs.
Inspect the value.==== String Objects ====
<pre>name</pre>:String objects contain text to be used in your program. Examples of strings could be user-names, full-names, item descriptions, etc. We will now demonstrate to assign a string to an object and how to display contents stored in a string object.
Print :'''Perform the value to the screen.following steps:'''
:#Create a python script (called lab1b.py) and first - start with a few simple things to try: :#Let's make a new object containing a value:<presource lang="python">name = 'Thomas'</source>:#Print the value to the screen:<source lang="python">
print(name)
</presource>:#Think about why this does something different:<source lang="python">print('name')</source>:#Now lets try something new, we are going to print out the string and concatenate/combine it with another string. The plus sign can be used to join 2 strings together. However, make sure that your variable object is always outside the quotes, or it will not resolve to a value. <presource lang="python">
print('I have a friend named ' + name)
</presource=== Part 3 - Evaluation === Create a :#To gain practice, complete your python scriptwith the following content and details: lab1b.py::::* The script should have a '''Shebang line''' like you did for your lab1a.py python script::::* The script should use a single variable object called "name"::::* The value of the "name" variable object should be "Isaac"::::* The script, when executed, should print out "How old are you Isaac?" Example ::::*Sample run: <presource>% cd ~/ops435/lab1/%run ./lab1b.py How old are you Isaac?</presource> Try the check checking script as you are working through a script to sometimes get hints.<br><br> <ol><li value="7" style== Part 3 "margin- Lab Check lab1b === This course is designed with a unit testing suite, which can be used to look at the scripts you write left:25px;">Download and give real-time feedback. This feedback is not perfect, however it may offer some hints if you get stuck with a error. It can also be used to make sure you are on run the write track, and show progress. Download the check checking script. Enter the following commands from the '''bash shell.''':<presource lang="bash">
cd ~/ops435/lab1/
pwd #confirm that you are in the right directory
ls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.py
python3 ./CheckLab1.py -f -v lab1b
</presource></li><li style="margin-left:25px;"> Before proceeding, make certain that you identify any and all errors in "lab1b.py". When the check script tells you everything is "ok", you may proceed to the next step.</li></ol>
Before moving on to the next step make sure you identify any and all errors in "lab1a.py". When the check script tells you everything is "ok", you may procede to the next step.==== Integer Objects====
== Part 4 :In Python, integer objects are used to store an integer numbers that can be used for mathematical operations (discussed in the next section). Integers do NOT contain decimals, and they can be signed (+ or - Integers ==) or unsigned. Here we will store integers in a object, perform math operations, and display the results.
Lets enter into IPython to test out variables.<pre>ipython3</pre>:'''Perform the following steps:'''
:#Create a python script (called lab1c.py) and first - start with a few simple things to try: :#Lets create some new variables objects to play with.<presource lang="python">
num1 = 5
num2 = 10
</presourceIn IPython we :#You can inspect these variables by just typing the name of print the variable. But values in a those integer objects:<source lang="python script this will not provide any output. This feature is useful however for debugging. <pre">print(num1)print(num2)</presource:#Now we will make a new variable integer object and try some math. :<presource lang="python">
sum = num1 + num2
</presource> This will add the values contained in the variables integer objects together, providing a sum. However you will note that there is no output. First lets Let's inspect the new value. :<pre>sum</pre> Does this value look right? If we wanted to print this out to the screen we could use the following source lang="python code. <pre">
print(sum)
</presource>Does this value look right? Are you sure?<br:#Now lets try printing this sum out with a string.:<presource lang="python">
print('The sum is: ' + sum)
</presource> What happened? Did you receive an error? This will may have been the first time you've seen this error, but it won't be the last. What we tried to do is combine a string with a number, and this won't work.  <br><br>In order to use display this number as a string we will use the "str()" function on it. The "str()" function will return a string of your number and provide it as a argument to "print()". This function will not change the value of your variableobject, your variable object is still a an intergerobject.<br><br> :# Issue the following:<presource lang="python">
print('The sum is: ' + str(sum))
</presource>What did you notice this time?<br /=== Part 4 - Evaluation === Create a :#To gain practice, complete your python scriptwith the following features: lab1c.py:::* The script should have a Shebang line.:::* The script should have a variable an object called '''name''':::* The script should have a variable an object called '''age''':::* The value of the '''name''' variable object should be '''Isaac''':::* The variable object '''age''' should contain a integer:::* The value of the '''age''' variable object should be '''72''':::* The script, when executed, should print out "Isaac is 72 years old!" :::Example run: <presource>%cd ~/ops435/lab1/%run ./lab1c.py
Isaac is 72 years old!
</presource><br> Try the check script as you are working through a script to sometimes get hints.<br> =<ol><li value=10" style= Part 4 "margin- Lab Check lab1c === This course is designed with a unit testing suite, which can be used to look at the scripts you write left:25px;">Download and give real-time feedback. This feedback is not perfect, however it may offer some hints if you get stuck with a error. It can also be used to make sure you are on run the write track, and show progress. Download the check checking script. Enter the following commands from the bash shell.:<presource lang="bash">
cd ~/ops435/lab1/
pwd #confirm that you are in the right directory
ls CheckLab1.py || wget matrixhttps://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/LabCheckScripts/CheckLab1.py
python3 ./CheckLab1.py -f -v lab1c
</presource></li><li style="margin-left:25px;">Before moving on to the next step make sure you identify any and all errors in "lab1c.py". When the check script tells you everything is "ok", you may proceed to the next step.</li></ol>
Before moving on to the next step make sure you identify any and all errors in "lab1a.py". When the check script tells you everything is "ok", you may procede to the next step.=== PART 5 - MATH OPERATORS ===
:In the previous section, you performed a couple of simple mathematical operations. In this section, you will learn some additional mathematical operations.
== Part 5 - Math Operators ==:'''Perform the following steps:'''
Python has a number :# Try some of math operators you can use the following to see what happens in your programs.Python:<presource lang="python">print(10 + 5 ) # additionprint(10 - 5 ) # subtractionprint(10 * 5 ) # multiplicationprint(10 / 5 ) # divisionprint(10 ** 5 ) # exponents</presourceBut you NOTE: You must be careful when combining more complex math operators together. Python uses '''PEMDAS''' (Parentheses'''P'''arentheses, Exponents'''E'''xponents, Multiplication '''M'''ultiplication and Division'''D'''ivision, Addition '''A'''ddition and Subtraction'''S'''ubtraction) to resolve math. <br><br>:# Go over the below examples and see if you understand each situation. :<presource lang="python">print(10 + 5 * 2 ) # multiplication happens before additionprint((10 + 5) * 2 ) # parentheses happen before multiplicationprint(10 + 5 * 2 - 10 ** 2 ) # first exponents, then multiplication, then addition and subtraction from left-to-rightprint(15 / 3 * 4 ) # division and multiplication happen from left-to-rightprint(100 / ((5 + 5) * 2)) # the inner most parentheses are first performing addition, then parentheses again with multiplication, finally the division </presource>:#To gain practice, complete your script with the following content and details:::* The script should have a Shebang line.::* The object '''x''' should contain a integer with the value '''10'''::* The object '''y''' should contain a integer with the value '''2'''::* The object '''z''' should contain a integer with the value '''5'''::* The script, when executed, should print out "10 + 2 * 5 = 20" (the printout should change if the values in the objects change):::Example run: <source>cd ~/ops435/lab1/./lab1d.py10 + 2 * 5 = 20</source>Try the checking script as you are working through a script to sometimes get hints.<br><br><ol><li style="margin-left:25px;" value="4">Download and run the checking script. Enter the following commands from the bash shell:<source lang="bash">cd ~/ops435/lab1/pwd #confirm that you are in the right directoryls CheckLab1.py || wget https://raw.githubusercontent.com/Seneca-CDOT/ops435/master/LabCheckScripts/CheckLab1.pypython3 ./CheckLab1.py -f -v lab1d</source>Before moving on to the next step make sure you identify any and all errors in "lab1d.py".<br><br></li><li style="margin-left:25px;">When the check script tells you everything is "ok", you may proceed to the next step.<br><br></li></ol><br><br>
= LAB 1 SIGN-OFF (SHOW INSTRUCTOR) =
[[Image:lab1_signoff.png|thumb|right|450px|Students should be prepared with '''all required commands (system information) displayed in a terminal (or multiple terminals) prior to calling the instructor for signoff'''.]]
===Part 5 - Evaluation ===
Create a python script: lab1d.py* The script should have a Shebang line.* The variable '''x''' should contain a integer with the value '''10'''* The variable '''y''' should contain a integer with the value '''2'''* The variable '''z''' should contain a integer with the value '''5Have Ready to Show Your Instructor:'''* The script, when executed, should print out "10 + 2 * 5 = 20"
Example run: :<prespan style="color:green;font-size:1.5em;">%cd ~&#x2713;</ops435span> Output of: <code>./lab1CheckLab1.py -f -v</code>%run ::<span style="color:green;font-size:1.5em;">&#x2713;</span> Output of: <code>cat lab1a.py lab1b.py lab1c.py lab1d.py10 + 2 * 5 = 20</precode>
Try :'''Be able to answer any questions about the check script as lab to show that you are working through a script to sometimes get hints.understood it!'''<br>:'''For sections A & B:'''
::<span style=== Part 5 color:green;font- Lab Check lab1d ===size:1.5em;">&#x2713;</span> Submit your output and Python scrips via Blackboard instead.
This course is designed with a unit testing suite, which can be used to look at the scripts you write and give real-time feedback. This feedback is not perfect, however it may offer some hints if you get stuck with a error. It can also be used to make sure you are on the write track, and show progress.= LAB REVIEW =
Download :# Write the command to change the check scripthostname of your Linux machine to '''centos7'''. Enter :# What is the following commands from purpose of '''git'''? How will git be used in our OPS435 course?:# Write the command to create an '''alias''' for the Linux command vim which will be called vi in your ipython3 session.:# Write the absolute pathname for the bash shellipython3 alias configuration file.:# Write Python code that when run, will perform the following tasks:<ol type="a"><li>Contain a she-bang line</li><li>Display a greetings message to the user</li><preli>cd ~display an empty line ('''hint:''' use the special character '''\n''' to print the a new-line character)</li><li>Display text, '''"Your current directory is:"''' (You are NOT required to display quotation marks)</li><li>Display the current working directory pathname (using an appropriate command)</li><li>Display another empty line</ops435li></lab1ol>:# How do you execute a Python script when you are within the <u>ipython3</u> shell?pwd :#confirm that How do you execute a Python script when you are in the right directory<u>Bash</u> Shell (i.e. NOT within the Ipython3 shell)?ls :# Write the pipeline command to check if the CheckLab1.py || wget matrixchecking script exists, and download it from the location:<br>https://raw.senecacollegegithubusercontent.cacom/~acoatleySeneca-willisCDOT/ops435/master/CheckLab1.pypython3 .LabCheckScripts/CheckLab1.py -f -v lab1d</pre>
Before moving on to the next step make sure you identify any and all errors in "lab1a.py". When the check script tells you everything is "ok", you may procede to the next step.[[Category:OPS435-Python]]

Navigation menu