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 r i a t e t e s t c a s e s B o u n d a r i e s O n , a b o v e a n d b e l o w b o 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 o a g e r a n g e s —< 6 5 a n d > 6 5
UCT Department of Computer Science Computer Science 1017F Lists Lighton Phiri <lphiri@cs.uct.ac.za> April 2015
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 o n n a t i v e d a t a t y p e s ?
I n t r o d u c t i o n D a t a s t r u c t u r e s a r e u s e d t o s t o r e c o l l e c t i o n s o f i n f o r m a t i o n b y c o m p o 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 o n h a s a n u m b e r o 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 o 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 o r e i t e m s o 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 o m m a s L i s t s a n d d i c t i o n a r i e s a r e m o s t c o m m o n l y u s e d F o r t h e p u r p o s e s o f t h i s c o u r s e , w e s h a l l N O T l o o k a t t u p l e s
L i s t s L i s t s a r e u s e d t o s t o r e a n o r d e r e d c o l l e c t i o n o f e l e m e n t s E l e m e n t s c a n b e o f a n y t y p e o r e v e n a n o 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 o p t i o 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 o m 0 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 o 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 !
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 o f w a y s t o 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 o t i c e L i n e 7
S T O P 2 – P a l i n d r o m e P r i m e s 1 def fxn_primes (a, b): 1 def fxn_palip (a_l, b_l): 2 result = [] 2 # LOGIC 3 # LOGIC 3 # print out results 4 return result # list 4 5 5 6 def fxn_reverse (a, b) 6 var_1 = eval(input(“a:”)) 7 result = [] 7 var_2 = eval(input(“b:”)) 8 # LOGIC 8 9 return result 9 fxn_palip(var_1, var_2) 10 10
L i s t O p e r a t i o n s C o n c a t e n a t i o n 1 [1, 2] + [“a”, “b”] # [1, 2, “a”, “b”] R e p e t i t i o 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 o 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
S T O P 3 – M e t h o d s v s F u n c t i o 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 o 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 ?
L i s t M e t h o 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 o f l i s t P a r a m e t e r ( s ) : i t e m o f a n y d a t a t y p e ; R e t u r n v a l u e : N o 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 o n e 1 # var_list: [1, 2, 3, 4, 5] 2 var_list.extend(“CT”) # [1, 2, 3, 4, 5, “C”, “T”]
L i s t M e t h o 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 o s i t i o n P a r a m e t e r ( s ) : i n d e x & i t e m t o i n s e r t ; R e t u r n v a l u e : N o 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 o v e ( x ) R e m o v e fi r s t o c c u r a n c e o 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 o n e 1 # [1, 2, 3, 4, 5, “C”, “T”, 6] 2 var_list.remove(“C”) # [1, 2, 3, 4, 5, “T”, 6]
L i s t M e t h o d s < l i s t > . p o p ( < i > ) R e m o v e i t e m a t s p e c i fi e d p o s i t i o n a n d r e t u r n i t ; r e m o v e l a s t i t e m i f n o 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 o 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 o 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”) # ???
L i s t M e t h o d s < l i s t > . c o u n t ( x ) R e t u r n n u m b e r o f o c c u r r e n c e s o 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 o f o 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 o r t ( k e y = N o n e , r e v e r s e = F a l s e ) S o 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 o 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 o n e 1 # [1, 2, 3, 4, 5] 2 var_list.sort(reverse=True) # [5, 4, 3, 2, 1]
L i s t M e t h o 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 o p a r a m e t e r s ; R e t u r n v a l u e : N o n e 1 # var_list: [5, 4, 3, 2, 1] 2 var_list.reverse() # [1, 2, 3, 4, 5] < l i s t > . c o p y ( ) R e t u r n c o p y o f l i s t P a r a m e t e r ( s ) : N o 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]
L i s t M e t h o 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 o m l i s t P a r a m e t e r ( s ) : N o p a r a m e t e r s ; R e t u r n v a l u e : N o n e 1 # var_list: [1, 2, 3, 4, 5] 2 var_list.clear() # []
S T O P 4 – C S C 1 0 1 7 V u l a D B 1 / 2 D B r e c o r d s a r e i n f o r m a t b e l o 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 ']
Recommend
More recommend