Python PowerPoint

advertisement
Programming
Languages
• Understand how programming has
evolved
• Be able to write simple programs
using a text based programming
language
Objectives
History Timeline
The Evolution of Programming Languages
To build programs, people use languages that are similar
to human language. The results are translated into
machine code, which computers understand.
Programming languages fall into three broad categories:
•
Machine languages
•
Assembly languages
•
Higher-level languages
The Evolution of Programming Languages Machine Languages
• Machine languages (first-generation languages) are the
most basic type of computer languages, consisting of
strings of numbers the computer's hardware can use.
• Different types of hardware use different machine
code. For example, IBM computers use different
machine language than Apple computers.
The Evolution of Programming Languages Assembly Languages
• Assembly languages (second-generation languages)
are only a bit easier to work with than machine
languages.
• They use English-like phrases to represent strings of
numbers.
• The code is then translated into object code, using a
translator called an assembler.
• They are quite difficult for people to understand
Assembly
code
Assembler
Object code
The Evolution of Programming Languages Higher-Level Languages
Higher-level languages are more powerful than assembly
language
The instructions the programmer uses to write them are
more like English so are easier to understand
Higher-level programming languages are divided into
three "generations," each more powerful than the last:
• Third-generation languages
•
Fourth-generation languages
•
Fifth-generation languages
Higher-Level Languages Third-Generation Languages
• The following languages are 3GLs:
FORTAN
COBOL
BASIC
Pascal
C
C++
Java
ActiveX
Higher-Level Languages Fourth-Generation Languages
• 4GLs may use a text-based environment (like a 3GL)
or may allow the programmer to work in a visual
environment, using graphical tools.
• The following languages are 4GLs:
Visual Basic (VB)
VisualAge
Authoring environments
Using Python
Learn to Program
• Open the Python IDLE.
• What does it look like?
Let’s start to program
Python IDLE
The command prompt
• >>> print("Hello World")
• What happens?
Write your first program
Did you get this?
• >>> print(Hello World)
What happens if you type
this?
Oh dear - something is
wrong
• Computers follow instructions EXACTLY!
• Computers are not good at dealing with nearly,
almost, not quite.
• Syntax describes the rules that must be used when
commands are written.
Syntax errors
Colours
Different colours are used
for different elements to
help you.
predict what will happen.
• >>> print "Hello World"
• >>> print ("Hello World");
• >>> Print ("Hello World")
• >>> print ("Hel World")
• >>> prin (Hello World)
find out what happens
•>>> print "Hello World"
•>>> print ("Hello World");
•>>> Print ("Hello World")
•>>> print ("Hel World")
•>>> prin (Hello World)
• Now you know how to spot some errors.
• This is called DEBUGGING
• This is really important because you need to know how to
correct your mistakes.
Debugging
In IDLE click on
File and New Window
This is
the Edit
mode - there
is no command
prompt
Create, save and test a
program
• Think of shopping……
• If you are in the interactive mode (IDLE) if you said “buy
milk” it would do it straight away, then “buy eggs” etc
• If you are in the editor it is like making a list of items to
buy which will only work when you say “run shopping
list”
Interactive mode and file
editor
Save the program in
your python folder
as my_name
Using the editor
Then press the f5
key to run the
program
• Add more questions into your my_name program by
copying the first lines of code, pasting them and changing
the question text.
What other programs can
you write?
• You are now going to use your name variable.
• Make the program print out the value that the user has
saved in name.
print (“hello…”)
name = input(“What is your name? ”)
print (“hello” + name)
When you use = it
means
“make it become …”
When you use + in print
“…” + “…
it means print both these
things
Using a variable
print (“hello…” )
name = input(“What is your name?”)
print (“hello” + name)
print (*hello…* )
name = input(“What is your name?”)
print (“hello” + name)
python dumbchatterbox.py
Syntax Error on Line 1
Why does it say “Syntax Error on line 1?”
Errors and Debugging
print (“hello…” )
name = input(“What is your name?”)
pirnt (“hello” + name)
python dumbchatterbox.py
Syntax Error on Line 3
Why does it say “Syntax Error on line 3?”
Errors and Debugging
• Can you remember how to save a program file?
• Which character is not allowed to be used in program file
names?
• Don’t forget to include the .py at the end of the filename!
• Can you remember how to run a program you have
created?
Try it out!
Run your program!
answer = input (Hello would you like to hear a joke?”)
PRINT (“you said ”+ ANSWER)
print (“Here is the joke …”)
answer = input (“Why did the chicken cross the road?”)
print (“you said + answer”)
print (“To get to the other side!” )
python jokebox.py
Error on Line 1
Error on Line 2
Error on Line 2
Error on Line 5
What’s wrong?
NEXT STAGE
Build an artificial intelligence
program
Edit the program, save as
questions
Can you create some script at the end of the
program that might look something like
this….?
“So James, it was lovely to meet you. I know that you live
in Newport and that your favourite food is pizza”
Can you add a summary?
• What is the difference between a variable and a string?
• Can you identify these in the programs you have written?
Research task
Variable examples:
• my_name = input ()
• favourite_food = input ()
• my_age = input ()
• my_school = input ()
Variables – items that
can change
String examples:
• “Hello world”
• “What is your name”
• “What is your favourite food”
• “It is good fun talking to chatbots”
Strings – a sequence of
characters
Using the Python interpreter as
a calculator
•
•
•
•
•
•
Go back to the IDLE screen
What is 156 add 567?
What is 132 subtract 46?
What is 256 divided by 8?
What is 389 multiplied by 13?
Can you work out what mathematical symbols need to be
used?
What works?
Both of
these
work
The answers – use
brackets!
• In computing, whole numbers (without decimals) are
referred to as integers, this means that while 4.0 is not
considered an integer, 4 is.
• It is possible to store integers in variables.
Integers
Integers stored in
variables
IF, Else OR
print (“hello , what is your name”)
name = input()
if name == (“Mr Richards”):
print (“you are ok”)
print (“carry on”)
else :
print (“exterminate!!!“)
Who Are You?
What will this computer program do?
Why do we use one equals sign (name = raw_input…)
and two equals signs (if name == “Mr Richards” …)?
print ("hello , what is your name”)
name = input()
if name = (“Mr Richards“):
print ("you are ok“)
Else :
print (" exterminate!!!“)
What’s wrong?
Why does this program cause an error?
What does the : symbol do?
python WhoAreYou.py
Error Line 3
SyntaxError: invalid syntax
Error Line 5
SyntaxError: invalid syntax
print (“hello , what is your name”)
name = input()
if name == (“Mr Richards”):
print (“you are ok”)
python WhoAreYou.py
else :
Error Line 4
print (“exterminate!!!”)
IndentationError: expected an indented block
Error Line 6
IndentationError: expected an indented block
What’s wrong?
Why does this program cause an error?
What does INDENTATION do?
print (“hello , what is your name”)
name = input()
if answer == (“Mr Richards”)
print (“you are ok”)
print (“carry on”)
else :
print (“exterminate!!!”)
What’s wrong?
Why does this program cause an error?
What is the difference between = and ==?
python WhoAreYou.py
Error Line 3
Syntax error
Use “elif” (else if)
Like this …
meal = input("What did you eat for breakfast?")
if meal == (“nothing“):
print (“That's not good, breakfast is important.“)
elif meal == ("energy drink“):
print ("That's not good. They are bad for you.“)
elif meal == ("cereal“):
print (“Now that's a good breakfast!“)
else :
print (“Sorry, I don't know what that is.“)
print (“Thank you for taking part.“)
Lots of decisions?
The Turing test is a test
of a machine's ability to
exhibit intelligent
behaviour, equivalent to
or indistinguishable from,
that of an actual human.
• Make a “Smart Chatterbox” chat program that uses …
•
•
•
•
•
•
Print (“…”)
Variables
raw_input (“…”)
if …. :
elif …. :
else:
CHALLENGE
Has any computer ever passed the Turing Test?
No. The Loebner Prize awards $5,000 annually for the chatbot which is "most indistinguishable from a human."
There is still $100,000 reserved from Dr. Loebner for the first chatbot to actually pass the Turing test.
• Comments can be used to make a program easier to
understand when someone reads it.
• A # tells the computer that what follows is a comment
• The computer ignores the comments
Comments
# Now add comments to all of your lines
################
of code
• Make a “maths_questions” program that uses …
•
•
•
•
•
Print (“…”)
Variables
raw_input (“…”)
if …. :
else:
The program should ask a maths question get and answer and print a suitable
message for both the correct and wrong responses
Maths Challenge
Here is the code:
save as maths_questions
• Can you add 5 more maths questions to your game
questions?
Add more questions to
your game
• Create a test that will check the user’s knowledge of the
12 times multiplication table.
• The test should have between 4 and 12 questions.
• Save the file as 12_times_table
• It must include a header (description, your name and
date)
• You must make use of comments (#)
12 times table
• Answer = int(answer)
Thinking back to the use of integers in the last lesson, what
does this do and what does int mean?
Can you answer this
question?
• This converts the text string into a number or integer. If it
was not converted to an integer, it could not be compared
to another integer, the answer 4.
Answer = int(answer)
• if answer ==4:
• What this mean?
Can you answer this
question?
• Carry out the instruction if the answer is 4
• == means ‘equal’ to, as in “is it equal to?”
if answer ==4:
• What does else mean
Can you answer this
question?
• Carry out the instruction if none of the previous if
conditions were true
else
• Why are the indents necessary after the if and else
statements?
Can you answer this
question?
• This means follow the these instructions if the statement
above is true.
Indents
• What happens if the colons are not there after the 4 or
else?
Can you answer this
question?
• You get a syntax error
Colons
Final Challenge
Invent your own game
• Start with a blank file, create your own number game
using Python.
• Add appropriate comments to your game including a
header with your name, title and instructions on how to
play the game.
• Add line comments to explain parts of the code.
• You should include at least 5 questions.
• Decide what the actual questions are about and the level
of difficulty.
Invent your own game
• How many seconds are there in 1 hour?
• How many days are there in a leap year?
• If a triangle has 2 angles of 45 degrees, what will the
remaining angle be?
• If a = 2b – 5 and b = 6, what is a?
• What is the minimum legal age to vote in the UK?
• What is 10010001 converted to denary?
Examples
•
•
•
•
•
•
•
•
•
Create a game that works and save it
Use enough comments to explain how the game works
Add a scoring feature to the game
Ask the user some questions at the beginning of the game
Add a function to report the score at the end of each question
Include responsive feedback at the end of the game
Include comments to describe what the code does
Include a larger set of questions increasing with difficulty
Allow the user to try again on a wrong answer, but award a reduced
score for a second attempt
• Give the user feedback midway through the game as encouragement
• Add some comments explaining how they could add extra features to
the game.
Success criteria
• Whose game shall we look at?
• Let’s look at it together.
• In pairs, swap over and mark each others work using the
criteria.
• Improve your work based on the feedback you have been
given
Random selection
Want to learn more?
Some useful sites
• http://docs.python.org/2/tutorial/
• http://sandbox.mc.edu/~bennet/python/code/index.html
• http://norvig.com/sudoku.html
• http://python.net/~goodger/projects/pycon/2007/idiomatic
/handout.html
Download