advanced_features_of_functions/questions.rst
changeset 522 d33698326409
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/advanced_features_of_functions/questions.rst	Wed Dec 01 16:51:35 2010 +0530
@@ -0,0 +1,109 @@
+Objective Questions
+-------------------
+
+.. A mininum of 8 questions here (along with answers)
+
+1. All arguments of a function cannot have default values. True or
+   False? 
+
+   Answer: False
+   
+#. When calling a function, the arguments 
+
+   1. should always be in the order in which they are defined.
+   #. can be in any order
+   #. only keyword arguments can be in any order, but should be called
+      at the beginning.
+   #. only keyword arguments can be in any order, but should be called
+      at the end.
+
+   Answer: only keyword arguments can be in any order, but should be called
+           at the end.
+
+#. Given the following function, identify the keywords with default
+   values. 
+   ::
+   
+     def seperator(char, count=40, show=False):
+
+         if show:
+             print char * count
+
+         return char * count
+
+   Answer: ``count``, ``show``
+
+#. Given the following function, 
+   ::
+   
+     def seperator(char, count=40, show=False):
+
+         if show:
+             print char * count
+
+         return char * count
+
+   What is the output of ``separator("+", 1, True)``.
+
+   Answer: ``+`` is printed and returned. 
+
+
+#. Given the following function, 
+   ::
+   
+     def seperator(char, count=40, show=False):
+
+         if show:
+             print char * count
+
+         return char * count
+
+   What is the output of ``separator("+", True, 1)``.
+
+   Answer: ``+`` is printed and returned. 
+
+#. Given the following function, 
+   ::
+   
+     def seperator(char, count=40, show=False):
+
+         if show:
+             print char * count
+
+         return char * count
+
+   What is the output of ``separator("+", show=True, 1)``.
+
+   Answer: SyntaxError
+
+#. The following is a valid function definition. True or False? Why?
+   ::
+   
+     def seperator(count=40, char, show=False):
+
+         if show:
+             print char * count
+
+         return char * count
+
+   Answer: False. All parameters with default arguments should be
+   defined at the end. 
+
+#. Which of the following cannot be used as default values for
+   arguments? 
+     
+   a. floats
+   #. lists
+   #. functions
+   #. booleans
+   #. None of the Above
+
+   Answer: None of the above. 
+
+
+Larger Questions
+----------------
+
+1. 
+
+2.