py 4
py 4
7: User Input
Interactive input
To get input from the user, use the input function (note: in Python 2.x, the function is called
raw_input instead,
although Python 2.x has its own version of input that is completely different):
Security Remark Do not use input() in Python2 - the entered text will be evaluated as if it were a
See this article for further information on the risks of using this function.
The function takes a string argument, which displays it as a prompt and returns a string. The above
code provides a
If the user types "Bob" and hits enter, the variable name will be assigned to the string "Bob":
print(name)
# Out: Bob
Note that the input is always of type str, which is important if you want the user to enter numbers.
Therefore, you
x = input("Write a number:")
x/2
# Out: TypeError: unsupported operand type(s) for /: 'str' and 'int'
float(x) / 2
# Out: 5.0
NB: It's recommended to use try/except blocks to catch exceptions when dealing with user inputs.
For instance, if
your code wants to cast a raw_input into an int, and what the user writes is uncastable, it raises a
ValueError.
A module is a file containing Python definitions and statements. Function is a piece of code which
execute some
logic.
>>> pow(2,3) #8
To check the built in function in python we can use dir(). If called without an argument, return the
names in the
current scope. Else, return an alphabetized list of names comprising (some of) the attribute of the
given object, and
>>> dir(__builtins__)
'ArithmeticError',
'AssertionError',
'AttributeError',
'BaseException',
'BufferError',
'BytesWarning',
'DeprecationWarning',
'EOFError',
'Ellipsis',
'EnvironmentError',
'Exception',
'False',
'FloatingPointError',
'FutureWarning',
'GeneratorExit',
'IOError',
'ImportError',
'ImportWarning',
'IndentationError',
'IndexError',
'KeyError',
'KeyboardInterrupt',
'LookupError',
'MemoryError',
'NameError',
'None',
'NotImplemented',
'NotImplementedError',
'OSError',
'OverflowError',
'PendingDeprecationWarning',
'ReferenceError',
'RuntimeError',
'RuntimeWarning',
'StandardError',
'StopIteration',
'SyntaxError',
'SyntaxWarning',
'SystemError',
'SystemExit',
'TabError',
'True',
'TypeError',
'UnboundLocalError',
'UnicodeDecodeError',
'UnicodeEncodeError',
'UnicodeError',
'UnicodeTranslateError',
'UnicodeWarning',
'UserWarning',
'ValueError',
'Warning',
'ZeroDivisionError',
'__debug__',
'__doc__',
'__import__',
'__name__',
'__package__',
'abs',
'all',
'any',
'apply',
'basestring',
'bin',
'bool',
'buffer',
'bytearray',
'bytes',
'callable',
'chr',
'classmethod',
'cmp',
'coerce',
'compile',
'complex',
'copyright',
'credits',
'delattr',
'dict',
'dir',
'divmod',
'enumerate',
'eval',
'execfile',
'exit',
'file',
'filter',
'float',
'format',
'frozenset',
'getattr',
'globals',
'hasattr',
'hash',
'help',
'hex',
'id',
'input',
'int',
'intern',
'isinstance',
'issubclass',
'iter',
'len',
'license',
'list',
'locals',
'long',
'map',
'max',
'memoryview',
'min',
'next',
'object',
'oct',
'open',
'ord',
'pow',
'print',
'property',
'quit',
'range',
'raw_input',
'reduce',
'reload',
'repr',
'reversed',
'round',
'set',
'setattr',
'slice',
'sorted',
'staticmethod',
'str',
'sum',
'super',
'tuple',
'type',
'unichr',
'unicode',
'vars',
'xrange',
'zip'
To know the functionality of any function, we can use built in function help .
>>> help(max)
max(...)
Built in modules contains extra functionalities. For example to get square root of a number we need
to include math
module.
To know all the functions in a module we can assign the functions list to a variable, and then print
the variable.
>>> dir(math)
>>> math.__doc__
In addition to functions, documentation can also be provided in modules. So, if you have a file named
def sayHello():
>>> helloWorld.__doc__
>>> helloWorld.sayHello.__doc__
For any user defined type, its attributes, its class's attributes, and recursively the attributes of its
class's base
... pass
...
>>> dir(MyClassObject)
Any data type can be simply converted to string using a builtin function called str. This function is
called by default
# hello.py
def say_hello():
print("Hello!")
For modules that you have made, they will need to be in the same directory as the file that you are
importing them
into. (However, you can also put them into the Python lib directory with the pre-included modules,
but should be
avoided if possible.)
$ python
>>> hello.say_hello()