Learn Python Series - Intro by scipio

View this thread on steempeak.com
· @scipio · (edited)
$100.27
Learn Python Series - Intro
# Learn Python Series - Intro

![python_logo.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1519652370/js1cxnvwrcvgvg4klmkk.png)

#### What Will I Learn?
- You will learn how to install and run a Python 3.6 "Anaconda Distribution" 
- You will learn you can use Jupyter Notebooks for both learning Python and publish on Utopian using them as well!
- You will learn all the fundamentals of Python 3 programming

#### Requirements
- A working modern computer running macOS, Windows or Ubuntu
- A decent internet connection to download the (large) Anaconda Distribution
- The ambition to learn Python programming

#### Difficulty
- Basic / Intermediate

# Learn Python Series - Intro
This tutorial episode, regarding the programming language Python 3, is the first of many, all being a part of my **Learn Python Series**, which will gradually evolve into an **interactive book**. This series is intended for anybody interested in Python programming; it doesn't matter if you're an absolute beginner programmer in Python, or even any programming language, if you already have an intermediate skillset, or if you are already a very proficient Python programmer. (Regarding the latter, of course the first few tutorial episodes won't cover anything new for you, but to make things a bit more interesting, I'll try to cover a few lesser-known _fun facts_ here and there.)

For those who are absolute beginners, in this Intro episode I'll briefly cover the very most fundamental Python programming mechanisms. To avoid making this first Intro episode extremely lengthy, I must mind brevity. But rest assured that everything that's barely touched upon in this Intro, will be expanded and discussed in-depth in the following episodes. If you have questions about anything, feel free to express yourself in the comment section; I'll be happy to reply!

### Why this **"Learn Python Series"**?
There are a few reasons why I decided to spend **a lot of time** on writing this **Learn Python Series**:

* I've went over the already accepted Python tutorial contributions on [Utopian.io](https://utopian.io/), and I came to the conclusion that most Python tutorials were either about the `steem-python` package (well-covered for example by @amosbastian, @steempytutorials (including @amosbastian), and @emrebeyler), or not written in English, or were "loose sand" covering only some bits and pieces, or were just "dropping some code" apparently assuming the student / reader to understand what's what, without meticulously explaining the topics at hand.
* The Python syntax is one of a kind: related code blocks are indented instead of using `{ curly braces }` which looks really clean, and (some) code can be almost like plain English,
* Python runs anywhere, it's a general purpose language meaning you can use it for an enormous amount of programming tasks, the language itself has evolved substantially over the past +/- 30 years, lots and lots of external modules exist that you can freely import to power your own code, and its user-base is vast, including academic circles. Still I feel Python could be even more popular than it is today, via better marketing (not all Python module websites "_look cool_") and via tutorials that explain things **both in-depth and easy-to-understand**.
* Python is Dutch, I'm Dutch, and as they say "_If it ain't Dutch, it ain't much!_" ;-)
* I want to encourage beginner programmers, and programmers coming from other languages / environments, such as PHP, nodeJS, C# and Java to learn Python. **Python rocks, so become a _Pythonista_ too!**

# Set-up your Python 3 environment
**Anaconda Distribution of Python 3.6:**

I'll be covering **Python 3**, which is not (entirely) compatible with Python 2 (that will be deprecated in about 2 years from now). Operating systems like macOS and Ubuntu by default contain out-of-the-box pre-installed Python 2 interpreters, so in order to use Python 3 you'll first need to install a Python 3 (virtual) environment. I could spend one or even more tutorial episodes on "how-to install Python 3", because several Python distributions exist, all with their pros and cons, and for every operating system the installation procedure is slightly different.

If you're an experienced programmer, I'm sure you won't need me explaining how to install Python 3 on your system. And in case you're a beginner, I recommend using the Python 3.6 [Anaconda Distribution](https://www.anaconda.com/download/). For macOS and Windows the Anaconda auto-installer is self-explanatory. And for Ubuntu Linux, the Anaconda installation procedure has been covered as well by @amosbastian in [this article, but only execute the procedure as explained in "Step 2"](https://utopian.io/utopian-io/@amosbastian/how-to-install-steem-python-the-official-steem-library-for-python).

PS: The Anaconda Distribution is quite large, and can be extended with additional modules as well, some of which are for scientific use. Although you probably won't be using the entire distribution, I still recommend using it because it manages package inter-dependencies really well: Anaconda **just works**.

**Jupyter / iPython Notebooks:**

Anaconda includes a number of additional Python tools, including the **Anaconda Navigator**. Open the Anaconda Navigator application, click the "Home" icon (which is selected by default), and **Launch** a new **Jupyter Notebook**, thereby creating a new (iPython) `.ipynb` Notebook document: that's a JSON-like document that runs your Python code inside what's called a "cell", and can include **MarkDown** (just like you're posting on Utopian.io and Steemit.com) and therefore text formatting, hyperlinks, images, and video players. Jupyter Notebooks are used by (data) scientists to share their research (results) in a reproducable fashion, but Jupyter Notebooks **also** function as a great environment, to write and test your own Python scripts, and/or add your own notes to your scripts so you can remember what you learned, at a later date. As a matter of fact **I am writing this tutorial inside a Jupyter Notebook**!

**Code editor: Visual Studio Code, or PyCharm Community Edition:**

Jupyter Notebooks are great for learning new things, publishing and sharing of tutorials and research results, but in case you want to program multi-file / multi-module working programs, you need another type of code editor or IDE (Integrated Development Environment). If you properly configure your code editor to work with the right (virtual) environment per project, after installing and importing certain Python modules, the code editor / IDE can "assist" you with (among other things) **code auto-completion** and **suggestions**. From the Open Source world, I recommend you download and install either [PyCharm Community](https://www.jetbrains.com/pycharm/download/) or [Visual Studio Code](https://code.visualstudio.com/download).

**PS: From here on, unless specified otherwise, I'm assuming you will be using iPython / a Jupyter Notebook. Of course you may as well use the command line, or a Python IDE, to edit and run your code.**

# Essential Python 3 mechanisms
Every book needs a beginning, and since I'm **also** (yet not exclusively) addressing beginning Python programmers, this `Learn Python Series` will kick off by briefly explaining the most important Python mechanisms.

### Indenting of code blocks as a language requirement, not just coding style
A **block of code** can be considered as the grouping of programmatic statements, which may or may not include inner-code blocks as well. Code blocks are intended to treat multiple statements as if they are one statement. Codeblocks also function as a means to limit scope (of objects, functions, methods, attributes, properties, variables).

In many programming languages **curly braces** `{ }` are used to group code blocks and **semi colons** `;` to denote the end of an individual statement. In jQuery (a well-known JavaScript library) for example, this piece of code works fine:


```python
// a jQuery IIFE syntax example
(function animateMobileMenu() { $('body').on('click', 'div.hamburger.closed', function() { 
$('div#mobilemenu').css({right: "0px"}); $(this).removeClass('closed').addClass('open');     
$('body').addClass('menu-active'); }); })();
```

... it might work fine, but is this easy to read? I'd say no.

In Python, code blocks are structured **by indentation**: all code statements that directly follow each other and have the same "gap from the left", are on "the same level of indentation", belong to the same group. Indentation in Python is a language requirement, not just a matter of coding style. If you, by accident, wrongly indent a statement, your script / program won't run at all.

Let me give you a Python code snippet as an example to explain the indentation grouping mechanism. (How the snippet works exactly, doesn't matter for now, as long as you understand the indentation mechanism):


```python
# This is a comment, an explanation inside code
# Please observe the indentation depth for every statement below

garage = ['Fiat', 'Lamborghini', 'Ferrari', 'Mercedes', 'Lada']
for each_car in garage:
    if len(each_car) > 4:
        if 'i' in each_car:
            message = ' is an expensive Italian car!'            
        else:
            message = ' is an expensive car, but not from Italy!'
    else:
        message = ' is an affordable car!'
    print(each_car + message)
            
# Output:           
# Fiat is an affordable car!
# Lamborghini is an expensive Italian car!
# Ferrari is an expensive Italian car!
# Mercedes is an expensive car, but not from Italy!
# Lada is an affordable car!
```

    Fiat is an affordable car!
    Lamborghini is an expensive Italian car!
    Ferrari is an expensive Italian car!
    Mercedes is an expensive car, but not from Italy!
    Lada is an affordable car!


### The `print()` function (previously: print statement)
Compared to Python 2, in Python 3, the print "string" statement was replaced with a `print()` function which accepts a number of comma-delimited arguments. For example:


```python
print('Hello World!')                     # pass in a string
# Hello World!

str1 = 'You can pass me as an argument'
print(str1)                               # pass in a string variable
# You can pass me as an argument

str2 = 'The answer of 3*3:'             
print(str2, 3*3)                          # pass in more variables, or expressions
# The answer of 3*3: 9
```

    Hello World!
    You can pass me as an argument
    The answer of 3*3: 9


### Commonly used Data Types
Python has a number of standard, built-in, data types. We can categorize them as:

* numerics
* mappings
* sequences
* classes
* instances
* exceptions

All different objects can be subject to **Truth Value testing**, and (almost all can) be converted to a string (which is implicitly done when being passed to the `print()` function).

Let's hereby, for brevity in this Intro episode, briefly introduce some commonly used Data Types, and discuss how to use them far more in-depth in the forthcoming episodes.


```python
my_bool = True
your_bool = False
my_integer = 8
my_float = 9.2
my_string = 'A string is a sequence of characters'             # a string is a sequence as well!
my_list1 = [1, 2, 3, 4, 5]                                     # a sequence of mutable elements
my_list2 = ['Audi', 8, 9.2]                                    # list elements can be of different types!
my_tuple = ('Python', 'JavaScript', 'C', 'GoLang')             # tuples are lists, but immutable
my_dictionary = {'one': 1, 'two': 2, 'three': 3}               # dictionaries contain `key : value` pairs
your_dictionary = {                                            # dictionaries can be nested as well!
    'platforms': [
        {'name': 'Facebook', 'url': 'https://facebook.com'},
        {'name': 'Twitter' , 'url': 'https://twitter.com'},
        {'name': 'Steemit' , 'url': 'https://steemit.com'}
    ]
}
```

### Arithmetic Operators
To apply mathematical operations, the following built-in operators can be used with respect to all numeric data types:


```python
a = 10 + 3    # addition `10 + 3 == 13`
b = 10 - 3    # subtraction `10 - 3 == 7`
c = 10 * 3    # multiplication `10 * 3 == 30`
d = 10 / 3    # division `10 / 3 == 3.33333`, returns a float in Python 3 unlike in Python 2
e = 10 ** 3   # exponentiation `10 ** 3 == 1000`
f = 10 % 3    # modulo, the remainder of a division `10 % 3 == 1`
g = 10 // 3   # truncation division, also called floor division `10 // 3 == 3` 
```

### Assignment Operators
Assignment operators are used to assign values to variables. `a = 5` is the simplest form, but how do you change the value of `a`, for example how to add 3 to the current value? This could be done of course with the expression `a = a + 3`, but there are more "shorthand" assignment operators available in Python. 

Please observe the following code:


```python
a = 5     # initial assignment of value `5` to `a`
a += 1    # equivalent to `a = a + 1`
          # Please note that `++` is not available in Python!
a -= 2    # equivalent to `a = a - 1`
a *= 4    # equivalent to `a = a * 4`
a /= 5    # equivalent to `a = a / 5`
a **= 2   # equivalent to `a = a ** 2`
a %= 2    # equivalent to `a = a % 2`
a //= 2   # equivalent to `a = a // 4`
```

### Truth Value Testing and Control Flow
In order to make "decisions", **conditions** are evaluated (tested) for being either `True` or `False`, and actions can be taken based on those evaluations. This allows for decision structures and **control flow** via (nested) `if`, `elif`, and `else` statements, and provided that the evaluated object is **iterable**, the loop statements `for` and `while`.

Please observe the following example statements, and the explanation inside the code denoted as comments:


```python
quiz_threshold = 38
moderator_scores = [45, 44, 37, 38, 41]

for score in moderator_scores:      # moderator_scores is a list, therefore iterable
                                    # The `for` loop continues, evaluates to True, as long
                                    # as `score in moderator_scores` evaluates to True,
                                    # ergo: for every element in the list.
    if score >= quiz_threshold:     # The condition `score >= quiz_threshold` evaluates to
                                    # either True or False (for every `score`)
        print('Sufficient score')     # if `True`, then print `'Sufficient score'`
    else:
        print('Insufficient score')   # and if `False`, then print `'Insufficient score'`
        
# Output:        
# Sufficient score
# Sufficient score
# Insufficient score
# Sufficient score
# Sufficient score
```

    Sufficient score
    Sufficient score
    Insufficient score
    Sufficient score
    Sufficient score


**Nota bene 1:** For truth value testing, Python includes three **Boolean operations**, being `and`, `or`, `not`, and includes eight **Comparison operations**, being `<`, `<=`, `>`, `>=`, `==`, `!=`, `is` and `is not`.

**Nota bene 2:** Python uses so-called **loop control statements** to change the normal sequential code execution:

* `break` is used to terminate the loop statement,
* `continue` is used to first skip the remaining iteration body and continue with retesting the loop condition. If True, the next loop iteration will be executed,
* `pass` is used as a stub, or when a statement is needed but its code execution is not.

### Commonly used Built-in functions
Python comes with a number of built-in functions that are always available. I will hereby briefly mention some that are most commonly used.

* Type conversion functions


```python
a = float(8)          # converts the int 8 to float 8.0
b = int(4.2)          # converts the float 4.2 to int 4
c = str(4*5)          # converts the expression (= `4*5`) result to string
d = list('Hello!')    # converts the string `Hello!` to a list ['H','e','l','l','o','!']
                      # NB: `list()` is actually a mutable sequence type rather than a function
e = tuple('Hello!')   # converts to an immutable tuple ('H','e','l','l','o','!')
                      # NB: `tuple()` is an immutable sequence type, rather than a function
f = range(10)         # Arguments of a range constructor must be integers; the range is iterable
```

* Sequence operation functions


```python
g = len('Hello!')     # `len()` returns the length, the number of items, of an iterable
h = min([1,2,3])      # `min()` returns the smallest item of an iterable,
i = min(1,2,3)        # ... or of multiple arguments given
j = max([1,2,3])      # `max()` returns the smallest item of an iterable,
k = max(1,2,3)        # ... or of multiple arguments given
l = sum([1,2,3])      # returns the total of an numerical iterable
```

* Various functions


```python
m = type({'foo': 'bar'})         # `type()` returns the data type of an object
n = list(zip('abc', [1,2,3]))    # `zip()` returns an iterator of tuples,
                                 # [('a', 1), ('b', 2), ('c', 3)]
file_obj = open('results.txt')   # `open()` opens a file and returns a file object
```

### Defining and calling your own functions
In Python you create self-built functions with the `def()` keyword (short for **function definition**), followed by the name of the function, double parenthesis `()` holding the formal function parameter definitions, and a colon `:`. The body of the function starts at the next line and must be indented. 

Functions are used to group a set of statements, so you can use them multiple times, simply by calling the function instead of copying the statements. Usings functions in your Python code is very useful and common practise to structure and organize your code.

It is possible to define functions that have zero parameters, and it's also possible to add default values to parameters, which are called **optional or default parameters**. Calling a function without explicitly passing in argument values for those default parameters is therefore possible as well. Calling a function by using **keyword arguments** is valid as well, but is used mostly with optional parameters. If you use keyword arguments only for some of the function's arguments, then make sure the positional arguments are used first in the order of how the function is defined.

Please observe the following function example:


```python
# First we define a function named `greeter1()`,
# it doesn't have any arguments
def greeter1():
    print('Hello! How are you doing?')
    
greeter1() # This is how to call a function, in order to execute its code statements
# Hello! How are you doing?

# ----------------------------

# Next we define another function named `greeter2()`,
# which has one argument `name`
def greeter2(name):
    print('Hello ' + name + '! How are you doing?')
    
greeter2('Scipio') # Now we call `greeter2()` by passing a string as `name` argument
# Hello Scipio! How are you doing?

# ----------------------------

# Now we're defining `greeter3()`, having the same code body as `greeter2()`,
# except we're now implementing `name='Everybody` as a default parameter.
def greeter3(name='Everybody'):
    print('Hello ' + name + '! How are you doing?')
    
greeter3() # It's now possible to omit the `name` argument, then its default value is used
# Hello Everybody! How are you doing?

greeter3('Paulag') # But you can of course still pass in a positional value, `'Paulag'` in this case
# Hello Paulag! How are you doing?

greeter3(name='Elear') # You can also call a function using keyword arguments
# Hello Elear! How are you doing?
```

    Hello! How are you doing?
    Hello Scipio! How are you doing?
    Hello Everybody! How are you doing?
    Hello Paulag! How are you doing?
    Hello Elear! How are you doing?


### Returning values
A function can optionally `return` an object, which is usually just one value, but could be multiple values. In case you want to return multiple values, you could for example construct a list or dictionary, but it's also possible to return multiple comma-delimited values. Technically, in the latter case, a tuple will be returned.

Functions are particularly useful for assigning the returned values to a variable, which can be then processed further and/or passed to another function.

Please observe the following examples, regarding returning values:


```python
# Let's make a Fibonacci generating function, 
# which is a sequence where every number in the sequence after the first two
# is the sum of the two preceding numbers.

def fibonacci(max):          # function definition, with an integer `max` argument
    seq = []                 # create an empty list
    a, b = 0, 1              # initialize
    while a <= max:          # execute the iteration as long as the condition 
                             # `a <= max` evaluates to True
        seq.append(a)        # first append the current value of `a` to the list
        a, b = b, a+b        # change `a` to `b` and then set `b` to what `a` was
    return seq               # when `a <= max`` evaluates to False, return the list `seq`

result = fibonacci(1000)     # call `fibonacci()` with a maximum of 1000,
                             # and assign the returned list to the variable `result`
print(result)
# [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]

# Now let's make a function that returns two values,
# and we can use this to further process the Fibonacci sequence

def evenodd(seq):              # function definition, with a sequence as passed-in argument
    if len(list(seq)) > 0:     # check if the list is not empty
        even = []              # create empty even and odd lists
        odd = []
        for i in list(seq):    # iterate over all elements in the list
            if i%2 == 0:       # this condition evaluates to True for even numbers, false to odds
                even.append(i) # append all numbers to the correct list
            else:
                odd.append(i)
        return even, odd       # return TWO values, which are internally bundled as a tuple

tup = evenodd(result)          # call the `evenodd()` function, pass in the 0..1000 fibonacci sequence

print(type(tup), tup)          # and indeed, the returned values are in tuple form
# <class 'tuple'> ([0, 2, 8, 34, 144, 610], [1, 1, 3, 5, 13, 21, 55, 89, 233, 377, 987])
```

    [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
    <class 'tuple'> ([0, 2, 8, 34, 144, 610], [1, 1, 3, 5, 13, 21, 55, 89, 233, 377, 987])


### Classes
Python is object oriented inside-out, through and through. Even though the section regarding functions might not _seem_ object-oriented, it is indeed. Look for example at the `append()` function (or method) I've been using: it's available to use, because the variables `seq`, `even` and `odd` in the example code above are indeed **objects** of type **list**, and a list, being a sequence, inherits the sequence function (method) `append()`.

Despite this Intro episode already being of a substantial length, I will hereby still briefly touch upon creating and using self-defined Python classes.

Please observe the following code example:


```python
class Utopian:
    '''This is an optional documentation string,
    which could contain a lot of info on how to use
    the class and its attributes.
    '''
    
    userCount = 0
    
    def __init__(self, name, role):
        self.name = name
        self.role = role
        Utopian.userCount += 1
        
    def showProfile(self):
        print('Name:', self.name, ', Role:', self.role)
        
    def getUserTotal(self):
        return self.userCount
    
user1 = Utopian('Scipio', 'Advisor')
user2 = Utopian(role='Moderator', name='Stoodkev')
user3 = Utopian('Mcfarhat', 'Supervisor')
                
user1.showProfile()
print(Utopian.userCount, "Utopians are currently active")
print(Utopian.__doc__)

# Name: Scipio , Role: Advisor
# 3 Utopians are currently active
# This is an optional documentation string,
#   which could contain a lot of info on how to use
#   the class and its attributes.
```

    Name: Scipio , Role: Advisor
    3 Utopians are currently active
    This is an optional documentation string,
        which could contain a lot of info on how to use
        the class and its attributes.
        


**Explanation:**

* the `class` statement, immediately followed by the **class name** `Utopian` creates the class,
* next an optional multi-line documentation string is defined, which is meant to explain to programmers how to use the class. It's a good practise to include **docstrings** in your classes,
* the remainder of the class is called the **class_suite**,
* then the **class variable** `userCount` is defined, holding a value which can be shared by all **class instances**,
* `__init__()` is called the **class constructor**, which Python calls whenever a new class instance is created,
* the other **class methods** are like "normal" functions but need (in the method definition, not in the method call) `self` as its first argument. (In other languages often called `this`).

# What will be covered in the remainder of this Learn Python Series?
A lot! Even though this turned out to be quite a lengthy introduction to the Python 3 programming language, believe me: we've only barely scratched the surface of what can be done using Python. This tutorial series aims to cover just about anything that can be covered about Python. I'll first continue with covering topics bit-by-bit (such as how to deal with string manipulation, handle JSON data, interface with document datastores, visualise data, complex mathematical operations, cryptography, networking, web development, creating command line interfaces, etc. etc.) and explaining how things work. Later on we'll use the knowledge covered in the early episodes to program larger projects (or re-usable modules). We could for example build a web crawler, or an advanced bot interacting with one (or more) blockchains, create a messaging app, a game ... anything! :-)

### Thank you for your time and I hope to see you in the next tutorial episodes!


<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@scipio/learn-python-series-intro">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 344 others
properties (23)
post_id35,335,882
authorscipio
permlinklearn-python-series-intro
categoryutopian-io
json_metadata"{"repository": {"owner": {"login": "python"}, "id": 81598961, "full_name": "python/cpython", "fork": false, "name": "cpython", "html_url": "https://github.com/python/cpython"}, "moderator": {"pending": false, "account": "amosbastian", "reviewed": true, "flagged": false, "time": "2018-02-26T13:48:14.224Z"}, "format": "markdown", "platform": "github", "tags": ["utopian-io", "steemdev", "python", "programming"], "questions": [], "community": "utopian", "type": "tutorials", "pullRequests": [], "score": 0, "links": ["https://utopian.io/", "https://www.anaconda.com/download/", "https://utopian.io/utopian-io/@amosbastian/how-to-install-steem-python-the-official-steem-library-for-python", "https://www.jetbrains.com/pycharm/download/", "https://code.visualstudio.com/download", "https://utopian.io/utopian-io/@scipio/learn-python-series-intro"], "app": "steemit/0.1", "users": ["amosbastian", "steempytutorials", "emrebeyler"], "image": ["https://res.cloudinary.com/hpiynhbhq/image/upload/v1519652370/js1cxnvwrcvgvg4klmkk.png"]}"
created2018-02-26 13:45:12
last_update2018-02-28 10:15:57
depth0
children39
net_rshares22,006,410,137,786
last_payout2018-03-05 13:45:12
cashout_time1969-12-31 23:59:59
total_payout_value74.124 SBD
curator_payout_value26.148 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length26,374
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries
0.
accountutopian.pay
weight2,500
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (408)
@steemitstats ·
@scipio, I like your contribution to open source project, so I upvote to support you.
properties (22)
post_id35,336,084
authorsteemitstats
permlink20180226t134610419z-post
categoryutopian-io
json_metadata"{"tags": ["utopian-io"]}"
created2018-02-26 13:46:15
last_update2018-02-26 13:46:15
depth1
children0
net_rshares0
last_payout2018-03-05 13:46:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length85
author_reputation352,100,520,168
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@amosbastian · (edited)
$0.61
Thank you for the contribution. It has been approved.

This tutorial is absolutely incredible, I wish I had something like this when I started learning Python! Cannot wait to see what your future tutorials have in store for us!

You can contact us on [Discord](https://discord.gg/uTyJkNm).
**[[utopian-moderator]](https://utopian.io/moderators)**
👍  ,
properties (23)
post_id35,336,870
authoramosbastian
permlinkre-scipio-learn-python-series-intro-20180226t135014788z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-02-26 13:50:18
last_update2018-02-26 13:51:00
depth1
children1
net_rshares108,227,721,604
last_payout2018-03-05 13:50:18
cashout_time1969-12-31 23:59:59
total_payout_value0.468 SBD
curator_payout_value0.142 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length346
author_reputation174,225,255,912,876
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@scipio ·
Thx! Thx! Thx! :-)
properties (22)
post_id36,452,569
authorscipio
permlinkre-amosbastian-re-scipio-learn-python-series-intro-20180303t174842437z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-03-03 17:48:42
last_update2018-03-03 17:48:42
depth2
children0
net_rshares0
last_payout2018-03-10 17:48:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length18
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@rrahim ·
wonderful post,,i appreciate you post.
thanks for share..
properties (22)
post_id35,337,475
authorrrahim
permlinkre-scipio-learn-python-series-intro-20180226t135338996z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 13:53:36
last_update2018-02-26 13:53:36
depth1
children0
net_rshares0
last_payout2018-03-05 13:53:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length57
author_reputation1,012,874,308,821
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@rojib ·
I have benefited from knowing about Python series. There are many teaching topics in your post, which I have benefited from. I want more new things from you to win more clearly.........
...
............i upvote, comment to support  you..........
properties (22)
post_id35,338,641
authorrojib
permlinkre-scipio-learn-python-series-intro-20180226t135924630z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 13:59:27
last_update2018-02-26 13:59:27
depth1
children0
net_rshares0
last_payout2018-03-05 13:59:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length245
author_reputation27,825,594,022
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@aamaksal ·
Very nice post. I like your post
properties (22)
post_id35,339,447
authoraamaksal
permlinkre-scipio-learn-python-series-intro-20180226t140333339z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 14:03:36
last_update2018-02-26 14:03:36
depth1
children0
net_rshares0
last_payout2018-03-05 14:03:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length32
author_reputation1,211,527,658,628
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@realsteemian ·
Great effort to educate the steemit community.. Thumbs up to you👍
properties (22)
post_id35,341,928
authorrealsteemian
permlinkre-scipio-learn-python-series-intro-20180226t141552460z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 14:16:21
last_update2018-02-26 14:16:21
depth1
children0
net_rshares0
last_payout2018-03-05 14:16:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length65
author_reputation1,116,291,911,150
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@doomsdaychassis ·
$0.23
resteeming this for future reading. jthank you. i have been wanting to try and learn this kind of stuff but did not have any idea where to start. I will be following you now also. thanks.
👍  
properties (23)
post_id35,346,391
authordoomsdaychassis
permlinkre-scipio-learn-python-series-intro-20180226t144023379z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 14:40:24
last_update2018-02-26 14:40:24
depth1
children0
net_rshares40,968,795,428
last_payout2018-03-05 14:40:24
cashout_time1969-12-31 23:59:59
total_payout_value0.173 SBD
curator_payout_value0.057 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length187
author_reputation19,152,356,728,071
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@egarmaulana ·
https://steemit.com/@egarmaulana
hi all friends are welcome :)
properties (22)
post_id35,347,392
authoregarmaulana
permlinkre-scipio-learn-python-series-intro-20180226t144558070z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "links": ["https://steemit.com/@egarmaulana"], "tags": ["utopian-io"]}"
created2018-02-26 14:45:57
last_update2018-02-26 14:45:57
depth1
children0
net_rshares0
last_payout2018-03-05 14:45:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length62
author_reputation0
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@rdvn ·
$0.61
What an Awesome tutorial ! Good job . I'm Waiting Impatiently your next tutorial about phyton , Well done ..
👍  
properties (23)
post_id35,352,664
authorrdvn
permlinkre-scipio-learn-python-series-intro-20180226t151633403z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-02-26 15:16:33
last_update2018-02-26 15:16:33
depth1
children0
net_rshares107,065,118,719
last_payout2018-03-05 15:16:33
cashout_time1969-12-31 23:59:59
total_payout_value0.494 SBD
curator_payout_value0.112 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length108
author_reputation12,492,997,891,187
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@zoef ·
$0.40
Very nice coarse you started here scipio. Amazing explenation. However i don't see the beauty of the indentation of python. I find it hard to find these blocks of code. And can't even imagen when you write a bigger and more complex code how it is visible in the end.

Also I don't see a beginners coarse in this. I see a beginner coarse in python where there is a requirement of programming knowledge needed. A beginner does not understand itterators - for - while - .... . They might understand the concept of a = a + 1 but thats about all.

I myself have 180 hours of java experience (in a coarse) and i understand those concepts. But i can not understand these concepts from reading this tutorial.
👍  ,
properties (23)
post_id35,354,295
authorzoef
permlinkre-scipio-learn-python-series-intro-20180226t152603047z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-02-26 15:26:03
last_update2018-02-26 15:26:03
depth1
children4
net_rshares70,725,225,523
last_payout2018-03-05 15:26:03
cashout_time1969-12-31 23:59:59
total_payout_value0.343 SBD
curator_payout_value0.054 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length700
author_reputation23,263,050,671,536
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@scipio ·
$1.02
That's because of the Steemit.com code parser, messing up the way you're seeing the code examples!
Have a look here https://utopian.io/utopian-io/@scipio/learn-python-series-intro <= still can be formatted better, but on Utopian.io the code parser is already way better!
👍  , , ,
properties (23)
post_id35,356,840
authorscipio
permlinkre-zoef-re-scipio-learn-python-series-intro-20180226t153931147z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "links": ["https://utopian.io/utopian-io/@scipio/learn-python-series-intro"], "tags": ["utopian-io"]}"
created2018-02-26 15:39:30
last_update2018-02-26 15:39:30
depth2
children3
net_rshares179,639,352,458
last_payout2018-03-05 15:39:30
cashout_time1969-12-31 23:59:59
total_payout_value0.773 SBD
curator_payout_value0.245 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length270
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (4)
@zoef · (edited)
$0.19
Hehe i understand (but i watchd it on utopian), but i feel the {  } and ; give a more controlled look and feel. But that might be my personal opinion. Indenting is something that i do anyway when i am working in either java or c#. I do like that it is nescesary to do so in python. But i don't know if it is better.

Time wil tell.
👍  ,
properties (23)
post_id35,365,710
authorzoef
permlinkre-scipio-re-zoef-re-scipio-learn-python-series-intro-20180226t163031981z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 16:30:33
last_update2018-02-26 16:44:57
depth3
children0
net_rshares33,152,138,056
last_payout2018-03-05 16:30:33
cashout_time1969-12-31 23:59:59
total_payout_value0.146 SBD
curator_payout_value0.040 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length331
author_reputation23,263,050,671,536
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@lextenebris ·
$0.60
You might want to think about putting the actual Jupyter Notebook files up on github, because it is a particularly good job of parsing and making them visually quite readable.
👍  
properties (23)
post_id35,405,055
authorlextenebris
permlinkre-scipio-re-zoef-re-scipio-learn-python-series-intro-20180226t203633794z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 20:36:33
last_update2018-02-26 20:36:33
depth3
children1
net_rshares106,586,846,139
last_payout2018-03-05 20:36:33
cashout_time1969-12-31 23:59:59
total_payout_value0.450 SBD
curator_payout_value0.150 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length175
author_reputation15,727,752,514,706
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@fabiyamada ·
$0.72
Everything seemed so easy until the wild fibonacci appeared xD I will read this again until I have it clearer and probably come again with questions. This language doesn't seem so difficult n.n maybe I can build something :D
Thanks a lot scip!!!
👍  ,
properties (23)
post_id35,366,145
authorfabiyamada
permlinkre-scipio-learn-python-series-intro-20180226t163303937z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 16:33:12
last_update2018-02-26 16:33:12
depth1
children4
net_rshares127,647,374,571
last_payout2018-03-05 16:33:12
cashout_time1969-12-31 23:59:59
total_payout_value0.546 SBD
curator_payout_value0.177 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length245
author_reputation22,967,361,763,386
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@scipio · (edited)
$2.57
Thx Fabi! :-)

PS, don't get confused by the `a, b = 0, 1` or the `a, b = b, a + b`notations in the `fibonacci()` function! That's a very good remark of yours (well, you didn't explicitly mention it, but I was hoping already somebody would ask me a question about it, because explaining it in-depth inside the article body would have made the Intro episode even longer! ;-)  ).

But let's look at it closely...

* At variable initiation, `a,b = 0,1` could be re-written as:
```
a = 0
b = 1
```

* However, the same thing **cannot** be said about re-writing `a, b = b, a + b` **inside the `while` loop**!
```
a = b
b = a + b
```
... would result in the sequence `[0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512]`, which is not a Fibonacci sequence (but setting 0 to 1 and then doubling it every iteration).

The expression `a, b = b, a + b` is happening "at the same time", in **parallel** and not **sequentially**.
At the first iteration `a=0` and `b=1`, so in the loop `a` then is set to what `b` **was** and `b` is set to what `a` **was** plus what `b` **was**. 

```
# iteration abbreviated to i
# i(0) => a = 0 and b = 1 
# i(1) => a = 1 and b = 0 + 1 = 1 ... and add 0 to seq [0]
# i(2) => a = 1 and b = 1 + 1 = 2 ... and add 1 to seq [0,1]
# i(3) => a = 2 and b = 1 + 2 = 3 ... and add 1 to seq [0,1,1]
# i(4) => a = 3 and b = 2 + 3 = 5 ... and add 2 to seq [0,1,1,2]
# i(5) => a = 5 and b = 3 + 5 = 8 ... and add 3 to seq [0,1,1,2,3]
# i(6) => a = 8 and b = 5 + 8 = 13 ... and add 5 to seq [0,1,1,2,3,5]
# etc. etc. etc
```

So, we could have re-written, inside the `while` loop `a, b = b, a + b` to:
```
# first "freeze" the current values
a_old = a
b_old = b

# then change a and b
a = b_old
b = a_old + b_old
```

PS: this series is **not** about me demonstrating how great **my Python** is. It's about
-a- showing how cool Python, the language, is, and
-b- developing **your** Python SuperPowers!

So: have fun using Python, my Learn Python Series, and **feel free to ask me questions**! 
@scipio
👍  , , , , ,
properties (23)
post_id35,528,328
authorscipio
permlinkre-fabiyamada-re-scipio-learn-python-series-intro-20180227t100433348z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "users": ["scipio"], "tags": ["utopian-io"]}"
created2018-02-27 10:04:33
last_update2018-02-27 10:19:36
depth2
children3
net_rshares451,465,981,672
last_payout2018-03-06 10:04:33
cashout_time1969-12-31 23:59:59
total_payout_value1.992 SBD
curator_payout_value0.582 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length2,001
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (6)
@fabiyamada ·
$0.24
:o! It is a bit clearer! I think I need to experiment with this! (I will google for more practical examples)... 
What I understand is you can set the value of 2 vars in the same line a, b = 0, 1. Which is so new for me! And seems that is what makes the magic happen... And you create a second line to take the old values and make it work... Oh maybe I am not making any sense x.x 
I will study sensei!!
👍  
properties (23)
post_id35,552,709
authorfabiyamada
permlinkre-scipio-re-fabiyamada-re-scipio-learn-python-series-intro-20180227t123607422z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-27 12:36:15
last_update2018-02-27 12:36:15
depth3
children2
net_rshares42,649,000,416
last_payout2018-03-06 12:36:15
cashout_time1969-12-31 23:59:59
total_payout_value0.184 SBD
curator_payout_value0.058 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length402
author_reputation22,967,361,763,386
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@nomannomi ·
$0.02
Wao great I like it your post is very helfull for peoples who dont know about paythn
👍  
properties (23)
post_id35,366,447
authornomannomi
permlinkre-scipio-learn-python-series-intro-20180226t163450163z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 16:34:57
last_update2018-02-26 16:34:57
depth1
children0
net_rshares4,104,000,940
last_payout2018-03-05 16:34:57
cashout_time1969-12-31 23:59:59
total_payout_value0.020 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length84
author_reputation11,422,936,900,203
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@lextenebris ·
$0.25
Frankly, I'm just glad to see someone else who has gotten into Jupyter Notebooks as much as I have.

Seriously, where were these things my whole programming life?

Now, if you could just get the steem Python module working on Python 3.6 and not blowing up every time I try to get pycrypto installed, that would be a serious piece of magic.

No, seriously. Magic.
👍  
properties (23)
post_id35,373,736
authorlextenebris
permlinkre-scipio-learn-python-series-intro-20180226t172024354z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 17:20:24
last_update2018-02-26 17:20:24
depth1
children0
net_rshares44,832,259,238
last_payout2018-03-05 17:20:24
cashout_time1969-12-31 23:59:59
total_payout_value0.190 SBD
curator_payout_value0.061 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length362
author_reputation15,727,752,514,706
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@tai-euler ·
A really good one!
👍  
properties (23)
post_id35,414,598
authortai-euler
permlinkre-scipio-learn-python-series-intro-20180226t214253039z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-26 21:42:51
last_update2018-02-26 21:42:51
depth1
children0
net_rshares605,688,537
last_payout2018-03-05 21:42:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length18
author_reputation923,752,348,550
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@utopian-1up ·
$0.62
<div class="pull-left">

![1UP-Kayrex_tiny.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1515383984/ekyf2thxg7j2t0qro1h3.png)

</div>

<div class="text-justify">


### You've got upvoted by <code>Utopian-1UP</code>!
You can give up to ten [1UP](https://steemit.com/utopian-io/@steem-plus/steemplus-2-4-utopian-1up-is-here)'s to Utopian posts every day after they are accepted by a Utopian moderator and before they are upvoted by the official @utopian-io account. Install the @steem-plus browser extension to use 1UP. By following the 1UP-trail using [SteemAuto](https://steemauto.com/) you support great Utopian authors and earn high curation rewards at the same time. 

<hr>

1UP is neither organized nor endorsed by Utopian.io!

</div>
👍  
properties (23)
post_id35,447,603
authorutopian-1up
permlink20180227t012836492z
categoryutopian-io
json_metadata"{"app": "1up"}"
created2018-02-27 01:28:36
last_update2018-02-27 01:28:36
depth1
children0
net_rshares109,319,842,194
last_payout2018-03-06 01:28:36
cashout_time1969-12-31 23:59:59
total_payout_value0.461 SBD
curator_payout_value0.154 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length764
author_reputation2,326,305,067,153
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@paulag ·
$0.58
very detailed tutorial - I appreciate the time and effort that went into this. As an online instructor, creating learning material takes time and ensuring the learner actually acquires the new skill or knowledge is hard work
👍  
properties (23)
post_id35,588,958
authorpaulag
permlinkre-scipio-learn-python-series-intro-20180227t160029381z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-27 16:00:30
last_update2018-02-27 16:00:30
depth1
children1
net_rshares103,332,890,195
last_payout2018-03-06 16:00:30
cashout_time1969-12-31 23:59:59
total_payout_value0.441 SBD
curator_payout_value0.143 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length224
author_reputation224,445,607,823,384
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@scipio ·
It **does** take a lot of time to write (and respond, mostly via Discord DMs)! But as I just replied to @jedigeiss above, I'm loving it! :-)
properties (22)
post_id36,002,328
authorscipio
permlinkre-paulag-re-scipio-learn-python-series-intro-20180301t133117719z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "users": ["jedigeiss"], "tags": ["utopian-io"]}"
created2018-03-01 13:31:18
last_update2018-03-01 13:31:18
depth2
children0
net_rshares0
last_payout2018-03-08 13:31:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length140
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@jedigeiss ·
$0.59
good thing you finally found it good enough to post it ; )
I am looking forward to see this tutorial evolving, I really like Python a lot and for sure I always like to learn more :)
Keep up the good work Scipio
👍  
properties (23)
post_id35,596,813
authorjedigeiss
permlinkre-scipio-learn-python-series-intro-20180227t164617745z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-02-27 16:46:18
last_update2018-02-27 16:46:18
depth1
children1
net_rshares105,519,829,670
last_payout2018-03-06 16:46:18
cashout_time1969-12-31 23:59:59
total_payout_value0.447 SBD
curator_payout_value0.147 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length210
author_reputation172,451,377,067,120
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@scipio ·
It's a pretty fun task to write the Python tutorial episodes as well! I was hoping for more questions that I could then answer! ;-)

But.... if you look at the top comment, which can be seen as "a question in disguise", I still had the chance to elaborate on that! :-)
properties (22)
post_id36,002,079
authorscipio
permlinkre-jedigeiss-re-scipio-learn-python-series-intro-20180301t133002767z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-03-01 13:30:03
last_update2018-03-01 13:30:03
depth2
children0
net_rshares0
last_payout2018-03-08 13:30:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length268
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@utopian-io ·
$0.24
### Hey @scipio I am @utopian-io. I have just upvoted you!
#### Achievements
- WOW WOW WOW People loved what you did here. GREAT JOB!
- You are generating more rewards than average for this category. Super!;)
- 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>

[![mooncryption-utopian-witness-gif](https://steemitimages.com/DQmYPUuQRptAqNBCQRwQjKWAqWU3zJkL3RXVUtEKVury8up/mooncryption-s-utopian-io-witness-gif.gif)](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**
👍  
properties (23)
post_id35,616,944
authorutopian-io
permlinkre-scipio-learn-python-series-intro-20180227t185103530z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-02-27 18:51:03
last_update2018-02-27 18:51:03
depth1
children1
net_rshares42,649,000,416
last_payout2018-03-06 18:51:03
cashout_time1969-12-31 23:59:59
total_payout_value0.181 SBD
curator_payout_value0.058 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,136
author_reputation152,913,012,544,965
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@scipio ·
Thank you @utopian-io !Beep! Beep!
properties (22)
post_id36,453,305
authorscipio
permlinkre-utopian-io-re-scipio-learn-python-series-intro-20180303t175322057z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "users": ["utopian-io"], "tags": ["utopian-io"]}"
created2018-03-03 17:53:21
last_update2018-03-03 17:53:21
depth2
children0
net_rshares0
last_payout2018-03-10 17:53:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length34
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@steemstem-bot ·
$0.73
<center><a href="www.steemit.com/@steemstem"><img src="https://media.discordapp.net/attachments/384404201544876032/405507994583957505/steemSTEM.png"></a><br><table><tr><th> </th><th> </th><th><a href="https://steemit.com/steemstem/@steemstem/helpful-guidelines-for-crafting-steemstem-content">Guidelines</a></th><th><a href="https://steemit.com/steemstem/@steemstem/steemstem-winter-2017-2018-project-update">Project Update</a></th><th> </th><th> </th></tr></table><br><a href="https://steemit.com/steemstem/@steemstem/being-a-member-of-the-steemstem-community"><b>Being A SteemStem Member</b></a></center>
👍  
properties (23)
post_id36,085,526
authorsteemstem-bot
permlinkre-learn-python-series-intro-20180301t215629
categoryutopian-io
json_metadata{}
created2018-03-01 21:56:30
last_update2018-03-01 21:56:30
depth1
children0
net_rshares141,891,748,102
last_payout2018-03-08 21:56:30
cashout_time1969-12-31 23:59:59
total_payout_value0.725 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length606
author_reputation3,811,633,288,089
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@kshovon20 ·
thanks for that post, it will be helpfull for my learning! ☺
👍  
properties (23)
post_id36,254,747
authorkshovon20
permlinkre-scipio-learn-python-series-intro-20180302t171504915z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"]}"
created2018-03-02 17:15:09
last_update2018-03-02 17:15:09
depth1
children0
net_rshares0
last_payout2018-03-09 17:15:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length60
author_reputation0
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@mdf-365 ·
Very much agree, this is far easier to interpret on Utopian versus on Steemit.

Sure, it's code but there are a lot of style elements that don't transfer between the platforms. Definitely recommend readers move to Utopian for this and future installments in this series.
properties (22)
post_id37,301,318
authormdf-365
permlinkre-scipio-learn-python-series-intro-20180307t175601284z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-03-07 17:56:03
last_update2018-03-07 17:56:03
depth1
children0
net_rshares0
last_payout2018-03-14 17:56:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length270
author_reputation4,179,372,792,084
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@fadlijafar ·
i read so  i know
properties (22)
post_id40,571,400
authorfadlijafar
permlinkre-scipio-learn-python-series-intro-20180326t134044860z
categoryutopian-io
json_metadata"{"app": "utopian/1.0.0", "community": "utopian", "tags": ["utopian-io"]}"
created2018-03-26 07:32:42
last_update2018-03-26 07:32:42
depth1
children0
net_rshares0
last_payout2018-04-02 07:32:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length18
author_reputation65,900,527,192
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@nicolelang · (edited)
$1.14
Hey @scipio! So, I'm late getting started, been a little busy lately. But, I just downloaded everything and I'm reading and working through it now.  I work for a higher ed publisher and was previously trying to self teach on our platforms. This is so nice having you here to ask questions to! I'm sure you'll be hearing some questions from me soon, but just wanted to let you know that I have officially started my journey to learning Python woohoo! Thanks again for these great tutorials!
👍  ,
properties (23)
post_id49,012,113
authornicolelang
permlinkre-scipio-learn-python-series-intro-20180517t164135511z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"], "users": ["scipio"]}"
created2018-05-17 16:41:33
last_update2018-05-17 17:04:57
depth1
children1
net_rshares236,556,339,492
last_payout2018-05-24 16:41:33
cashout_time1969-12-31 23:59:59
total_payout_value0.857 SBD
curator_payout_value0.280 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length489
author_reputation66,069,344,800
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@scipio ·
Hi Nicole, great! Are you also on Discord? It's probably easier - in case you have any questions - to contact me there! Join the Utopian Discord server and look for @scipio there! ;-)
👍  
properties (23)
post_id49,200,180
authorscipio
permlinkre-nicolelang-re-scipio-learn-python-series-intro-20180518t202211805z
categoryutopian-io
json_metadata"{"app": "steemit/0.1", "tags": ["utopian-io"], "users": ["scipio"]}"
created2018-05-18 20:22:09
last_update2018-05-18 20:22:09
depth2
children0
net_rshares1,461,623,065
last_payout2018-05-25 20:22:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length183
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@revisesociology ·
Hi - great series this, I'm just starting out learning Python, and managed to find Anaconda thanks to your first post here, so this is all very useful.  

I'm jumping forwards to install steem-python (I'm using windows) just so I can play around with it early on, but I just can't get it to install - it starts off fine, but then I get a particular error message, is this something you could maybe help me with? 

ReviseSociology#8113 on Discord if you're around steem still, 

Cheers!
properties (22)
post_id78,834,716
authorrevisesociology
permlinkre-scipio-pvwo9g
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steempeak\/1.14.12"}
created2019-08-08 06:48:51
last_update2019-08-08 06:48:51
depth1
children2
net_rshares0
last_payout2019-08-15 06:48:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length485
author_reputation219,336,602,045,061
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@scipio · (edited)
$0.02
Sorry, just noticed this comment of yours!;-)

It might be a good idea to first study my ~ 34 tutorial episodes (plus additional material), to get familiar with Python 3 in and by itself, before dabbling into blockchain interactions over a Python lib.

steem-python, last time I used it at least which is a while ago, indeed resulted in a number of errors while `pip install`'ing it, but have you tried `beem` instead?
👍  ,
properties (23)
post_id79,576,674
authorscipio
permlinkpx1rru
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit\/0.1"}
created2019-08-30 11:26:18
last_update2019-08-30 11:26:48
depth2
children1
net_rshares108,447,889,501
last_payout2019-09-06 11:26:21
cashout_time1969-12-31 23:59:59
total_payout_value0.011 SBD
curator_payout_value0.010 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length418
author_reputation32,029,897,993,437
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@revisesociology ·
Hi - thanks for getting back to me, I did think the comment might go missing on an old post so no worries. 

I have just started out with python, and know I'm getting ahead of myself with blockchain interactions, but just wanted to dive into something different and see what happens. I'll give beem a go, it's nice just to hear that I'm not the only one whose had error messages!

Useful series btw.
properties (22)
post_id79,583,071
authorrevisesociology
permlinkpx23o6
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit\/0.1"}
created2019-08-30 15:43:15
last_update2019-08-30 15:43:15
depth3
children0
net_rshares0
last_payout2019-09-06 15:43:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length399
author_reputation219,336,602,045,061
root_title"Learn Python Series - Intro"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000