Tutorial A4 – Solutions¶
1 Can you answer these questions?
What is a Python object?
Everything (which is not considered a syntax element) is considered an object in Python: Variables, functions, modules, …
How would you assign a value to a variable?
Use the = operator to assign from right to left.
How can you know, something is an object in Python?
Objects have a type. Discover the type by using type(object).
How can you know a Python object is a function?
Learn details about a Python object by using help(object). Functions can be called as function(arguments).
How can you get an overview of all the attributes of an object?
dir(object)
How can you discover all objects currently available?
dir()
2 Call help() on the built-in Python function help to see what it does.
[1]:
help(help)
Help on _Helper in module _sitebuiltins object:
class _Helper(builtins.object)
| Define the builtin 'help'.
|
| This is a wrapper around pydoc.help that provides a helpful message
| when 'help' is typed at the Python interactive prompt.
|
| Calling help() at the Python prompt starts an interactive help session.
| Calling help(thing) prints help for the python object 'thing'.
|
| Methods defined here:
|
| __call__(self, *args, **kwds)
| Call self as a function.
|
| __repr__(self)
| Return repr(self).
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
3 Which methods (disregarding double underscore methods __method__) does a str object have? Try out those of them with an example of your choice that deal with case-formatting (upper/lower case letters) and explain shortly what they do.
[2]:
# Get all callable attributes (no double underscores)
[
a
for a in dir(str)
if (not a.startswith('__')) # no dunder?
& hasattr(getattr(str, a), "__call__") # callable?
]
[2]:
['capitalize',
'casefold',
'center',
'count',
'encode',
'endswith',
'expandtabs',
'find',
'format',
'format_map',
'index',
'isalnum',
'isalpha',
'isdecimal',
'isdigit',
'isidentifier',
'islower',
'isnumeric',
'isprintable',
'isspace',
'istitle',
'isupper',
'join',
'ljust',
'lower',
'lstrip',
'maketrans',
'partition',
'replace',
'rfind',
'rindex',
'rjust',
'rpartition',
'rsplit',
'rstrip',
'split',
'splitlines',
'startswith',
'strip',
'swapcase',
'title',
'translate',
'upper',
'zfill']
[3]:
s = "blind Text"
print(s.capitalize()) # Upper case first letters
print(s.swapcase()) # Invert lower to upper case and vice versa
print(s.lower()) # All lower case
print(s.upper()) # All upper case
print(s.casefold()) # Case less comparison
Blind text
BLIND tEXT
blind text
BLIND TEXT
blind text
4 Which methods (disregarding double underscore methods __method__) does a complex object have? Try out all of them with an example of your choice and explain shortly what they do.
[4]:
# Get all callable attributes (no double underscores)
[
a
for a in dir(complex)
if (not a.startswith('__')) # no dunder?
& hasattr(getattr(complex, a), "__call__") # callable?
]
[4]:
['conjugate']
[5]:
c = 1 + 1j
print(c.conjugate)
<built-in method conjugate of complex object at 0x7f6e1846b970>
5 When you call print(string), the value of string is printed to the screen. Call help() on the built-in Python function print to see what it does. Can you figure out just by reading the help message how to automatically print an exclamation mark (!) after the print?
[6]:
help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
[7]:
print("string", end="!")
string!