S T O P 0 D e b u g g i n g & T e s t C a - - PowerPoint PPT Presentation

s t o p 0 d e b u g g i n g t e s t c a s e s
SMART_READER_LITE
LIVE PREVIEW

S T O P 0 D e b u g g i n g & T e s t C a - - PowerPoint PPT Presentation

S T O P 0 D e b u g g i n g & T e s t C a s e s D e b u g g i n g L o g a n a l y s i s I n c o m e t a x b o u n t y I d e n t i f y i n g a p p r o p


slide-1
SLIDE 1

S T O P – D e b u g g i n g & T e s t C a s e s

 D

e b u g g i n g

 L

  • g

a n a l y s i s

 I

n c

  • m

e t a x b

  • u

n t y

 I

d e n t i f y i n g a p p r

  • p

r i a t e t e s t c a s e s

 B

  • u

n d a r i e s

  • O

n , a b

  • v

e a n d b e l

  • w

b

  • u

n d a r y v a l u e s

  • S

i x t a x b a n d s

  • T

w

  • a

g e r a n g e s —< 6 5 a n d > 6 5

slide-2
SLIDE 2

Lists

UCT Department of Computer Science Computer Science 1017F Lighton Phiri <lphiri@cs.uct.ac.za> April 2015

slide-3
SLIDE 3

S T O P 1 – D a t a T y p e s

 Wh

a t i s a d a t a t y p e

 ?

 L

i s t P y t h

  • n

n a t i v e d a t a t y p e s

 ?

slide-4
SLIDE 4

I n t r

  • d

u c t i

  • n

 D

a t a s t r u c t u r e s a r e u s e d t

  • s

t

  • r

e c

  • l

l e c t i

  • n

s

  • f

i n f

  • r

m a t i

  • n

b y c

  • m

p

  • u

n d i n g t h e m i n a s i n g l e v a r i a b l e

 P

y t h

  • n

h a s a n u m b e r

  • f

n a t i v e d a t a s t r u c t u r e s

 L

i s t s [ ]

 T

u p l e s ( )

 S

e t s { }

 D

i c t i

  • n

a r i e s { : }

 D

a t a s t r u c t u r e s c a n s t

  • r

e i t e m s

  • f

d i ff e r e n t t y p e s

 I

t e m s a r e s e p e r a t e d b y c

  • m

m a s

 L

i s t s a n d d i c t i

  • n

a r i e s a r e m

  • s

t c

  • m

m

  • n

l y u s e d

 F

  • r

t h e p u r p

  • s

e s

  • f

t h i s c

  • u

r s e , w e s h a l l N O T l

  • k

a t t u p l e s

slide-5
SLIDE 5

L i s t s

 L

i s t s a r e u s e d t

  • s

t

  • r

e a n

  • r

d e r e d c

  • l

l e c t i

  • n
  • f

e l e m e n t s

 E

l e m e n t s c a n b e

  • f

a n y t y p e

  • r

e v e n a n

  • t

h e r d a t a s t r u c t u r e

 L

i s t s a r e

  • p

t i

  • n

a l l y d e fi n e d u s i n g s q u a r e b r a c k e t s [ ]

 L

i s t s a r e i n d e x e d , l i k e s t r i n g s , f r

  • m

 L

i s t i t e m s / e l e m e n t s c a n b e r e f e r e n c e d u s i n g [ i n d e x ]

 L

a s t i t e m / e l e m e n t ? ? ?

 L

i s t s a r e m u t a b l e

 M

  • s

t d a t a t y p e s w e h a v e u s e d t h u s f a r a r e i m m u t a b l e !

slide-6
SLIDE 6

C r e a t i n g L i s t s

 T

h e r e a r e a n u m b e r

  • f

w a y s t

  • c

r e a t e a l i s t

1 var_list = [1, 2, 3, “CSC1017F”, True, [“a”, “b”]] 2 type (var_list) # <class 'list'> 3 4 var_another_list = list(range(10)) 5 type (var_another_list) # <class 'list'> 6 7 var_yet_another_list = list(“This is a list”) 8 type (var_yet_another_list) # <class 'list'>

 D

e fi n e d w i t h m u l t i p l e t y p e s

 N

  • t

i c e L i n e 7

slide-7
SLIDE 7

S T O P 2 – P a l i n d r

  • m

e P r i m e s

1 def fxn_primes (a, b): 2 result = [] 3 # LOGIC 4 return result # list 5 6 def fxn_reverse (a, b) 7 result = [] 8 # LOGIC 9 return result 10 1 def fxn_palip (a_l, b_l): 2 # LOGIC 3 # print out results 4 5 6 var_1 = eval(input(“a:”)) 7 var_2 = eval(input(“b:”)) 8 9 fxn_palip(var_1, var_2) 10

slide-8
SLIDE 8

L i s t O p e r a t i

  • n

s

 C

  • n

c a t e n a t i

  • n

1 [1, 2] + [“a”, “b”] # [1, 2, “a”, “b”]

 R

e p e t i t i

  • n

1 [1, 2] * 2 # [1, 2, 1, 2]

 I

n d e x i n g

1 [1, 2, 3][-1] # 3

 S

l i c i n g

1 [1, 2, 3][::-1] # [3, 2, 1]

 I

t e r a t i

  • n

1 for i in [1, 2, 3]: # This is incomplete!

 M

e m b e r s h i p c h e c k

1 “a” in [1, 2, “b”] # False

slide-9
SLIDE 9

S T O P 3 – M e t h

  • d

s v s F u n c t i

  • n

s

1 import math 2 3 def add (a, b): 4 return a+b 5 6 math.pow(10, 2) # function invocation from module 7 add (1, 1) # standalone function invocation 8 course_name = “Singh, Shekhar” 9 course_name.upper () # method call—class function invocation

 Wh

a t i s a f u n c t i

  • n

?

 Wh

a t i s s i m i l a r i n l i n e s 6 , 7 & 9 ? Wh a t i s d i ff e r e n t ?

slide-10
SLIDE 10

L i s t M e t h

  • d

s

 <

l i s t > . a p p e n d ( x )

 A

d d s a n i t e m a t t h e e n d

  • f

l i s t

 P

a r a m e t e r ( s ) : i t e m

  • f

a n y d a t a t y p e ; R e t u r n v a l u e : N

  • n

e

1 var_list = [1, 2, 3, 4] 2 var_list.append(5) # [1, 2, 3, 4, 5]

 <

l i s t > . e x t e n d ( x )

 E

x t e n d l i s t b y a p p e n d i n g i t e m s i n g i v e n i t e r a b l e

 P

a r a m e t e r ( s ) : i t e r a b l e d a t a t y p e ; R e t u r n v a l u e : N

  • n

e

1 # var_list: [1, 2, 3, 4, 5] 2 var_list.extend(“CT”) # [1, 2, 3, 4, 5, “C”, “T”]

slide-11
SLIDE 11

L i s t M e t h

  • d

s

 <

l i s t > . i n s e r t ( i , x )

 I

n s e r t i t e m a t s p e c i fi e d p

  • s

i t i

  • n

 P

a r a m e t e r ( s ) : i n d e x & i t e m t

  • i

n s e r t ; R e t u r n v a l u e : N

  • n

e

1 # var_list: [1, 2, 3, 4, 5, “C”, “T”] 2 var_list.insert(len(var_list), 6) # [1, 2, 3, 4, 5, “C”, “T”, 6]

 <

l i s t > . r e m

  • v

e ( x )

 R

e m

  • v

e fi r s t

  • c

c u r a n c e

  • f

i t e m

 P

a r a m e t e r ( s ) : i t e m ; R e t u r n v a l u e : N

  • n

e

1 # [1, 2, 3, 4, 5, “C”, “T”, 6] 2 var_list.remove(“C”) # [1, 2, 3, 4, 5, “T”, 6]

slide-12
SLIDE 12

L i s t M e t h

  • d

s

 <

l i s t > . p

  • p

( < i > )

 R

e m

  • v

e i t e m a t s p e c i fi e d p

  • s

i t i

  • n

a n d r e t u r n i t ; r e m

  • v

e l a s t i t e m i f n

  • a

r g u m e n t s p e c i fi e d

 P

a r a m e t e r ( s ) : O p t i

  • n

a l i t e m i n d e x ; R e t u r n v a l u e : i t e m a t i n d e x

1 # var_list: [1, 2, 3, 4, 5, “T”, 6] 2 var_list.pop(???) # 6

 <

l i s t > . i n d e x ( x )

 R

e t u r n i n d e x

  • f

fi r s t i t e m w i t h v a l u e x

 P

a r a m e t e r ( s ) : i t e m ; R e t u r n v a l u e : i n t

1 # [1, 2, 3, 4, 5, “T”] 2 var_list.index(“T”) # ???

slide-13
SLIDE 13

L i s t M e t h

  • d

s

 <

l i s t > . c

  • u

n t ( x )

 R

e t u r n n u m b e r

  • f
  • c

c u r r e n c e s

  • f

x

 P

a r a m e t e r ( s ) : i t e m ; R e t u r n v a l u e : n u m b e r

  • f
  • c

c u r r e n c e s

1 # var_list: [1, 2, 3, 4, 5, “T”] 2 var_list.count(“X”) # ???

 <

l i s t > . s

  • r

t ( k e y = N

  • n

e , r e v e r s e = F a l s e )

 S

  • r

t i t e m s i n l i s t

 P

a r a m e t e r ( s ) : O p t i

  • n

a l p a r a m e t e r s ; R e t u r n v a l u e : N

  • n

e

1 # [1, 2, 3, 4, 5] 2 var_list.sort(reverse=True) # [5, 4, 3, 2, 1]

slide-14
SLIDE 14

L i s t M e t h

  • d

s

 <

l i s t > . r e v e r s e ( )

 R

e v e r s e t h e e l e m e n t s i n l i s t

 P

a r a m e t e r ( s ) : N

  • p

a r a m e t e r s ; R e t u r n v a l u e : N

  • n

e

1 # var_list: [5, 4, 3, 2, 1] 2 var_list.reverse() # [1, 2, 3, 4, 5]

 <

l i s t > . c

  • p

y ( )

 R

e t u r n c

  • p

y

  • f

l i s t

 P

a r a m e t e r ( s ) : N

  • p

a r a m e t e r s ; R e t u r n v a l u e : L i s t

1 # [1, 2, 3, 4, 5] 2 var_list.copy() # [1, 2, 3, 4, 5]

slide-15
SLIDE 15

L i s t M e t h

  • d

s

 <

l i s t > . c l e a r ( )

 P

u r g e a l l i t e m s f r

  • m

l i s t

 P

a r a m e t e r ( s ) : N

  • p

a r a m e t e r s ; R e t u r n v a l u e : N

  • n

e

1 # var_list: [1, 2, 3, 4, 5] 2 var_list.clear() # []

slide-16
SLIDE 16

S T O P 4 – C S C 1 1 7 V u l a D B 1 / 2

 D

B r e c

  • r

d s a r e i n f

  • r

m a t b e l

  • w

['Marufu, Anesu;mrfmuf001;MRFMUF001@myuct.ac.za;Support staff', 'Mbogo, Chao;mbgcha002;MBGCHA002@myuct.ac.za;Support staff', 'Zhou, Yin Hong;zhxyin002;ZHXYIN002@myuct.ac.za;Student', 'Zide, Zikhona;zdxzik001;ZDXZIK001@myuct.ac.za;Student', 'Zimuto, Tanaka;zmttan001;ZMTTAN001@myuct.ac.za;Student']

slide-17
SLIDE 17

S T O P 4 – C S C 1 1 7 V u l a D B 2 / 2

 U

s i n g l i s t m e t h

  • d

s c a n w e fi g u r e

  • u

t t h e f

  • l

l

  • w

i n g ?

 H

  • w

m a n y s t u d e n t s , s t a ff a n d t u t

  • r

s a r e t h e r e ?

 C

a n w e fi n d s t u d e n t s w i t h fi r s t n a m e s : I a n & D

  • r
  • t

h y ?

 L

e t ' s r e n a m e ' Z h

  • u

, Y i n H

  • n

g ' t

  • '

Z h

  • u

Y i n '

 C

a n w e p u r g e t h

  • s

e t h a t h a v e d r

  • p

p e d

  • ff

f r

  • m

c

  • u

r s e ?