we can import modules using the module name and import keyword
we can import the full module or specific functions in that module
if there is any reference warning right click on the function and choose ignore
unresolved references
# import turtle
#
#
# turtle.forward(400)
# turtle.circle(250)
# turtle.right(300)
#
# #the done function is used to hold the screen to see the result
# #or else we can use the time module and sleep function
#
#
# for i in range(0,100,10):
# turtle.forward(i)
# turtle.circle(i)
# turtle.right(i)
#
#
# turtle.done()
#if we need only the particular functions we can code like below
# from turtle import circle,done
#
# circle(70)
# done()
#or else we can do use *
# from turtle import *
#
# circle(70)
# done()
#we will get the error if we run the below piece of code
#since the done is common here,we declared as string,but the turtle method
#also has the "done" as function
done = "done with the drawing"
import turtle
turtle.forward(400)
turtle.circle(250)
turtle.right(300)
done()
print(done)
#here we can check the list of objects inside the
#inbuilt modules of the python
#we can also ctrl + click the module name to find the list of objects
print(dir())
#the above line will print
#['__annotations__', '__builtins__', '__cached__', '__doc__',
## '__file__', '__loader__', '__name__', '__package__', '__spec__']
print("="*40)
for i in dir():
print(i)
print(dir('__builtins__'))
#the above line will print
#['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',
# '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__',
# '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
# '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
# '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
# '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']
print("="*40)
for i in dir('__builtins__'):
print(i)
#lets check for the shelve now
import shelve
print(dir())
# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
#'__name__',
# '__package__', '__spec__', 'i', 'shelve']
print(dir(shelve))
# ['BsdDbShelf', 'BytesIO', 'DbfilenameShelf', 'Pickler',
# 'Shelf', 'Unpickler', '_ClosedDict', '__all__', '__builtins__',
# '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',
# 'collections', 'open']
print(dir(shelve.Shelf))
print('=='*20)
for i in dir(shelve.Shelf):
print(i)
#we can use the help function to know the functionality
help(shelve)
print("*"*20)
help(shelve.Shelf)
import random
help(random)
print("*"*20)
help(random.randint)