PedroGeoGISdev
  • Home
  • Linux OS
    • Linux: concepts
    • Linux: basic concepts
    • Linux: Bash
    • Linux: su and sudo
    • Linux: pipes
    • Linux: File System
    • Linux: Virtual Machines

    • Linux: distros
    • Linux Distros: Ubuntu
    • Linux Distros: Mint
    • Linux Distros: Debian
    • Linux Distros: openSuse
    • Linux Distros: Manjaro
    • Linux Distros: Red Hat Enterprise

    • Linux: laboratories
    • Linux Lab#LI01-1: Choose Linux
    • Linux Lab#LI01-2: Install at least three distributions
    • Linux Lab#LI01-3: Adjust user permissions
    • Linux Lab#LI02-1: Export env user with grep and pipe
    • Linux Lab#LI03-1: Manage users and groups
    • Linux Lab#LI03-2: Manage files
    • Linux Lab#LI03-3: Manage software
    • Linux Lab#LI03-4: Manage hardware
    • Linux Lab#LI04-1: Bash scripting, qtool
    • Linux Lab#LI04-2: Bash scripts as terminal tool
    • Linux Lab#LI04-3: Distribute the terminal app

    • Linux readings
    • Linux Resources
  • DevOps
    • What is DevOps
    • DevOps: Introduction
    • DevOps: Agile and Microservices
    • Infrastructure as code (IaC)
    • Immutable Infrastructure
    • Software Lifecycle

    • Documentation
    • How to document: Quarto and Obsidian

    • Network protocols
    • Network: Basics
    • Network: Client-server
    • Network Protocols
    • Network: DNS
    • Network: API Rest
    • Network: gRPC
    • Network: Websocket
    • Network: SMTP
    • Network: Ping
    • Network: UDP
    • Network: webhook
    • Network: SOAP
    • Network: graphQL

    • Version Control
    • Git
    • GitHub
    • Idea and GitHub 2023
    • Git and GitHub 2023 CLI

    • IDEs
    • IDE: Visual Code
    • IDE: IntellJIdea

    • DevOps tools
    • Amazon Web Services AWS
    • Docker
    • Jenkins pipelines
    • Kubernetes k8s
    • Digital Ocean
    • Nagios
    • Ansible

    • DevOps Laboratories
    • Lab 1: chat App
    • Lab 2: Spring Boot AWS AEB manually
    • Lab 3: Spring Boot and AWS S3 publisher
    • Lab 4: Spring Boot Docker/Jenkins
    • Lab 5: k8s on Digital Ocean
    • Lab 6: Spring Boot AWS codecommit

    • DevOps readings
    • DevOps Resources
  • MarkUp
    • MarkUp Languages
    • Introduction Markup
    • HTML Markup
    • Markdown Markup
    • Markdown and HTML working together, good idea?

    • Quarto Markdown
    • Quarto Markdown: basics
    • Quarto Markdown: creating
    • Quarto Markdown: publishing
    • Quarto Markdown: code & data
    • Quarto Markdown: api rest call
    • Quarto Markdown: OJS Cells
    • Quarto Markdown: cheat-sheet

    • Styling: CSS
    • Cascade Style Sheet
    • Cascade Style Sheet: Box Model and Containers
    • CSS: W3.css

    • MarkUp Languages Laboratories
    • Lab#MD01-1: Create and publish by Quarto

    • MarkUp Languages readings
    • MarkUp Languages Resources
  • Java SE
    • What is Java SE
    • Java Standard Edition: Basics
    • Java Standard Edition: Principles
    • Java MOOC Helsinki
    • Java MOOC Helsinki Syllabus

    • Java Create Project
    • Java SE: Maven
    • Java SE: Create Maven Project
    • Java SE: Project push GitHub
    • Java SE: JUnit and TDD

    • Java Concepts
    • Java SE: Class and Objects
    • Java SE: Scope
    • Java SE: static modifier
    • Java SE: Coupling and DDD
    • Java SE: Packages
    • Java SE: Abstract/Interface
    • Java SE: Java 8

    • Java Principles
    • Java SE: Encapsulation
    • Java SE: Abstraction
    • Java SE: Inherence
    • Java SE: Polymorphism

    • Java Design Patterns
    • Java Patterns: UML
    • Java Patterns: Types
    • Singleton
    • Factory
    • Abstract Factory
    • Builder
    • Facade
    • Bridge
    • Decorator
    • Composite
    • Observer
    • Strategy
    • State
    • Commander

    • Java SE Laboratories
    • Lab#SE00-1: Maven Person
    • Lab#SE00-2: Maven Clinic
    • Lab#SE00-3: Library Model
    • Lab#SE00-4: Abstract/Interface Human
    • Lab#SE01-1: Maven/Gradle Person and Account
    • Lab#SE01-2: Maven/Gradle Person and Account stored in JSON
    • Lab#SE02-1: Movie/Review, Model
    • Lab#SE02-2: Movie/Review, CRUD Operations
    • Lab#SE02-3: Movie/Review, factory
    • Lab#SE02-4: Movie/Review, interactivity and coupling
    • Lab#SE02-5: Movie/Review, simulate interactivity by console
    • Lab#SE03-1: Library/Book, Core-Model
    • Lab#SE03-2: Library/Book, Sprint Zero
    • Lab#SE03-3: Library/Book, Expand Model
    • Lab#SE04-1: healthyFood Restaurant, Core Model

    • Java SE readings
    • Java SE Resources
  • Python
    • Python Basics
    • Python: Basic Concepts
    • Python: Numbers
    • Python: Strings
    • Python: Conditionals
    • Python: Lists and Loops
    • Python: Nested Loops
    • Python: Tuples
    • Python: Sets
    • Python: Dictionaries
    • Python: Functions
    • Python: Higher-order Functions
    • Python: Variable Scope
    • Python: Variable Assigment
    • Python: None keyword in Python
    • Python: Object Oriented Programming (OOP)
    • Python: Inheritance and Polymorphism
    • Python: Encapsulation
    • Python: Abstraction
    • Python: Exceptions
    • Python: Cheat-Sheets
  • JavaScript
    • JavaScript Basics
    • JavaScript: Fundamentals
    • JavaScript: Data Types
    • JavaScript: Variables
    • JavaScript: Operators
    • JavaScript: Conditionals
    • JavaScript: Loops
    • JavaScript: Functions
    • JavaScript: Arrays
    • JavaScript: Objects

    • React Framework

    • ReactJS: Principles
    • React JS: Introduction
    • React JS: render virtual DOM
    • React JS: Create a React project
    • React JS: Components
    • React JS: JSX
    • React JS: props and state

    • JavaScript: web scripting
    • JavaScript: basics
    • JavaScript: functions
    • JavaScript: objects
    • JavaScript: variables
    • JavaScript: flux control

    • ES6: ECMAScript 6
    • React JS ES6: arrow functions
    • React JS ES6: import modules
    • React JS ES6: array, data and key
    • React JS ES6: destructuring
    • React JS ES6: spread operator

    • ReacJS 18: Hooks
    • React JS: Rules of Hooks
    • ReactJS: useState
    • React JS: useReducer
    • React JS: useRef
    • React JS: useEffect
    • React JS: useContext
    • ReactJS: useMemo
    • ReactJS: custom hooks

    • ReactJS: Designing an App
    • React JS App: async
    • React JS App: events
    • React JS App: router
    • React JS App: conditional render
    • React JS App: styling

    • React JS: Laboratories
    • Lab#RE01-1: API Rest Axios
    • Lab#RE02-1: Router & Hooks
    • Lab#RE03-1: to-do app
    • Lab#RE03-2: HighCharts
    • Lab#RE03-3: API Rest Mono
    • Lab#RE03-4: API Rest Domains
    • Lab#RE03-5: data management
    • Lab#RE04-1: todo & server
    • Lab#RE04-2: Spring Boot & ReactJS
    • Lab#RE05-1: chat & websockets
    • Lab#RE05-2: chat: backend
    • Lab#RE05-3: chat & AWS
    • Lab#RE05-4: chat: test ws AWS
    • Lab#RE05-5: chat & front
    • Lab#RE05-6: chat & ws: front
    • Lab#RE06-1: healthyFood Restaurant
    • Lab#RE06-1-PR: create a pull request
    • Lab#RE07-1: traffic lights simulation

    • React JS readings
    • ReactJS Resources
  • Backend
    • Spring Legacy
    • Spring Framework
    • Spring MVC
    • Springs Servlets

    • Spring Boot Basics
    • Spring Boot: fundamentals
    • Spring Boot: create a Project
    • Spring Boot: H2 DB and Thymeleaf
    • Spring Boot: cycle

    • Spring Boot Concepts
    • Spring Boot: Dependency Injection
    • Spring Boot: Annotations
    • Spring Boot: Controller
    • Spring Boot: View
    • Spring Boot: Thymeleaf
    • Spring Boot: Vaadin Flow
    • Spring Boot: Vaadin Hilla
    • Spring Boot: Model
    • Spring Boot: Rest
    • Spring Boot: Data & DB
    • Spring Boot: JPA & DI
    • Spring Boot: JPA Mappings
    • Spring Boot: JPA Relationships
    • Spring Boot: JPA Queries
    • Spring Boot: JPA Inherence
    • Spring Boot: Scaling

    • Spring Boot Laboratories
    • Lab#SB00-1: Library UML
    • Lab#SB00-2: CRUD User
    • Lab#SB00-3: LibraryManagement
    • Lab#SB00-4: API Rest
    • Lab#SB00-5: Rest & JPA-H2
    • Lab#SB00-6: Rest & MongoDB
    • Lab#SB00-7: Styling
    • Lab#SB01-1: DataBase
    • Lab#SB02-1: JPA Relationships
    • Lab#SB03-1: APIs & cloud
    • Lab#SB04-1: JPA Inherence
    • Lab#SB05-1: API Rest
    • Lab#SB06-1: employeeCourse
    • Lab#SB07-1: monitor Book
    • Lab#SB08-1: Restaurant UML
    • Lab#SB08-2: Vaadin
    • Lab#SB08-3: H2 and API Rest
    • Lab#SB08-4: JPA
    • Lab#SB08-5: Test API Rest
    • Lab#SB09-1: SpringIO Conference

    • Spring Boot readings
    • Spring Boot Resources
  • Learning
    • Vocabulary
    • General Vocabulary
    • SCRUM Vocabulary
    • DevOps Vocabulary
    • Java SE Vocabulay
    • Spring Boot Vocabulary
    • DataBase Vocabulary
    • ReactJS Vocabulary
    • Web Vocabulary

    • Learning
    • Useful Questions
    • Learning: tips
    • Writing
    • Taking Notes
    • Comments
    • Document
    • Auto-Evaluate

    • Books & Articles
    • Books
    • Articles

    • What is SCRUM
    • SCRUM Agile Methodology
    • Agile Manifesto & Values
    • SCRUM Guide

    • Scrum Steps
    • Meetings, Impediments and Iterations
    • User stories, Tasks and Habits
    • Delivering Value & Communication
    • ScrumMaster, how it works
    • Mindset, the key to everything
    • Product Owner, how it works
    • Managing Time & Mind
    • Team & the Specialist
    • Albertus’ Dilemma
    • Before SCRUM
    • Team Dynamics
    • Emotions and Thoughts
    • Decision Making and Intuition
    • Beyond SCRUM
    • Balances, atmosphere and tools

    • Resources
    • SCRUM Resources
  • QGIS
    • QGIS basics
    • QGIS: basic concepts

    • QGIS laboratories
    • QGIS Laboratory 1: Introduction to Open Source GIS
  • ArcGIS Pro
    • ArcGIS Pro basics
    • ArcGIS Pro: basic concepts

    • ArcGIS Pro laboratories
    • ArcGIS Pro Laboratory 1: Getting Started
  • Bookmarks
    • Online Resources
    • Online Resources
  • About
    • About me and this site
    • About me
    • About this site
    • About images credit
  • Maps
  • Featured Projects
    • ✈️ Flight tracker
    • 🧑 People tracker
    • 🚗 Renting Car
    • Email
    • GitHub
    • LinkedIn
  1. Python Basics
  2. Python: Basic Concepts
  • Python

  • Python Basics
    • Python: Basic Concepts
    • Python: Numbers
    • Python: Strings
    • Python: Conditionals
    • Python: Lists and Loops
    • Python: Nested Loops
    • Python: Tuples
    • Python: Sets
    • Python: Dictionaries
    • Python: Functions
    • Python: Higher-order Functions
    • Python: Variable Scope
    • Python: Variable Assigment
    • Python: None keyword in Python
    • Python: Object Oriented Programming (OOP)
    • Python: Inheritance and Polymorphism
    • Python: Encapsulation
    • Python: Abstraction
    • Python: Exceptions
    • Python: Cheat-Sheets

On this page

  • 1 Overview
  • 2 Main Programming and Python Concepts
  • 3 Displaying text
  • 4 Comments
  • 5 Number operations
  • 6 Data types
    • 6.1 Built-in types
  • 7 Casting
  • 8 Variables
    • 8.1 Updating operation
    • 8.2 Convention variable names
  • 9 Keywords
  • 10 Built-in functions
  • 11 User input
  • 12 Example
  • Edit this page
  • View source
  • Report an issue
  1. Python Basics
  2. Python: Basic Concepts

Python: Basic Concepts

Python Basic Concepts

python
basic-concepts
Python Basic Concepts
Author

Isaac Boixaderas

Published

Sunday, June 1, 2025

Modified

Tuesday, October 14, 2025

1 Overview

📘 Python

Python is a high-level, interpreted programming language known for its simplicity and readability. Created by Guido van Rossum and first released in 1991, Python emphasizes code readability with its use of significant indentation. It supports multiple programming paradigms including procedural, object-oriented, and functional programming. Python is widely used in web development, data science, artificial intelligence, automation, and scientific computing.


2 Main Programming and Python Concepts

3 Displaying text

print() built-in function:

  • Writes text to the console (or standard output).
  • Takes multiple arguments (between the parentheses) and displays them.
print(3.1416)
3.1416
print("Hello world!")
Hello world!

  • By default, print adds a new line at the end of the string.
print("Hello world!")
print("This is a new line.")
Hello world!
This is a new line.

  • If values separated by commas, print automatically adds a space in between.
print("Hello", "world!", "How are you?")
Hello world! How are you?

4 Comments

  • Code lines are executed from top to bottom.
  • Empty lines do nothing.
  • Comments are lines of text in between your code that are not executed.
  • Used for providing explanations, notes, descriptions…
  • 2 types:
    • Single-line (#)
    • Multi-line comments (enclosing text in ''' or """)

# This is a single-line comment
print("Hello, world!")  # This is an inline comment

# print(2 + 3)
# The code above is commented out, so it won't be executed
print(5 + 5)  # This line before this comment will be executed
Hello, world!
10

"""
This is a multi-line comment.
You can write explanations or descriptions
that span multiple lines.
"""
print("Hello, world!")
Hello, world!

5 Number operations

print(2 + 3)   # addition (+)
5
print(3 - 1)   # subtraction (-)
2
print(2 * 3)   # multiplication (*)
6

print(3 / 2)   # division (/)
1.5
print(3 // 2)  # floor division (//)
1
print(3 ** 2)  # exponential (**)
9
print(3 % 2)   # modulus (%)
1

6 Data types

  • Categories of values that share characteristics.
  • Dictate how values are stored, represented…
  • type() built-in function:

type(2)
[‘int’]
type(2.5)
[‘float’]
# string
type('Hello world!')
[‘str’]

6.1 Built-in types

Built-in types

Built-in types

Different types have different properties on how they interact between them:

5 - 1
4
'a' - 'b'
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

5 + 1
6
'a' + 'b'
‘ab’
# Take care, this is a string!
'5' + '1'
‘51’

# Cannot mix types
5 + 'a'
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

7 Casting

  • Converting one type to another.
  • Using built-in functions int(), float(), str(), etc.
# Type is string when a number is in quotes
print(type('1'))
<class ‘str’>
# But we can convert it to integer by using the int() function
print(type(int('1')))
<class ‘int’>

# After converting the string to integer, we can operate on it
print(3 + int('1'))
4

# We can also do it the other way and transform an integer to a string
print(type(1))
print(type(str(1)))
<class ‘int’>
<class ‘str’>

# After converting the integer to string, we can operate on it
print('abc' + str(1))
print('5' + str(1))
abc1
51

# Take care when converting floats to integers, as the decimal part will be removed
print(int(3.14))
print(int(3.99))
3
3

8 Variables

  • Used for storing and manipulating data.
  • Naming:
    • Should start with a letter a-z or A-Z or an underscore (_).
    • They can also contain numbers, as long as a number is not the first character.
    • Case-sensitive.
  • Assignation
    • With =
    • No need to specify data type (done automatically by Python).
    • Reassignation is allowed at any time.

# Variable assignation examples:

name = 'John Doe'
age = 25
is_student = True

  • Python automatically detects the data type based on the assigned value:
print(type(name))
print(type(age))
print(type(is_student))
<class ‘str’>
<class ‘int’>
<class ‘bool’>

  • Use the value of the variables anywhere in the program:
print(name)
John Doe
print(age)
25

# You can also change the value of the variable,
# so its value will be overwritten.
name = 'Isaac'
print(name)
Isaac

  • We can operate with variables as if they were the values:
number1 = 1
number2 = 2

print(number1 + number2)
3
print(number1 - number2)
-1

surname = 'Newton'

# Arguments in `print()` are automatically separated by a space.
print(name, surname)
Isaac Newton
# With +, words are concatenated.
print(name + surname)
IsaacNewton

8.1 Updating operation

  • For updating the value of a variable, we can do it in the classical way:
x = 5

# Add 1 to x
x = x + 1
print(x)
6

  • Shortcut for updating a variable:
x = 5

# Add 1 to x
x += 1
print(x)
6
# Subtract 2 from x
x -= 2  # This is equivalent to x = x - 2
print(x)
4

# Multiply x by 3
x *= 3  # This is equivalent to x = x * 3
print(x)
12
# Divide x by 4
x //= 4  # This is equivalent to x = x // 4
print(x)
3

8.2 Convention variable names

  • Snake Case: Words separated by _. E.g., is_student, user_name or name_and_surname.

  • Camel Case:
    • Lower Camel Case: First word lowercase, subsequent words start with capital letter. E.g., isStudent, userName, nameAndSurname.
    • Upper Camel Case (Pascal Case): First word also capitalized. E.g., IsStudent, UserName, NameAndSurname.

9 Keywords

  • Python’s reserved words. They have a special purpose and functionality and cannot be used as identifiers (variable names, function names, class names, etc.).
and del from not as
elif global or assert else
if pass async except import
raise await finally in return
break for is try class
with lambda while continue yield
nonlocal def False None True

# We get an error if we try to use 'break' as a variable name
break = 3
SyntaxError: invalid syntax
# But we can use variations
breac = 3
print(breac)
3

10 Built-in functions

  • Built-in functions are globally available in any Python program.
  • Unlike reserved words, it is possible to use built-in function names as variable names, thus modifying the default behavior (NOT RECOMENDED!).

abs all any ascii bin
bool breakpoint bytearray bytes callable
chr classmethod compile complex delattr
dict dir divmod enumerate eval
exec filter float format frozenset
getattr globals hasattr hash help
hex id input int isinstance
issubclass iter len list locals
map max memoryview min next
object oct open ord pow
print property range repr reversed
round set setattr slice sorted
staticmethod str sum super tuple
type vars zip import

  • Take care!
print = 5
a = print + 2   # `a` has the value 7
print('Hello')  # Error because `print` is now the value 5
TypeError: ‘int’ object is not callable

11 User input

  • Reads text from the user.
  • Returns it as a string.
name = input('Enter your name: ')
print(name)
Enter your name: Isaac
Isaac

# Take care because it returns a string
age = input('Enter your age: ')
print(age + 1)
TypeError: can only concatenate str (not “int”) to str

# This code works well, as we parse the input to an integer
age = int(input('Enter your age: '))
print(age + 1)
32

12 Example

Write a program in which a user enters his/her name and age and the system prints a message with that information.


# Use input for processing the user name
user_name = input('Enter your name: ')
# Use input for processing the user age
user_age = int(input('Enter your age: '))

# Remember that, by default, the input function returns a string,
# so we do not need to convert the age to integer for concatenating it
print('Hello! You are ', user_name, ' and you are ', user_age, ' years old.')
Hello! You are Isaac and you are 31 years old.
Back to top
Python: Numbers

License: CC0 1.0 Universal

Per aspera, ad astra

  • Edit this page
  • View source
  • Report an issue