Changes

Jump to: navigation, search

OPS435 Python Lab 3

130 bytes removed, 19:24, 31 January 2019
PART 2 - Manipulating Items in Lists
= LAB OBJECTIVES =
:In previous labs, you learned some programming tools in order to make your Python scripts '''more functional''' and allowed your Python script to run differently based on different data or situations. These tools included '''objects/variables''', '''condition statements''' and '''loops'''. The utilization of these basic tools not only apply to Python scripts, but basically all programming languages including interpreted (including '''Perl scripts''', '''Bash Shell scripts''', '''JavaScript''', etc ) and compiled languages (including '''C''', '''C++''', '''Java''', etc).
:In this lab, you will learn '''functions''', '''lists''', and '''loops''', with the primary focus on creating reusable code.
= INVESTIGATION 1: CREATING THE SIMPLEST FUNCTIONS =
:A very simple definition of using '''functions''' is to create and reuse '''smaller programs within a larger program'''. In programming languages such as '''C''', '''C++''' and '''Java''', commonly used functions are pre-packaged in '''libraries'''. This relates to dependency issues that were discussed when compiling C programming code in your OPS235 course: if a supporting library is missing, the program would not be able to run the called function.
:Usually, a '''function''' will '''contain programming code''' in some part of the python file (most likely near the top of the file, before the main program). We refer to that as a '''"function declaration"'''.
== PART 1 - How User-Defined Functions are Declared and Run ==
:Functions may be designed :* '''not to accept arguments or return a value''', designed * to '''not accept arguments but not return a value''', designed * to '''accept arguments and not return a value''', * or designed to '''both accept arguments and return a value'''. In this investigation, will we will focus of creating functions that either do NOT return a value, or return a value.
'''Functions and Strings'''
if __name__ == '__main__':
print('python code')
print(sum_numbers(10, 5))
print(subtract_numbers(10, 5))
:'''Perform the Following Instructions:'''
:#Create the '''~/ops435/lab3/lab3c.py''' script. The purpose of the script is to have a single function that can perform addition, subtraction, or multiplication on a pair of numbers. But the function will allow us to choose exatly what operation we are performing on it when we call it. If the operate function does NOT understand the operator given, it should return an error message(e.g. calling the function to 'divide' two numbers).
:#Use this template to get started:<source lang="python">
#!/usr/bin/env python3
import lab3c
lab3c.operate(10, 20, 'add')
# Will output return 30
lab3c.operate(2, 3, 'add')
# Will output return 5
lab3c.operate(100, 5, 'subtract')
# Will output return 95
lab3c.operate(10, 20, 'subtract')
# Will output return -10
lab3c.operate(5, 5, 'multiply')
# Will output return 25
lab3c.operate(10, 100, 'multiply')
# Will output return 1000
lab3c.operate(100, 5, 'divide')
# Will output return Error: function operator can be "add", "subtract", or "multiply"
lab3c.operate(100, 5, 'power')
# Will output return Error: function operator can be "add", "subtract", or "multiply"
</source>
:::3. Download the checking script and check your work. Enter the following commands from the bash shell.<source lang="bash">
:#To demonstrate, issue the following:<source lang="python">
p = subprocess.Popen(['date'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
dir(p)
</source>This function call and the following step is full of details we haven't yet talked about which is why it may look a little scary. By the time we're finished with the course - you will be able to look at code like this and not be intimidated. If you're curious and want to look ahead - you can find the definition for the [https://docs.python.org/3/library/subprocess.html#subprocess.Popen Popen function in the Python reference manual].
:#This next step is going to communicate with the process and get the retrieve it's output (stdout).<source>
# Notice how the long line below is wrapped to fit on one screen:
print("List length is " + str(length_of_list ) + ", smallest element in the list is " + str(smallest_in_list ) + ", largest element in the list is " + str(largest_in_list))
</source>
:# What is the purpose of the '''system()''' function?
:# What is the purpose of a '''list'''?
:# Assume that the following command was issued at the ipython3 promptlist has been defined: '''mylist = [ 'apple', 1, 'grape', 2, 'banana', 3, ]'''<br>Based on the command issued abovethat, what are the results of will the following commandscontain?<blockquotesource lang="python">'''mylist[0]''' , '''mylist[3]''' , '''mylist[-1]''' , '''mylist[0:1]'''</blockquotesource>:# Assume that the following command was issued at the ipython3 promptlist has been defined: '''combined_list = [ [7, 5], ['x', 'y'], [ 5, 'f' ] ]'''<br>Based on the command issued abovethat, what are the results of will the following commandscontain?<blockquotesource lang="python">'''combined_list[0]''' , '''combined_list[1]''' , '''combined_list[1][0]''' , '''combined_list[2][0:2]'''</blockquotesource>
:# Briefly explain the purpose of each of the following functions (methods) that can be used with lists: '''append''', '''insert''', '''remove''', '''sort''', '''copy'''.</li>
:# Write the '''functions''' that perform the following operations on a list:<ol type="a"><li>Returns the length of the list</li><li>Returns the smallest value in the list</li><li>Returns the largest value in the list</li></ol>
1,760
edits

Navigation menu