Variables, Expressions, and Standard Functions. Topics Basic calculation Expressions, variables, and...

72
Variables, Variables, Expressions, and Expressions, and Standard Standard Functions Functions

Transcript of Variables, Expressions, and Standard Functions. Topics Basic calculation Expressions, variables, and...

Variables, Variables, Expressions, and Expressions, and

Standard Standard FunctionsFunctions

TopicsTopics•Basic calculation•Expressions, variables, and

operator precedence•Data types•Input / Output•Examples

2

A calculatorA calculator•We can use a computer as a

calculator.•Just type expressions into the

Python Shell

3

Python Shell in Wing IDE

A calculatorA calculator•Try this.

4

>>> 10 * 5

50

>>> 1 + 2 + 3 + 4

10

>>> 1+2+3+4

10

>>> 1 * 4 + 5 ** 2

29

Type it into Python Shell

The answer

Spaces are irrelevant

** is for exponentiation

ExpressionExpression•What we have just typed into

the Python Shell is called expressions.

•After the shell reads each expression, the shell evaluate it and reports the result.

5

Easy calculationEasy calculation•An object moves with the

starting speed of 10 m/s with an acceleration of 2 m/s2. After 5 seconds, how far is the object from its starting position?

6

s = ut + at2/2

10 * 5 + 2 * (5*5) / 2

Operators (1)Operators (1)•In previous examples, we use

many operators such as +, -, or /, to tell Python to perform various computations with the data.

•An operator tells Python what operation to perform with its operands.

7

10 * 5

operator

operands

Operators (2)Operators (2)•Operators can be

Binary operators that work with two operands, e.g., +, -, or *.

5 * 3 10 – 2 15*7

Unary operators that work with a single operand, e.g, –.

-3 +2 -5 * 7

8

Operators (2)Operators (2)• Basic mathematical operators are

shown in the table below

9

Operator Meaning

Examples

+ addition

3+5

- subtraction

4-2

* multiplication

4.5*10

/ division see next page

% modulo see next page

** exponentiation

3**4

Division in PythonDivision in Python•There are two operators

related to division

10

expression

result

4/2 2.0

3/2 1.5

10/7 1.4286

3.0/2 1.5

10/7.0 1.4286

expression

result

4%2 0

3%2 1

10%7 3

3.0%2 1.0

10%7.0 3.0

divisionmodulo – find the remainder

Numbers in Numbers in PythonPython

•There are two types for numbers in Python: integer (type int) and floating points (type float)

11

Integer

expressio

n

Value Floating-

point expr.

Values

10 10 10.0 10.03-2 1 3.0-2 1.019*5 95 19*5.2 98.8

Expressions Values2 + 3 * 6 20(2+3) *6 303/5*2 1.23*5.0/2 7.5

Quick testQuick test

12

Integers v.s. Integers v.s. Floating-pointsFloating-points

• If you write a number without a "dot", it will be treated as an integer.

•Results Every mathematical operation between integer and integer returns an integer, except for division.

Division returns floating-point numbers. Any operations with floating-point numbers return floating-point numbers.

13

3/5*23/5*2•Evaluation is usually done

from left to right

14

((3/5)*2)

( 0.6 *2)

Operator Operator precedenceprecedence

•But operators have different precedence, e.g., * or / have higher precedence over + or -.

15

2+3*6

2+(3*6)

This is just….This is just….•High-school

math!

16

Operator Operator precedenceprecedence

•Evaluation order is from left-to-right for operators with the same precedence, except **.

17

Operators Examples

1 () (3+4)2 ** (expo.) 2**33 -,+ (unary) -5, +104 *,/,% 3*4, 7%25 -,+ 2+7, 3-4

Try this (1)Try this (1)

18

2+5*6/3+(7-2*3)What is the result?

13.0

Try thisTry this (2)(2)

19

2 ** 2 ** 3What is the result?

28 = 256

2 ** (2 ** 3)

Reusing valuesReusing values•A force of 2.5 newton pushes

a rock with mass 1 kg to the left. Where is the rock after 1 second, 5 second and 15 second?

20

(1.0/2.5)*1*1/2(1.0/2.5)*5*5/2

(1.0/2.5)*15*15/2

Redundan

t

VariablesVariables•We can use variables to refer

to result from previous computation.

21

a*1*1/2a*5*5/2

a*15*15/2

a = 1.0/2.5

a 0.4

VariablesVariables

•A variable is used to refer to various data.•Use "=" to assign a value to a variable.•When we refer to that variable, we get the

value that the variable is referring to.

22

a = 1.0/2.50.4

a

Variables can be Variables can be "modified" (1)"modified" (1)

23

a = 10a * 5b = 3a + ba = 7a + ba = b + 5aa + b

50

13

10

8

11

Variables can be Variables can be "modified" (2)"modified" (2)

24

a = 10a = a + 1

11

Variables can be Variables can be "modified" (3)"modified" (3)

25

x = 10x = x * 2

20

Variables can be Variables can be "modified" (4)"modified" (4)

26

x = 10x = x * 2 + 5

25

Working onWorking on Wing Wing IDEIDE

27

Typing programs Typing programs inin WingIDEWingIDE

28

A programA program•A program is a sequence of

commands (or statements)

29

a = 10b = a + 5a - bc = 12b = a + cc = a*ba + b + c1 + a - c

Try totype this into

Wing IDE

ResultResult

30

Empty

•Because the program does not have statements that output anything.

PrintingPrinting•We can use function

printto display results

31

A programA program•A program is a sequence of

commands (or statements)

32

a = 10b = a + 5print(a – b)c = 12b = a + cc = a*bprint(a + b + c)print(1 + a – c)

Add"print"

to display the valueof the required

expressions

See the output See the output after hitting "Run"after hitting "Run"

33

Function callsFunction calls

34

print(10)print(10)

Function nameArguments

What's going on?What's going on?

•The expressions on the parameter list are evaluated before sending the result to the function.

35

print(a + b * 2)print(a + b * 2)

2020Assume thatAssume that

a = 5a = 5

b = 10b = 10 2525

print(25)print(25)print(25)print(25)

A simple A simple calculation calculation programprogram•We have the following coins

5 one-baht coins 7 ten-baht coins 2 twenty-baht notes 3 hundred-baht notes

36

sum1 = 1 * 5sum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3sum = sum1+sum5+sum20+sum100print(sum)

How muchmoney do

wehave ?

A simple programA simple program (2)(2)

•Or we can even remove variable sum

37

sum1 = 1 * 5sum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3print(sum1+sum5+sum20+sum100)

Meaningful namesMeaningful names

38

a = 1 * 5b = 10 * 7c = 20 * 2d = 100 * 3e = a + b + c + dprint(e)

sum1 = 1 * 5sum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3sum = sum1+sum5+sum20+sum100print(sum)

Theyperform thesame taskWhich oneis

easier to

understand?

Compare

these two

programs

SuggestionsSuggestions•Write programs

for people to read At the very

least, one of the audience is yourself.

39

Comments (#)Comments (#)•To make a program easier to

read, we can add comments to the program

•Everything after the # symbol is a comment.

40

A program with A program with commentscomments

41

# this program calculates total money# from the amount of each type of coins or# bank notes that you havesum1 = 1 * 5 # value of 1-baht coinssum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3print(sum1+sum5+sum20+sum100)

”Hello

StringsStrings•A computer can work with many types of

data.•A string is another data type which is very

important. It is a type for texts or messages.•Formally, a string is a sequence of characters.

42

”Hello, world”

String constantsString constants•We can either use single or double

quotes to specify strings, e.g., ”Hello” ’World’

•However, the starting quotes and the ending quotes must match.

•We can also have special characters inside a string. They will start with backslash " \ ".

43

Examples (1)Examples (1)

44

print("hello") hello

print('hello') hello

print("I'm 9") I'm 9

print('I'm 9') ERROR

print('I\'m 9') I'm 9

print("I\'m 9") I'm 9

Examples (2)Examples (2)

45

print("123") 123

print(123) 123

print("12" + "3") 123

print(12 + 3) 15

print("12" + '3') 123

print("12" + 3) ERROR

A slightly better A slightly better programprogram

46

sum1 = 1 * 5sum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3sum = sum1+sum5+sum20+sum100print("The total is",sum)

The total is 415

A slightly even A slightly even better programbetter program

47

sum1 = 1 * 5sum10 = 10 * 7sum20 = 20 * 2sum100 = 100 * 3sum = sum1+sum5+sum20+sum100print("The total is",sum,"bath.")

The total is 415 bath.

Sidenote: printing Sidenote: printing and new linesand new lines

•We can display data using function print.

•It will always add a new line at the end.

•If we want to avoid the new line, we can add an additional option "end" to print.

48

print(10)print(20)print(10,end='')print(20)

10201020

10201020

This tells print to end this output with an empty string, instead of a new line.

Reading inputsReading inputs•We can use function input to

read data from the user

input

•The function returns a string that the user types into the shell.

49

Examples in the Examples in the Python ShellPython Shell

>>> name = input()Somchai>>> print("Hello", name)Hello Somchai>>> a = input()10>>> b = input()100>>> print(a+b)10100

50

RemarksRemarks•Consider this statement

print(a+b)

•Since both variables a and b are strings from function input. When we add two strings, we only get the concatenation of them.

51

??????????•How are we going to do

calculations when we can only read strings from the user?

52

ConversionConversion•We can use function int, float, and str to convert between various data types

53

int("10")

float("10")

float(10)

10

10.0

10.0

int(10.6) 10

Type conversionType conversion

54

int("10")+10

float("10")+10

float(10)+int(5)

20

20.0

15.0

str(10)+str(5) 105

Conversion between Conversion between float and int (1)float and int (1)

55

int(10.2)

int(10.9)

10

10

Always return the integers without the fractional

parts.

int(-10.1) -10

Conversion between Conversion between float and int (2)float and int (2)

56

round(10.2)

round(10.9)

10

11

We can also use function round that returns the closest

integers.

round(-10.1) -10

Adding two Adding two numbersnumbers

57

# This program adds two numbersastr = input()a = int(astr)bstr = input()b = int(bstr)print("The result is",a+b)

Nested function Nested function calls (1)calls (1)

•Consider this part of the program

•We use variable astr to refer to an input string. We then convert it to an integer and assign the result to variable a.

•We can avoid using variable astr:

58

astr = input()a = int(astr)

a = int(input())

Nested function Nested function calls (2)calls (2)

•This is how it works.

59

a = int(input())

input()

int"12345"

12345

a = 12345a

Two additional Two additional important important functionsfunctions

60

Functions Return valuesabs(x) Returns the absolute

value of xpow(x,y) Returns the value of

xy

Money calculationMoney calculation ((improvedimproved))

61

# This program calculates total amount# of money from numbers of bank notesp1 = int(input())sum1 = 1 * p1p5 = int(input())sum5 = 10 * p5p20 = int(input())sum20 = 20 * p20p100 = int(input())sum100 = 100 * p100sum = sum1+sum5+sum20+sum100print("The total is",sum,"bath.")

A promptA prompt•We can tell function input to

display a prompt before reading input by providing a string argument to input

62

Enter X: 100

110

Thinking cornerThinking corner•An object, initially sitting still,

starts moving with an acceleration of a m/s2 for t seconds.

•Write a program that reads the acceleration and the duration and computes the displacement.

63

SolutionSolution

64

a = float(input("Enter a: "))t = float(input("Enter t: "))print("Total distance =", a*t*t/2)

Thinking cornerThinking corner

65

Enter length in inch: 320It is 26 feet, 8 inch.Enter length in inch: 320It is 26 feet, 8 inch.

x = int(input("Enter length in inch"))xf = int(x/12)xi = x – xf * 12print("It is", xf, "feet,",xf,"inch.")

x = int(input("Enter length in inch"))xf = int(x/12)xi = x – xf * 12print("It is", xf, "feet,",xf,"inch.")

Volume Volume CalculationCalculation

•Compute the volume of a cylinder

66

hh

r

r2 x h

•We can use 22/7 (which is

quite inaccurate).•We can use a closer

estimation, in module math.

67

3.1415926535897933.141592653589793

TheThe math modulemath module•In Python, functions are

categorized into various groups, called modules. To use functions from a module, we have to declare that by using the import statement.

•Then all functions can be referred to by prefixing with the module name.

68

import math

print("Pi is", math.pi)

import math

print("Pi is", math.pi)

3.1415926535897933.141592653589793

Thinking cornerThinking corner•Write a program

that reads r and h and compute the volume of a cylinder.

69

hh

r

r2 x h

SolutionSolution

70

import math

r = float(input("Enter r: "))h = float(input("Enter h: "))print("Volume =", math.pi*r*r*h)

import math

r = float(input("Enter r: "))h = float(input("Enter h: "))print("Volume =", math.pi*r*r*h)

Important Important functions infunctions in math math

modulemodule

71

Functions Goalsfabs(x) The absolute value of xsin(x), cos(x), tan(x)

Trigonometric functions of x (the angles are specified in radian)

pi Constant Pie Constant elog(x),log10(x) Natural logarithm,

logarithm base 10exp(x) The value of ex

sqrt(x) Square root of x

Another exampleAnother example•Projection

72

t

fimport math# radian angles

fy = f * math.sin(t)fx = f * math.cos(t)

import math# radian angles

fy = f * math.sin(t)fx = f * math.cos(t)

# don't forget to import math# recall that the angle must be in radian

r = t * math.pi/180fy = f * math.sin(r)fx = f * math.cos(r)

# don't forget to import math# recall that the angle must be in radian

r = t * math.pi/180fy = f * math.sin(r)fx = f * math.cos(r)