# Learn Python Series (#9) - Using `import`  #### What Will I Learn? - You will learn what an import actually is, - what the difference is between a (sub)package and a (sub)module, - some various ways to import modules and module functionality, - how to alias modules and module attributes, - about how to get more information about a package, its modules and submodules. #### Requirements - A working modern computer running macOS, Windows or Ubuntu - An installed Python 3(.6) distribution, such as (for example) the Anaconda Distribution - The ambition to learn Python programming #### Difficulty Intermediate #### Curriculum (of the `Learn Python Series`): - [Learn Python Series - Intro](https://utopian.io/utopian-io/@scipio/learn-python-series-intro) - [Learn Python Series (#2) - Handling Strings Part 1](https://utopian.io/utopian-io/@scipio/learn-python-series-2-handling-strings-part-1) - [Learn Python Series (#3) - Handling Strings Part 2](https://utopian.io/utopian-io/@scipio/learn-python-series-3-handling-strings-part-2) - [Learn Python Series (#4) - Round-Up #1](https://utopian.io/utopian-io/@scipio/learn-python-series-4-round-up-1) - [Learn Python Series (#5) - Handling Lists Part 1](https://utopian.io/utopian-io/@scipio/learn-python-series-5-handling-lists-part-1) - [Learn Python Series (#6) - Handling Lists Part 2](https://utopian.io/utopian-io/@scipio/learn-python-series-6-handling-lists-part-2) - [Learn Python Series (#7) - Handling Dictionaries](https://utopian.io/utopian-io/@scipio/learn-python-series-7-handling-dictionaries) - [Learn Python Series (#8) - Handling Tuples](https://utopian.io/utopian-io/@scipio/learn-python-series-8-handling-tuples) # Learn Python Series (#9) - Using `import` Up until here we have been discussing standard built-in Python data types, methods, functions and other mechanisms. And already we've covered quite a lot, which led to (for example in the Round-Up #1 episode) the creation of various useful self-developed functions. However, only as of now, **the real Python Fun has just begun**! By using `import`. In this episode you will learn what an `import` actually is, what the difference between a (sub)package and a (sub)module is, some various ways to import modules and module functionality, how to alias modules and module attributes, and how to get more information about a package, its modules and submodules. # `import`? Depending on which Python distribution you are using, for example Anaconda, some (or a lot of) **packages and modules** are already installed by default. They contain functionality, that becomes available to use in your own programs when you `import` it to your project. Once you have imported a package or module, you can use it in the current **project scope**. The functionality then gets **defined**. When is certain Python functionality considered to be "defined" and therefore "usable"? - in case the functionality is a part of your default Python distribution, for example a `tuple`, an `int` or a `list` or a `for` and `while`; - when you've written a function `def` or a `class` or if you've declared a statement inside your current program file; - when the functionality is inside another file (than the current one you are running) and that you have made it available inside your current file using an `import` statement. # Packages versus modules The words **package** and **module** are oftentimes used as synonyms but they're not entirely the same. - a Python **package** is a directory with Python files in it and a "special file" named `__init__.py`; - a **module** is a Python file that includes functions, classes, variable declarations. A module helps you to organize your code functionality, to put it in "blocks" that you can re-use when you need it, and only define it once (much like is the case with a function `def`). Therefore a module contains the actual functionality, and is part of a package. A package is like a "container", and can contain multiple modules, and even other packages. So you can import entire packages, or individual modules, or functionality inside a module. Also: - in case you create a project directory that consists of multiple Python files, you could perceive your current project directory as a package and each Python file as a module; - in case you want to make functionality in one of your files available to your other files, you need to import your own file as a module; - you can import from other Python packages which are included in your Python distribution by default; - and you can import Python packages developed by other, external, developers. Of course in this case, you first need to download & install such external packages before you're able to import them. # `import` your own Python modules Let's assume you have a current working directory called `my_project/` and in it is a file called `sup_funcs.py` (short for "support functions"). The contents of this file `sup_funcs.py`, which you wrote yourself, is the following code: ```python def friendly_greeter(name): print("Hi {}, it's really good to see you again!".format(name)) ``` Now let's also assume you've created another file named `main.py`, located inside `my_project/` as well. Suppose you want to use the `friendly_greeter()` function, located inside `sup_funcs.py`, and call it from within `main.py`. How do you do that? Simply `import` the entire `sup_funcs.py` file inside `main.py`, like so: ```python import sup_funcs ``` Just leave out the `.py` file extension. You have now **defined** and **made available** the contents of `sup_funcs.py` inside `main.py`. It's common practise to put all your `import` statements at the top of each Python file but that's not a necessity: the import statements could be anywhere. Now to use the the `friendly_greeter()` function you need to call it by preceeding the module name in which the function is defined first, like so: ```python sup_funcs.friendly_greeter('scipio') ``` Hi scipio, it's really good to see you again! # Using `from [module_name] import [object]` In case you only want to import certain objects from a module, in this case only the function `friendly_greeter()` stored inside `sup_funcs.py`, you can use a `from [module_name] import [object]` statement. That way, you don't have to preceed the function name with the module it's contained in. For example: ```python from sup_funcs import friendly_greeter friendly_greeter('amosbastian') ``` Hi amosbastian, it's really good to see you again! **Nota bene:** it is allowed to use the `*` wildcard as an object name. In that case, you're directly importing everything contained in the imported module. While that might seem convenient - because you're importing all the needed module functionality in one go - the imported module might have the same object names as you declared inside your own Python program, which would cause bugs / unwanted and unforeseen program behavior. So even though you could use the `*` wildcard, it's better to avoid using it. What you could do as an alternative is just use `import module_name`, and assign individual module functionality to local variables. For example: ```python import sup_funcs friendly_greeter = sup_funcs.friendly_greeter friendly_greeter('freedom') ``` Hi freedom, it's really good to see you again! # Importing built-in modules Python comes with a lot of built-in modules containing lots and lots of functionality you can freely use. Up until now, we haven't used any of them, not have I explained how to use them. We'll discuss the latter over the course of the forthcoming `Learn Python Series` episodes, but for now, let's just show you how to import a built-in module. For example let's import some functionality from the `math` module: ```python import math print(math.pi) # 3.141592653589793 ``` 3.141592653589793 3.141592653589793 That `pi` approximation was not available to use prior to importing the `math` module, but now it is! Again, if we want to use `pi` with preceeding the `math` module, we need to import it as follows: ```python from math import pi print(pi) # 3.141592653589793 ``` 3.141592653589793 # Import multiple (built-in) modules You can import to your program as many modules, and / or individual objects from them, as you like. Either with multiple import statements, or by comma-separating multiple module names in one import statement. For example: ```python import math, random for i in range(3): print(random.randint(1,10) * math.pi, end=' ') # 31.41592653589793 15.707963267948966 18.84955592153876 ``` 31.41592653589793 15.707963267948966 18.84955592153876 Or ... ```python from math import pow from random import randint def squared(num): return int(pow(num, 2)) print(squared(randint(1,5))) # 16 , if randint picked 4 ``` 16 # Aliasing modules using `as` Oftentimes it's convenient to use your own module and function names over the default ones (as in, how the imported module and the objects inside it are originally named). You can modify those default names, for example for brevity or in case you have already used a module (function) name, by **aliasing modules and/or module objects**. You can construct an import alias like so: `import [module_name] as [something_else]` Let's for example import alias the `math` module as `m` and use `pi` from there: ```python import math as m print(m.pi) # 3.141592653589793 ``` 3.141592653589793 Or, a nonsense example to alias an already short object name: ```python from math import pi as the_number_pi print(the_number_pi) # 3.141592653589793 ``` 3.141592653589793 # Importing external packages and modules If you want to import an external Python module, before being able to import (and use) it, you could first check from your Python interpreter (at the time I'm writing this, for me it's a Jupyter Notebook iPython interpreter) if the given module is ready to be used. Inside your Python interpreter, just try to import the given module and check the interpreter's response. If you don't receive feedback from the interpreter, that (most probably) means you can freely call the module. But in case you do get an error message, your Python interpreter couldn't find nor use the module you are trying to import. For example, on trying to import a bogus module: ```python import bla ``` --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-37-e4221d4a77a3> in <module>() ----> 1 import bla ModuleNotFoundError: No module named 'bla' Your Python 3.6 distribution almost certainly also allows you to install external modules and packages using `pip` from the command line. Let's say for example you want to install (using pip) the package `matplotlib` (which we'll discuss in forthcoming `Learn Python Series` episodes). Then first, on the command line (so **not** inside your Python interpreter but in "the terminal") do this: `pip install matplotlib` And afterwards, once it is installed, you can import it inside your own program, exactly like we've discussed above regarding your own modules and using built-in Python modules: ```python import matplotlib ``` # Exploring module objects using `dir()` and `__doc__` Having all those module functionalities available to use is of course very interesting and might seem powerful as well, but how do you know (apart from just using everything I wrote in the `Learn Python Series` of course!) what exactly is available for you to use inside a module? In general, the `dir()` function aims to return a list of the object's attributes; a sorted strings list including the names inside the module. If the object has a `__dir__()` method then `dir()` calls that method and returns its attribute list, and otherwise it tries to gather information using the `__dict__` attribute and object type, but then the returned list could be incomplete. Using `dir()` to gather information about, for example, the `math` module, can be done like so: ```python dir(math) ``` ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc'] In case you want to gather more information about a specific module attribute, it could be worth checking if any info is contained in the attribute's `docstring` (if available), via calling `__doc__`. For example: ```python print(math.sin.__doc__) ``` sin(x) Return the sine of x (measured in radians). # Locating and importing package submodules In case a (large) package, such as - for example - `matplotlib` contains **submodules**, then you need to explicitly import those submodules in order to use the functions that submodule defines. But how to locate those submodules? Python provides a built-in module called `pkgutil` ("package utilities") that you can use (among other things) to list a package's submodules with. To list all the `matplotlib` submodules for example, you can do this: ```python import matplotlib import pkgutil package = matplotlib for importer, modname, ispkg in pkgutil.iter_modules(package.__path__): print("Submodule: {}, Package: {}".format(modname, ispkg)) ``` Submodule: _animation_data, Package: False Submodule: _cm, Package: False Submodule: _cm_listed, Package: False Submodule: _cntr, Package: False Submodule: _color_data, Package: False Submodule: _contour, Package: False Submodule: _image, Package: False Submodule: _mathtext_data, Package: False Submodule: _path, Package: False Submodule: _png, Package: False Submodule: _pylab_helpers, Package: False Submodule: _qhull, Package: False Submodule: _tri, Package: False Submodule: _version, Package: False Submodule: afm, Package: False Submodule: animation, Package: False Submodule: artist, Package: False Submodule: axes, Package: True Submodule: axis, Package: False Submodule: backend_bases, Package: False Submodule: backend_managers, Package: False Submodule: backend_tools, Package: False Submodule: backends, Package: True Submodule: bezier, Package: False Submodule: blocking_input, Package: False Submodule: category, Package: False Submodule: cbook, Package: True Submodule: cm, Package: False Submodule: collections, Package: False Submodule: colorbar, Package: False Submodule: colors, Package: False Submodule: compat, Package: True Submodule: container, Package: False Submodule: contour, Package: False Submodule: dates, Package: False Submodule: docstring, Package: False Submodule: dviread, Package: False Submodule: figure, Package: False Submodule: finance, Package: False Submodule: font_manager, Package: False Submodule: fontconfig_pattern, Package: False Submodule: ft2font, Package: False Submodule: gridspec, Package: False Submodule: hatch, Package: False Submodule: image, Package: False Submodule: legend, Package: False Submodule: legend_handler, Package: False Submodule: lines, Package: False Submodule: markers, Package: False Submodule: mathtext, Package: False Submodule: mlab, Package: False Submodule: offsetbox, Package: False Submodule: patches, Package: False Submodule: path, Package: False Submodule: patheffects, Package: False Submodule: projections, Package: True Submodule: pylab, Package: False Submodule: pyplot, Package: False Submodule: quiver, Package: False Submodule: rcsetup, Package: False Submodule: sankey, Package: False Submodule: scale, Package: False Submodule: sphinxext, Package: True Submodule: spines, Package: False Submodule: stackplot, Package: False Submodule: streamplot, Package: False Submodule: style, Package: True Submodule: table, Package: False Submodule: testing, Package: True Submodule: texmanager, Package: False Submodule: text, Package: False Submodule: textpath, Package: False Submodule: ticker, Package: False Submodule: tight_bbox, Package: False Submodule: tight_layout, Package: False Submodule: transforms, Package: False Submodule: tri, Package: True Submodule: ttconv, Package: False Submodule: type1font, Package: False Submodule: units, Package: False Submodule: widgets, Package: False Next, you can import (for example) the submodule `widgets` as follows, and list all its attributes afterwards, like so: ```python import matplotlib.widgets as widgets dir(widgets) ``` ['AxesWidget', 'Button', 'CheckButtons', 'Circle', 'Cursor', 'Ellipse', 'EllipseSelector', 'Lasso', 'LassoSelector', 'Line2D', 'LockDraw', 'MultiCursor', 'PolygonSelector', 'RadioButtons', 'Rectangle', 'RectangleSelector', 'Slider', 'SpanSelector', 'SubplotTool', 'TextBox', 'ToolHandles', 'Widget', '_SelectorWidget', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'absolute_import', 'blended_transform_factory', 'copy', 'dist', 'division', 'np', 'print_function', 'rcParams', 'six', 'unicode_literals', 'zip'] # What did we learn, hopefully? That Python consists of "building blocks" that you can choose to import to your project in order to use its functionality and build upon. The Python Standard Library already includes a large amount of built-in functionality. A Python distribution such as Anaconda comes with many more pre-installed modules. Then there's a gigantic amount of externally installable modules. Concluding, the ready-to-use Python module "building blocks" ecosystem is **enormous**. In the next `Learn Python Series` episodes we'll review several well-known Python modules, and I'll show you a few ways of how to use them. ### Thank you for your time! <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@scipio/learn-python-series-9-using-import">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>
author | scipio | ||||||
---|---|---|---|---|---|---|---|
permlink | learn-python-series-9-using-import | ||||||
category | utopian-io | ||||||
json_metadata | "{"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":81598961,"name":"cpython","full_name":"python/cpython","html_url":"https://github.com/python/cpython","fork":false,"owner":{"login":"python"}},"pullRequests":[],"platform":"github","type":"tutorials","tags":["utopian-io","steemdev","steemstem","open-source","python"],"users":["scipio"],"links":["https://res.cloudinary.com/hpiynhbhq/image/upload/v1521025447/pclw5zii7qkhuuj2z1ug.png","https://utopian.io/utopian-io/@scipio/learn-python-series-intro","https://utopian.io/utopian-io/@scipio/learn-python-series-2-handling-strings-part-1","https://utopian.io/utopian-io/@scipio/learn-python-series-3-handling-strings-part-2","https://utopian.io/utopian-io/@scipio/learn-python-series-4-round-up-1","https://utopian.io/utopian-io/@scipio/learn-python-series-5-handling-lists-part-1","https://utopian.io/utopian-io/@scipio/learn-python-series-6-handling-lists-part-2","https://utopian.io/utopian-io/@scipio/learn-python-series-7-handling-dictionaries","https://utopian.io/utopian-io/@scipio/learn-python-series-8-handling-tuples"],"image":["https://res.cloudinary.com/hpiynhbhq/image/upload/v1521025447/pclw5zii7qkhuuj2z1ug.png"],"moderator":{"account":"amosbastian","time":"2018-03-14T11:46:54.765Z","reviewed":true,"pending":false,"flagged":false},"questions":[{"question":"Is the project description formal?","answers":[{"value":"Yes itβs straight to the point","selected":true,"score":10},{"value":"Need more description ","selected":false,"score":5},{"value":"Not too descriptive","selected":false,"score":0}],"selected":0},{"question":"Is the language / grammar correct?","answers":[{"value":"Yes","selected":true,"score":20},{"value":"A few mistakes","selected":false,"score":10},{"value":"It's pretty bad","selected":false,"score":0}],"selected":0},{"question":"Was the template followed?","answers":[{"value":"Yes","selected":true,"score":10},{"value":"Partially","selected":false,"score":5},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is there information about the additional frameworks?","answers":[{"value":"Yes, everything is explained","selected":true,"score":5},{"value":"Yes, but not enough","selected":false,"score":3},{"value":"No details at all","selected":false,"score":0}],"selected":0},{"question":"Is there code in the tutorial?","answers":[{"value":"Yes, and itβs well explained","selected":true,"score":5},{"value":"Yes, but no explanation","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial explains technical aspects well enough?","answers":[{"value":"Yes, it teaches how and why about technical aspects","selected":true,"score":5},{"value":"Yes, but itβs not good/enough","selected":false,"score":3},{"value":"No, it explains poorly","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial general and dense enough?","answers":[{"value":"Yes, itβs general and dense","selected":true,"score":5},{"value":"Kinda, it might be more generalized","selected":false,"score":3},{"value":"No, itβs sliced unnecessarily to keep part number high","selected":false,"score":0}],"selected":0},{"question":"Is there an outline for the tutorial content at the beginning of the post","answers":[{"value":"Yes, there is a well prepared outline in βWhat will I learn?β or another outline section","selected":true,"score":5},{"value":"Yes, but there is no proper listing for every step of the tutorial or itβs not detailed enough","selected":false,"score":3},{"value":"No, there is no outline for the steps.","selected":false,"score":0}],"selected":0},{"question":"Is the visual content of good quality?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Yes, but bad quality","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is this a tutorial series?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Yes, but first part","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial post structured?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Not so good","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0}],"score":100}" | ||||||
created | 2018-03-14 11:09:42 | ||||||
last_update | 2018-03-14 11:46:54 | ||||||
depth | 0 | ||||||
children | 12 | ||||||
last_payout | 2018-03-21 11:09:42 | ||||||
cashout_time | 1969-12-31 23:59:59 | ||||||
total_payout_value | 57.484 HBD | ||||||
curator_payout_value | 14.388 HBD | ||||||
pending_payout_value | 0.000 HBD | ||||||
promoted | 0.000 HBD | ||||||
body_length | 19,121 | ||||||
author_reputation | 34,229,826,851,736 | ||||||
root_title | "Learn Python Series (#9) - Using Import" | ||||||
beneficiaries |
| ||||||
max_accepted_payout | 1,000,000.000 HBD | ||||||
percent_hbd | 10,000 | ||||||
post_id | 44,348,340 | ||||||
net_rshares | 28,928,252,242,349 | ||||||
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
drifter1 | 0 | 7,709,307,592 | 100% | ||
eric-boucher | 0 | 180,387,268,305 | 50% | ||
olyup | 0 | 52,544,364,464 | 100% | ||
ghasemkiani | 0 | 51,085,471,149 | 5% | ||
thatmemeguy | 0 | 4,709,372,569 | 50% | ||
decebal2dac | 0 | 24,328,796,097 | 75% | ||
dyancuex | 0 | 956,234,268 | 50% | ||
michelios | 0 | 46,482,989,919 | 20% | ||
toninux | 0 | 655,578,742 | 50% | ||
jdc | 0 | 792,884,100 | 20% | ||
bargolis | 0 | 677,225,617 | 5% | ||
mkt | 0 | 42,353,445,728 | 100% | ||
diogogomes | 0 | 297,127,927 | 63% | ||
helo | 0 | 10,115,573,226 | 100% | ||
walnut1 | 0 | 5,902,556,475 | 5% | ||
ilyastarar | 0 | 74,166,466,311 | 50% | ||
flauwy | 0 | 66,726,373,419 | 35% | ||
monomyth | 0 | 85,965,302,940 | 100% | ||
herman2141 | 0 | 137,874,600 | 50% | ||
zoef | 0 | 102,528,147,858 | 100% | ||
mahdiyari | 0 | 11,398,805,310 | 20% | ||
ronimm | 0 | 12,581,032,638 | 100% | ||
pinoy | 0 | 132,053,088 | 30% | ||
mufasatoldyou | 0 | 7,650,082,427 | 100% | ||
sensation | 0 | 207,159,117 | 100% | ||
simonluisi | 0 | 2,290,860,183 | 100% | ||
thinkkniht | 0 | 500,079,142 | 75% | ||
daiky69 | 0 | 10,244,802,425 | 100% | ||
ewuoso | 0 | 38,624,033,731 | 20% | ||
jfuenmayor96 | 0 | 2,434,554,354 | 50% | ||
onos | 0 | 57,090,116 | 5% | ||
planetenamek | 0 | 964,820,860 | 10% | ||
jasonbu | 0 | 12,061,833,540 | 50% | ||
letsmakes | 0 | 252,142,499 | 50% | ||
nettybot | 0 | 10,069,124,315 | 20% | ||
drigweeu | 0 | 314,188,510 | 3% | ||
justdentist | 0 | 1,178,595,937 | 2% | ||
fabiyamada | 0 | 6,880,943,157 | 100% | ||
matrixonsteem | 0 | 536,561,506 | 100% | ||
cifer | 0 | 3,014,762,307 | 80% | ||
steemliberator | 0 | 677,895,748 | 100% | ||
tradeownsystems | 0 | 445,514,726 | 100% | ||
jesdn16 | 0 | 2,590,103,945 | 100% | ||
xtramedium | 0 | 246,436,837 | 50% | ||
odibezeking | 0 | 360,008,806 | 100% | ||
msp3k | 0 | 5,381,563,093 | 100% | ||
witnessstats | 0 | 546,446,159 | 100% | ||
stoodkev | 0 | 15,329,969,679 | 10% | ||
dakeshi | 0 | 3,267,057,343 | 50% | ||
jakemcworc | 0 | 496,385,580 | 100% | ||
luisrod | 0 | 116,008,370 | 15% | ||
ansonoxy | 0 | 1,724,551,697 | 100% | ||
celestal | 0 | 19,067,924,854 | 100% | ||
jamesbarraclough | 0 | 3,564,862,533 | 100% | ||
smafey | 0 | 1,081,610,775 | 50% | ||
hillaryaa | 0 | 1,152,463,094 | 100% | ||
espoem | 0 | 23,427,769,546 | 40% | ||
maneki-neko | 0 | 1,781,922,305 | 3% | ||
timmyeu | 0 | 791,416,167 | 50% | ||
r2steem2 | 0 | 539,960,238 | 100% | ||
prosviren | 0 | 558,626,693 | 100% | ||
maxwell95 | 0 | 160,486,361 | 50% | ||
loshcat | 0 | 1,796,760,902 | 100% | ||
steemline | 0 | 200,694,246 | 100% | ||
steemcreate | 0 | 571,829,752 | 100% | ||
omersurer | 0 | 207,683,924 | 1% | ||
idlebright | 0 | 3,147,952,749 | 50% | ||
trabajadigital | 0 | 291,274,379 | 50% | ||
odebgaming | 0 | 429,294,259 | 100% | ||
utopian-io | 0 | 27,636,974,926,360 | 20% | ||
steaknsteem | 0 | 2,013,395,489 | 50% | ||
masud222 | 0 | 224,509,446 | 50% | ||
parag | 0 | 224,761,849 | 50% | ||
kimaben | 0 | 281,914,149 | 25% | ||
kslo | 0 | 2,512,896,378 | 50% | ||
mrmaracucho | 0 | 590,156,523 | 100% | ||
nathalie13 | 0 | 825,807,333 | 100% | ||
not-a-bird | 0 | 1,659,217,692 | 25% | ||
adhew | 0 | 61,532,000 | 10% | ||
bitopia | 0 | 1,445,115,812 | 100% | ||
eleonardo | 0 | 62,557,812 | 10% | ||
maane | 0 | 528,508,180 | 50% | ||
rdvn | 0 | 3,904,132,881 | 50% | ||
zohaib715 | 0 | 327,720,353 | 50% | ||
evilest-fiend | 0 | 2,474,464,613 | 100% | ||
scipio | 0 | 110,799,304,132 | 100% | ||
thashadowbrokers | 0 | 70,313,520 | 100% | ||
studytext | 0 | 151,004,014 | 25% | ||
greenorange | 0 | 609,471,115 | 100% | ||
muhammadkamal | 0 | 541,273,039 | 100% | ||
checkthisout | 0 | 821,476,271 | 50% | ||
navx | 0 | 2,032,398,162 | 70% | ||
handfree42 | 0 | 227,040,353 | 50% | ||
lextenebris | 0 | 5,599,376,299 | 20% | ||
family.app | 0 | 94,940,279 | 100% | ||
not-a-cat | 0 | 1,223,622,919 | 100% | ||
varja | 0 | 517,705,917 | 50% | ||
maphics | 0 | 104,178,269 | 100% | ||
dethclad | 0 | 1,527,489,816 | 50% | ||
rosemarynoble | 0 | 107,623,034 | 10% | ||
sebastiengllmt | 0 | 303,438,571 | 50% | ||
utopian-1up | 0 | 17,925,567,803 | 100% | ||
brotato | 0 | 319,033,877 | 100% | ||
pizaz | 0 | 312,364,832 | 100% | ||
triplethreat | 0 | 69,042,318 | 100% | ||
dootdoot | 0 | 51,522,768 | 100% | ||
wewt | 0 | 5,425,413,367 | 20% | ||
conflaxus | 0 | 69,007,843 | 100% | ||
tittilatey | 0 | 70,298,565 | 100% | ||
cajun | 0 | 312,917,634 | 100% | ||
coonass | 0 | 312,587,491 | 100% | ||
squirrelnuts | 0 | 312,449,109 | 100% | ||
odesanya | 0 | 61,253,076 | 10% | ||
luoq | 0 | 9,376,334,162 | 50% | ||
barut | 0 | 635,285,671 | 50% | ||
steemdevs | 0 | 312,201,339 | 100% | ||
phgnomo | 0 | 5,731,155,434 | 100% | ||
carsonroscoe | 0 | 5,979,154,131 | 50% | ||
jeezy | 0 | 68,978,357 | 100% | ||
test.with.dots | 0 | 70,211,493 | 100% | ||
pi-pi | 0 | 68,944,980 | 100% | ||
listentosteem | 0 | 68,941,261 | 100% | ||
zlatkamrs | 0 | 411,016,265 | 70% | ||
amosbastian | 0 | 20,987,918,568 | 100% | ||
bobsthinking | 0 | 4,611,276,500 | 100% | ||
acrywhif | 0 | 3,338,033,453 | 80% | ||
xplore | 0 | 533,951,059 | 50% | ||
gravy | 0 | 68,920,790 | 100% | ||
layanmarissa | 0 | 224,927,342 | 50% | ||
proffgodswill | 0 | 61,299,229 | 10% | ||
nataly2317 | 0 | 226,745,170 | 50% | ||
sweeverdev | 0 | 1,052,002,634 | 50% | ||
isacastillor | 0 | 1,262,764,931 | 95% | ||
devilonwheels | 0 | 1,794,211,133 | 10% | ||
plloi | 0 | 616,228,477 | 100% | ||
johnesan | 0 | 12,774,032,465 | 100% | ||
rhotimee | 0 | 5,795,937,658 | 50% | ||
jrmiller87 | 0 | 2,453,873,215 | 100% | ||
solomon507 | 0 | 539,953,437 | 50% | ||
patatesyiyen | 0 | 81,722,479 | 12.5% | ||
deejee | 0 | 122,575,017 | 20% | ||
e-babil | 0 | 1,475,686,909 | 40% | ||
onin91 | 0 | 437,329,306 | 50% | ||
neneandy | 0 | 3,601,187,099 | 50% | ||
isabella394 | 0 | 2,485,922,576 | 100% | ||
sanyjaya | 0 | 427,340,072 | 100% | ||
emailbox19149 | 0 | 159,609,131 | 50% | ||
videosteemit | 0 | 1,477,262,851 | 25% | ||
lemony-cricket | 0 | 10,282,957,731 | 20% | ||
rayday | 0 | 478,591,226 | 100% | ||
yeswanth | 0 | 613,401,995 | 100% | ||
kaking | 0 | 230,237,818 | 50% | ||
exploreand | 0 | 6,142,789,987 | 25% | ||
blaize-eu | 0 | 1,231,246,778 | 90% | ||
petvalbra | 0 | 613,730,975 | 100% | ||
steemassistant | 0 | 466,362,958 | 100% | ||
evansbankx | 0 | 233,142,528 | 100% | ||
nwjordan | 0 | 9,863,275,191 | 100% | ||
hmctrasher | 0 | 386,422,341 | 10% | ||
photohunter1 | 0 | 3,135,901,929 | 100% | ||
photohunter2 | 0 | 103,575,844 | 100% | ||
photohunter3 | 0 | 99,604,162 | 100% | ||
photohunter4 | 0 | 84,986,416 | 100% | ||
photohunter5 | 0 | 82,487,898 | 100% | ||
josh26 | 0 | 76,754,135 | 10% | ||
howtosteem | 0 | 3,844,180,957 | 100% | ||
sylinda | 0 | 223,624,178 | 50% | ||
jbeguna04 | 0 | 496,333,537 | 50% | ||
fmbs25 | 0 | 281,908,258 | 50% | ||
livsky | 0 | 371,954,105 | 50% | ||
badmusazeez | 0 | 110,248,798 | 50% | ||
roj | 0 | 1,590,020,454 | 100% | ||
charitybot | 0 | 4,233,275,126 | 15% | ||
aderemi01 | 0 | 1,195,713,309 | 50% | ||
killbill73 | 0 | 171,499,003 | 50% | ||
amirdesaingrafis | 0 | 286,254,558 | 50% | ||
fai.zul | 0 | 298,786,016 | 50% | ||
nightdragon | 0 | 164,596,666 | 50% | ||
jacintoelbarouki | 0 | 223,675,601 | 50% | ||
reazuliqbal | 0 | 2,023,705,802 | 100% | ||
aliyu-s | 0 | 392,670,156 | 50% | ||
estherekanem | 0 | 94,989,986 | 20% | ||
mirna98 | 0 | 223,557,867 | 50% | ||
murti | 0 | 448,990,606 | 50% | ||
flinter | 0 | 171,625,593 | 50% | ||
opulence | 0 | 1,797,612,033 | 50% | ||
phasma | 0 | 122,604,626 | 20% | ||
leatherwolf | 0 | 578,879,653 | 100% | ||
heshe-f | 0 | 343,509,989 | 25% | ||
donjyde | 0 | 231,003,401 | 50% | ||
crispycoinboys | 0 | 2,029,560,837 | 30% | ||
gwapoaller | 0 | 303,232,806 | 50% | ||
bluestorm | 0 | 459,735,758 | 75% | ||
genoner | 0 | 1,302,873,041 | 82% | ||
dexter24 | 0 | 224,696,752 | 50% | ||
muammarnst | 0 | 308,199,666 | 50% | ||
wirdayulahya | 0 | 214,370,557 | 50% | ||
jayo | 0 | 220,637,335 | 50% | ||
pepememes | 0 | 187,817,037 | 50% | ||
ihalf2p | 0 | 121,257,228 | 100% | ||
animesukidesu | 0 | 165,554,650 | 50% | ||
zay-arasi | 0 | 220,786,956 | 50% | ||
esme-svh | 0 | 244,989,987 | 50% | ||
lsanek | 0 | 304,293,988 | 50% | ||
derasmo | 0 | 747,481,706 | 50% | ||
anime.lovers | 0 | 306,314,072 | 50% | ||
flugbot | 0 | 122,643,184 | 100% | ||
lemcriq | 0 | 54,364,903 | 20% | ||
celinavisaez | 0 | 119,914,925 | 100% | ||
sildude | 0 | 415,521,670 | 100% | ||
truthtrader | 0 | 66,364,125 | 50% | ||
jaber-hossain70 | 0 | 294,089,918 | 50% | ||
netanel-m | 0 | 603,350,289 | 100% | ||
messiah87 | 0 | 523,720,302 | 100% | ||
clayjohn | 0 | 612,530,763 | 100% | ||
morin89 | 0 | 306,265,381 | 50% | ||
abaspatrick | 0 | 437,957,238 | 100% |
Thank you for the contribution. It has been approved. You can contact us on [Discord](https://discord.gg/uTyJkNm). **[[utopian-moderator]](https://utopian.io/moderators)**
author | amosbastian |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t114659959z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"} |
created | 2018-03-14 11:47:00 |
last_update | 2018-03-14 11:47:00 |
depth | 1 |
children | 1 |
last_payout | 2018-03-21 11:47:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.315 HBD |
curator_payout_value | 0.030 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 172 |
author_reputation | 174,473,586,900,705 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,354,737 |
net_rshares | 109,695,878,978 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 109,695,878,978 | 100% |
author | scipio |
---|---|
permlink | re-amosbastian-re-scipio-learn-python-series-9-using-import-20180314t115825134z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 11:58:24 |
last_update | 2018-03-14 11:58:24 |
depth | 2 |
children | 0 |
last_payout | 2018-03-21 11:58:24 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.227 HBD |
curator_payout_value | 0.072 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 10 |
author_reputation | 34,229,826,851,736 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,356,688 |
net_rshares | 95,500,182,891 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 95,386,659,980 | 100% | ||
penghuren | 0 | 113,522,911 | 0.75% |
Great post. I like it.. thanks for sharing this post
author | jarif |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t111301684z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 11:13:03 |
last_update | 2018-03-14 11:13:03 |
depth | 1 |
children | 1 |
last_payout | 2018-03-21 11:13:03 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.016 HBD |
curator_payout_value | 0.005 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 52 |
author_reputation | 298,457,225,381 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,348,919 |
net_rshares | 7,756,274,271 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 7,756,274,271 | 7% |
Great! And you're welcome! Many more episodes will follow in the `Learn Python Series`, so stay tuned and follow along! :-)
author | scipio |
---|---|
permlink | re-jarif-re-scipio-learn-python-series-9-using-import-20180314t115900144z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 11:59:00 |
last_update | 2018-03-14 11:59:00 |
depth | 2 |
children | 0 |
last_payout | 2018-03-21 11:59:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.231 HBD |
curator_payout_value | 0.074 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 123 |
author_reputation | 34,229,826,851,736 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,356,792 |
net_rshares | 97,173,633,066 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 97,060,110,155 | 100% | ||
penghuren | 0 | 113,522,911 | 0.75% |
Very helpful post @scipio
author | mdfahim |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t112013823z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"users":["scipio"],"app":"steemit/0.1"} |
created | 2018-03-14 11:20:18 |
last_update | 2018-03-14 11:20:18 |
depth | 1 |
children | 1 |
last_payout | 2018-03-21 11:20:18 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.016 HBD |
curator_payout_value | 0.005 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 25 |
author_reputation | 195,478,349,651 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,350,207 |
net_rshares | 7,756,274,271 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 7,756,274,271 | 7% |
author | scipio |
---|---|
permlink | re-mdfahim-re-scipio-learn-python-series-9-using-import-20180314t115924298z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 11:59:24 |
last_update | 2018-03-14 11:59:24 |
depth | 2 |
children | 0 |
last_payout | 2018-03-21 11:59:24 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.237 HBD |
curator_payout_value | 0.076 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 29 |
author_reputation | 34,229,826,851,736 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,356,863 |
net_rshares | 99,404,899,966 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 99,291,377,055 | 100% | ||
penghuren | 0 | 113,522,911 | 0.75% |
python is a hard subject. it's helpful to post. go ahead
author | muhammadkamal |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t163929168z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 16:39:30 |
last_update | 2018-03-14 16:39:30 |
depth | 1 |
children | 0 |
last_payout | 2018-03-21 16:39:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 57 |
author_reputation | 348,805,281,883 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,409,167 |
net_rshares | 0 |
Great and valuable blog @scipio thanks
author | rakib505 |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t112124758z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"users":["scipio"],"app":"steemit/0.1"} |
created | 2018-03-14 11:21:33 |
last_update | 2018-03-14 11:21:33 |
depth | 1 |
children | 1 |
last_payout | 2018-03-21 11:21:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.016 HBD |
curator_payout_value | 0.005 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 38 |
author_reputation | 78,209,213,747 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,350,418 |
net_rshares | 7,756,274,271 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 7,756,274,271 | 7% |
author | scipio |
---|---|
permlink | re-rakib505-re-scipio-learn-python-series-9-using-import-20180314t115955422z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"app":"steemit/0.1"} |
created | 2018-03-14 11:59:54 |
last_update | 2018-03-14 11:59:54 |
depth | 2 |
children | 0 |
last_payout | 2018-03-21 11:59:54 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.241 HBD |
curator_payout_value | 0.076 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 46 |
author_reputation | 34,229,826,851,736 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,356,978 |
net_rshares | 101,078,350,141 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
scipio | 0 | 100,964,827,230 | 100% | ||
penghuren | 0 | 113,522,911 | 0.75% |
Excellent friend. Thank yo for you support.
author | sandrag89 |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180314t164049842z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"} |
created | 2018-03-14 16:41:12 |
last_update | 2018-03-14 16:41:12 |
depth | 1 |
children | 0 |
last_payout | 2018-03-21 16:41:12 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 44 |
author_reputation | 22,611,270,415,271 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,409,494 |
net_rshares | 0 |
### Hey @scipio I am @utopian-io. I have just upvoted you! #### Achievements - WOW WOW WOW People loved what you did here. GREAT JOB! - Seems like you contribute quite often. AMAZING! #### Community-Driven Witness! I am the first and only Steem Community-Driven Witness. <a href="https://discord.gg/zTrEMqB">Participate on Discord</a>. Lets GROW TOGETHER! - <a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1">Vote for my Witness With SteemConnect</a> - <a href="https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1">Proxy vote to Utopian Witness with SteemConnect</a> - Or vote/proxy on <a href="https://steemit.com/~witnesses">Steemit Witnesses</a> [](https://steemit.com/~witnesses) **Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x**
author | utopian-io |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180315t202159172z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"} |
created | 2018-03-15 20:22:30 |
last_update | 2018-03-15 20:22:30 |
depth | 1 |
children | 0 |
last_payout | 2018-03-22 20:22:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,061 |
author_reputation | 152,955,367,999,756 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,658,872 |
net_rshares | 0 |
:) You are great. Sorry for this double comment. Was a bug with the bot.
author | utopian-io |
---|---|
permlink | re-scipio-learn-python-series-9-using-import-20180315t204636344z |
category | utopian-io |
json_metadata | {"tags":["utopian-io"],"community":"busy","app":"busy/2.4.0"} |
created | 2018-03-15 20:47:06 |
last_update | 2018-03-15 21:06:21 |
depth | 1 |
children | 0 |
last_payout | 2018-03-22 20:47:06 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 72 |
author_reputation | 152,955,367,999,756 |
root_title | "Learn Python Series (#9) - Using Import" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,662,127 |
net_rshares | 0 |