SlideShare a Scribd company logo
Introduction to 

Advanced Python
Charles-Axel Dein - June 2014, revised June 2016
License
• This presentation is shared under Creative Commons

Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
• More information about the license can be found here
• Please give proper attribution to the original author 

(Charles-Axel Dein)
Checkout my Github for 

the source of this presentation 

and more resources:
github.com/charlax/python-education
What’s the goal of this
presentation?
Goal 1:
Discover cool & underused 

Python features
Goal 2:
Improve your code’s
readability
Write code that explains to
a human what we want 

the computer to do.
– D. Knuth
Do not use those patterns
just when you feel like it
Readability can be
achieved through
conciseness…
… but it can also be hindered 

by overuse of magic
Let’s talk about 

a concrete example
Before
def	toast(bread):	
				if	bread	==	"brioche":	
								raise	ValueError("Are	you	crazy?")	
				toaster	=	Toaster()	
				if	toaster.has_bread("bagel"):	
								raise	ToasterNotEmptyError("Toaster	already	has	some	bagel")	
				try:	
								toaster.set_thermostat(5)	
								for	slot	in	[toaster.slot1,	toaster.slot2]:	
												slot.insert(bread)	
				except	BreadBurnedError:	
								print("zut")	
				finally:	
								toaster.eject()
Let’s make it more
expressive!
def	toast(bread):	
				if	bread	==	"brioche":	
								raise	ValueError("Are	you	crazy?")	
				toaster	=	Toaster()	
				if	toaster.has_bread("bagel"):	
								raise	ToasterNotEmptyError(	
												"Toaster	already	has	some	bagel")	
				try:	
								toaster.set_thermostat(5)	
								for	slot	in	[toaster.slot1,	toaster.slot2]:	
												slot.insert(bread)	
				except	BreadBurnedError:	
								print("zut")	
				finally:	
								toaster.eject()	
@nobrioche	
def	toast(bread):	
				toaster	=	Toaster()	
				if	"bagel"	in	toaster:	
								raise	ToasterNotEmptyError(

												"Toaster	already	has	some	bagel")	
				with	handle_burn():	
								toaster.set_thermostat(5)	
								for	slot	in	toaster:	
												slot.insert(bread)
It almost reads like
English.
(only with a French accent)
Note:
this is just an example!
In practice you’d want to be
a bit more explicit about
things.
Note:
examples were run with 

Python 3.4
Decorators
Attach additional
responsibilities to an
object
In Python , almost
everything is an object
In	[1]:	def	toast():	pass	
In	[2]:	toast	
Out[2]:	<function	__main__.toast>	
In	[3]:	type(toast)	
Out[3]:	function
Python’s decorators (@)
are just syntactic sugar
def	function():	
								pass	
				function	=	decorate(function)	
				#	is	exactly	equivalent	to:	
				@decorate	
				def	function():	
								pass
AfterBefore
def	toast(bread):	
				if	bread	==	'brioche':		
								raise	ValueError("Are	you	crazy?")	
				...	
def	burn(bread):	
				if	bread	==	'brioche':		
								raise	ValueError("Are	you	crazy?")	
				...	
def	no_brioche(function):	
				def	wrapped(bread):	
								if	bread	==	'brioche':		
												raise	ValueError("Are	you	crazy?")	
								return	function(bread)	
				return	wrapped	
@no_brioche	
def	toast(bread):	pass	
@no_brioche	
def	burn(bread):	pass
Use cases
Cachingimport	functools	
@functools.lru_cache(maxsize=32)	
def	get_pep(num):	
				"""Retrieve	text	of	Python	Enhancement	Proposal."""	
				resource	=	'http://www.python.org/dev/peps/pep-%04d/'	%	num	
				try:	
								with	urllib.request.urlopen(resource)	as	s:	
												return	s.read()	
				except	urllib.error.HTTPError:	
								return	'Not	Found'	
pep	=	get_pep(8)	
pep	=	get_pep(8)
Other use cases
• Annotating/registering (e.g. Flask’s app.route)
• Wrapping in a context (e.g. mock’s mock.patch)
To go further
• Parametrized decorators
• Class decorators
• ContextDecorator
Context manager
Originally meant to provide
reusable 

try… finally blocks
with	open("/etc/resolv.conf")	as	f:	
								print(f.read())	
				#	Is	**roughly**	equivalent	to:	
				try:	
								f	=	open("/etc/resolv.conf")	
								print(f.read())	
				finally:	
								f.close()
Context managers wrap
execution in a context
class	Timer(object):	
				def	__enter__(self):	
								self.start	=	time.clock()	
								return	self	
				def	__exit__(self,	exception_type,	exception_value,	traceback):	
								self.end	=	time.clock()	
								self.duration	=	self.end	-	self.start	
								self.duration_ms	=	self.duration	*	1000	
with	Timer()	as	timer:	
				time.sleep(.1)	
assert	0.01	<	timer.duration_ms	<	0.3
AfterBefore
try:	
				os.remove('whatever.tmp')	
except	FileNotFoundError:	
				pass	
from	contextlib	import	suppress	
with	suppress(FileNotFoundError):	
				os.remove('somefile.tmp')
Use cases
redis pipeline
				with	redis_client.pipeline()	as	pipe:	
								pipe.set('toaster:1',	'brioche')	
								bread	=	pipe.get('toaster:2')	
								pipe.set('toaster:3',	bread)
SQL transaction				from	contextlib	import	contextmanager	
				@contextmanager	
				def	session_scope():	
								"""Provide	a	transactional	scope	around	a	series	of	operations."""	
								session	=	Session()	
								try:	
												yield	session	
												session.commit()	
								except:	
												session.rollback()	
												raise	
								finally:	
												session.close()	
				def	run_my_program():	
								with	session_scope()	as	session:	
												ThingOne().go(session)	
												ThingTwo().go(session)
Other use cases
• Acquiring/releasing a lock
• Mocking
To go further
• PEP 343
• contextlib module
• @contextlib.contextmanager
• contextlib.ExitStack
• Single use, reusable and reentrant context managers
Iterator/generator
Iterators: what are they?
• An object that implements the iterator protocol
• __iter__() returns the iterator (usually self)
• __next__() returns the next item or raises StopIteration
• This method will be called for each iteration until it raises
StopIteration
>>>	import	dis	
				>>>	def	over_list():	
				...					for	i	in	None:	pass	
				...	
				>>>	dis.dis(over_list)	
						2											0	SETUP_LOOP														14	(to	17)	
																		3	LOAD_CONST															0	(None)	
																		6	GET_ITER	
												>>				7	FOR_ITER																	6	(to	16)	
																	10	STORE_FAST															0	(i)	
																	13	JUMP_ABSOLUTE												7	
												>>			16	POP_BLOCK	
												>>			17	LOAD_CONST															0	(None)	
																	20	RETURN_VALUE
>>>	class	Toasters(object):	
...					"""Loop	through	toasters."""	
...					def	__init__(self):	
...									self.index	=	0	
...	
...					def	__next__(self):	
...									resource	=	get_api_resource("/toasters/"	+	str(self.index))	
...									self.index	+=	1	
...									if	resource:	
...													return	resource	
...									raise	StopIteration	
...	
...					def	__iter__(self):	
...									return	self	
>>>	for	resource	in	Toasters():	
...					print(resource)	
found	/toasters/0	
found	/toasters/1
Generators
>>>	def	get_toasters():	
...				while	True:	
...								resource	=	get_api_resource("/toasters/"	+	str(index))	
...								if	not	resource:	
...												break	
...								yield	resource	
>>>	for	resource	in	get_resources():	
...					print(resource)	
found	/toasters/0	
found	/toasters/1
Use cases of iterators
• Lazy evaluation of results one (batch) at time
• Lower memory footprint
• Compute just what you needed - can break in the middle (e.g.
transparently page queries)
• Unbounded sets of results
To go further
• Other uses of yield (e.g. coroutines)
• Exception handling
Special methods
Special methods
• Method that starts and ends with “__”
• Allow operator overloading, in particular
Examples
• __eq__, __lt__, …: rich comparison (==, >…)
• __len__: called with len()
• __add__, __sub__, …: numeric types emulation (+, -…)
• Attribute lookup, assignment and deletion
• Evaluation, assignment and deletion of self[key]
Use case: operator
overloading
@functools.total_ordering	
class	Card(object):	
				_order	=	(2,	3,	4,	5,	6,	7,	8,	9,	10,	'J',	'Q',	'K',	'A')	
				def	__init__(self,	rank,	suite):	
								assert	rank	in	self._order	
								self.rank	=	rank	
								self.suite	=	suite	
				def	__lt__(self,	other):	
								return	self._order.index(self.rank)	<	self._order.index(other.rank)	
				def	__eq__(self,	other):	
								return	self.rank	==	other.rank	
ace_of_spades	=	Card('A',	'spades')	
eight_of_hearts	=	Card(8,	'hearts')	
assert	ace_of_spades	<	eight_of_hearts
Why should they be used?
• Greater encapsulation of the logic, 

allowing objects to be manipulated without external function/methods
• Allow uses of builtins that all Python developers know (len, repr, …)
• Allow objects to be manipulated via operators (low cognitive burden)
• Allow use of certain keywords and Python features
• with (__enter__, __exit__)
• in (__contains__)
AfterBefore
if	is_greater(ace_of_spades,		
														eight_of_hearts):	
				pass	
if	(ace_of_spades.rank		
								>	eight_of_hearts.rank):	
				pass	
if	ace_of_spades	>	eight_of_hearts:	
				pass
To go further
• Google “A Guide to Python's Magic Methods”
• Check how SQLAlchemy uses it to allow 

session.query(Toaster.bread	==	‘croissant’)
Useful modules
collections
• namedtuple()
• Counter
• OrderedDict
• defaultdict
>>>	#	Find	the	ten	most	common	words	in	Hamlet	
>>>	import	re	
>>>	words	=	re.findall(r'w+',	open('hamlet.txt').read().lower())	
>>>	Counter(words).most_common(10)	
[('the',	1143),	('and',	966),	('to',	762),	('of',	669),	('i',	631),	
	('you',	554),		('a',	546),	('my',	514),	('hamlet',	471),	('in',	451)]
random
• randrange(start, stop[, step])
• randint(a, b)
• choice(seq)
• shuffle(x[, random])
• sample(population, k)
functools
• @lru_cache(maxsize=128, typed=False)
• partial(func, *args, **keywords)
• reduce(function, iterable[, initializer])
operator
• operator.attrgetter(attr)
• operator.itemgetter(item)
import	operator	as	op	
class	User(object):	pass	
class	Toaster(object):	pass	
toaster	=	Toaster()	
toaster.slot,	toaster.color	=	1,	'red'	
user	=	User()	
user.toaster	=	toaster	
f	=	op.attrgetter('toaster.slot',	'toaster.color')	
assert	f(user)	==	(1,	'red')
Profiling Python code
It’s extremely simple
import	cProfile	
import	glob	
cProfile.run("glob.glob('*')")
164	function	calls	(161	primitive	calls)	in	0.000	seconds	
			Ordered	by:	standard	name	
			ncalls		tottime		percall		cumtime		percall	filename:lineno(function)	
								1				0.000				0.000				0.000				0.000	<string>:1(<module>)	
								1				0.000				0.000				0.000				0.000	fnmatch.py:38(_compile_pattern)	
								1				0.000				0.000				0.000				0.000	fnmatch.py:48(filter)	
								1				0.000				0.000				0.000				0.000	fnmatch.py:74(translate)
Conclusion
Other topics
• Memory allocation trace
• Metaclasses
• Descriptors and properties
• List, dict, set comprehensions
• Other modules: itertools, csv, argparse, operator, etc.
Thank you! Any questions?
Checkout my Github for 

the source of this presentation 

and more resources:
github.com/charlax/python-education

More Related Content

What's hot (20)

Object oriented programming in python
Object oriented programming in pythonObject oriented programming in python
Object oriented programming in python
baabtra.com - No. 1 supplier of quality freshers
 
Python programming : Classes objects
Python programming : Classes objectsPython programming : Classes objects
Python programming : Classes objects
Emertxe Information Technologies Pvt Ltd
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 
Python programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphismPython programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphism
Emertxe Information Technologies Pvt Ltd
 
Python final ppt
Python final pptPython final ppt
Python final ppt
Ripal Ranpara
 
Regular expressions in Python
Regular expressions in PythonRegular expressions in Python
Regular expressions in Python
Sujith Kumar
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
Damian T. Gordon
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
Ganga Ram
 
Python Modules
Python ModulesPython Modules
Python Modules
Nitin Reddy Katkam
 
Python – Object Oriented Programming
Python – Object Oriented Programming Python – Object Oriented Programming
Python – Object Oriented Programming
Raghunath A
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
Hector Canto
 
Datatypes in python
Datatypes in pythonDatatypes in python
Datatypes in python
eShikshak
 
friend function(c++)
friend function(c++)friend function(c++)
friend function(c++)
Ritika Sharma
 
Python ppt
Python pptPython ppt
Python ppt
Rohit Verma
 
Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)
Paige Bailey
 
File Handling Python
File Handling PythonFile Handling Python
File Handling Python
Akhil Kaushik
 
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Edureka!
 
Inline function in C++
Inline function in C++Inline function in C++
Inline function in C++
Jenish Patel
 
Python ppt
Python pptPython ppt
Python ppt
Mohita Pandey
 
Python Libraries and Modules
Python Libraries and ModulesPython Libraries and Modules
Python Libraries and Modules
RaginiJain21
 
Regular expressions in Python
Regular expressions in PythonRegular expressions in Python
Regular expressions in Python
Sujith Kumar
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
Ganga Ram
 
Python – Object Oriented Programming
Python – Object Oriented Programming Python – Object Oriented Programming
Python – Object Oriented Programming
Raghunath A
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
Hector Canto
 
Datatypes in python
Datatypes in pythonDatatypes in python
Datatypes in python
eShikshak
 
friend function(c++)
friend function(c++)friend function(c++)
friend function(c++)
Ritika Sharma
 
Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)
Paige Bailey
 
File Handling Python
File Handling PythonFile Handling Python
File Handling Python
Akhil Kaushik
 
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Edureka!
 
Inline function in C++
Inline function in C++Inline function in C++
Inline function in C++
Jenish Patel
 
Python Libraries and Modules
Python Libraries and ModulesPython Libraries and Modules
Python Libraries and Modules
RaginiJain21
 

Similar to Introduction to advanced python (20)

A tour of Python
A tour of PythonA tour of Python
A tour of Python
Aleksandar Veselinovic
 
An overview of Python 2.7
An overview of Python 2.7An overview of Python 2.7
An overview of Python 2.7
decoupled
 
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina ZakharenkoElegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Nina Zakharenko
 
Advance python
Advance pythonAdvance python
Advance python
pulkit agrawal
 
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Nina Zakharenko
 
A Few of My Favorite (Python) Things
A Few of My Favorite (Python) ThingsA Few of My Favorite (Python) Things
A Few of My Favorite (Python) Things
Michael Pirnat
 
Python lecture 12
Python lecture 12Python lecture 12
Python lecture 12
Tanwir Zaman
 
Robust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
Robust Python Write Clean And Maintainable Code 1st Edition Patrick ViaforeRobust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
Robust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
yunyunburm
 
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
guogabrokaw
 
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina ZakharenkoElegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Nina Zakharenko
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
OSU Open Source Lab
 
IoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptxIoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptx
afsheenfaiq2
 
Python advance
Python advancePython advance
Python advance
Deepak Chandella
 
Iterarators and generators in python
Iterarators and generators in pythonIterarators and generators in python
Iterarators and generators in python
Sarfaraz Ghanta
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
Daniel Greenfeld
 
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
benhurmaarup
 
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
gustyyrauan
 
Robust Python.pptx
Robust Python.pptxRobust Python.pptx
Robust Python.pptx
Patrick Viafore
 
Intro
IntroIntro
Intro
Daniel Greenfeld
 
Python iteration
Python iterationPython iteration
Python iteration
dietbuddha
 
An overview of Python 2.7
An overview of Python 2.7An overview of Python 2.7
An overview of Python 2.7
decoupled
 
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina ZakharenkoElegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Elegant Solutions for Everyday Python Problems Pycon 2018 - Nina Zakharenko
Nina Zakharenko
 
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Elegant Solutions For Everyday Python Problems - PyCon Canada 2017
Nina Zakharenko
 
A Few of My Favorite (Python) Things
A Few of My Favorite (Python) ThingsA Few of My Favorite (Python) Things
A Few of My Favorite (Python) Things
Michael Pirnat
 
Robust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
Robust Python Write Clean And Maintainable Code 1st Edition Patrick ViaforeRobust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
Robust Python Write Clean And Maintainable Code 1st Edition Patrick Viafore
yunyunburm
 
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
Download full ebook of Learning Python 2nd ed Edition Mark Lutz instant downl...
guogabrokaw
 
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina ZakharenkoElegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Nina Zakharenko
 
IoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptxIoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptx
afsheenfaiq2
 
Iterarators and generators in python
Iterarators and generators in pythonIterarators and generators in python
Iterarators and generators in python
Sarfaraz Ghanta
 
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
benhurmaarup
 
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
Dead Simple Python Idiomatic Python for the Impatient Programmer Jason C. Mcd...
gustyyrauan
 
Python iteration
Python iterationPython iteration
Python iteration
dietbuddha
 
Ad

More from Charles-Axel Dein (9)

Amazon.com: the Hidden Empire
Amazon.com: the Hidden EmpireAmazon.com: the Hidden Empire
Amazon.com: the Hidden Empire
Charles-Axel Dein
 
Apple Study: 8 easy steps to beat Microsoft (and Google)
Apple Study: 8 easy steps to beat Microsoft (and Google)Apple Study: 8 easy steps to beat Microsoft (and Google)
Apple Study: 8 easy steps to beat Microsoft (and Google)
Charles-Axel Dein
 
Gérer le risque dans les projets de e-learning
Gérer le risque dans les projets de e-learningGérer le risque dans les projets de e-learning
Gérer le risque dans les projets de e-learning
Charles-Axel Dein
 
Le carburéacteur
Le carburéacteurLe carburéacteur
Le carburéacteur
Charles-Axel Dein
 
Formulaire de thermodynamique
Formulaire de thermodynamiqueFormulaire de thermodynamique
Formulaire de thermodynamique
Charles-Axel Dein
 
Google Chrome: Free Software as a launching platform
Google Chrome: Free Software as a launching platformGoogle Chrome: Free Software as a launching platform
Google Chrome: Free Software as a launching platform
Charles-Axel Dein
 
Les enrobés bitumineux (matériau)
Les enrobés bitumineux (matériau)Les enrobés bitumineux (matériau)
Les enrobés bitumineux (matériau)
Charles-Axel Dein
 
Nextreme: a startup specialized in thermoelectric cooling
Nextreme: a startup specialized in thermoelectric coolingNextreme: a startup specialized in thermoelectric cooling
Nextreme: a startup specialized in thermoelectric cooling
Charles-Axel Dein
 
Amazon.com: the Hidden Empire
Amazon.com: the Hidden EmpireAmazon.com: the Hidden Empire
Amazon.com: the Hidden Empire
Charles-Axel Dein
 
Apple Study: 8 easy steps to beat Microsoft (and Google)
Apple Study: 8 easy steps to beat Microsoft (and Google)Apple Study: 8 easy steps to beat Microsoft (and Google)
Apple Study: 8 easy steps to beat Microsoft (and Google)
Charles-Axel Dein
 
Gérer le risque dans les projets de e-learning
Gérer le risque dans les projets de e-learningGérer le risque dans les projets de e-learning
Gérer le risque dans les projets de e-learning
Charles-Axel Dein
 
Formulaire de thermodynamique
Formulaire de thermodynamiqueFormulaire de thermodynamique
Formulaire de thermodynamique
Charles-Axel Dein
 
Google Chrome: Free Software as a launching platform
Google Chrome: Free Software as a launching platformGoogle Chrome: Free Software as a launching platform
Google Chrome: Free Software as a launching platform
Charles-Axel Dein
 
Les enrobés bitumineux (matériau)
Les enrobés bitumineux (matériau)Les enrobés bitumineux (matériau)
Les enrobés bitumineux (matériau)
Charles-Axel Dein
 
Nextreme: a startup specialized in thermoelectric cooling
Nextreme: a startup specialized in thermoelectric coolingNextreme: a startup specialized in thermoelectric cooling
Nextreme: a startup specialized in thermoelectric cooling
Charles-Axel Dein
 
Ad

Recently uploaded (20)

Custom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdfCustom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdf
Digital Aptech
 
Content Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ ProductivityContent Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ Productivity
Alex Vladimirovich
 
AI Alternative - Discover the best AI tools and their alternatives
AI Alternative - Discover the best AI tools and their alternativesAI Alternative - Discover the best AI tools and their alternatives
AI Alternative - Discover the best AI tools and their alternatives
AI Alternative
 
Oliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdfOliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdf
GiliardGodoi1
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
Build enterprise-ready applications using skills you already have!
Build enterprise-ready applications using skills you already have!Build enterprise-ready applications using skills you already have!
Build enterprise-ready applications using skills you already have!
PhilMeredith3
 
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROIAutoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Udit Goenka
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17
zOSCommserver
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Software Risk and Quality management.pptx
Software Risk and Quality management.pptxSoftware Risk and Quality management.pptx
Software Risk and Quality management.pptx
HassanBangash9
 
ICDL FULL STANDARD 2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
ICDL FULL STANDARD  2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdfICDL FULL STANDARD  2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
ICDL FULL STANDARD 2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
M. Luisetto Pharm.D.Spec. Pharmacology
 
Boost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for SchoolsBoost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for Schools
Visitu
 
grade 9 ai project cycle Artificial intelligence.pptx
grade 9 ai project cycle Artificial intelligence.pptxgrade 9 ai project cycle Artificial intelligence.pptx
grade 9 ai project cycle Artificial intelligence.pptx
manikumar465287
 
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptxHow AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
kalichargn70th171
 
Delivering More with Less: AI Driven Resource Management with OnePlan
Delivering More with Less: AI Driven Resource Management with OnePlan Delivering More with Less: AI Driven Resource Management with OnePlan
Delivering More with Less: AI Driven Resource Management with OnePlan
OnePlan Solutions
 
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
Nacho Cougil
 
Marketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptxMarketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptx
julia smits
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdfBoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
Ortus Solutions, Corp
 
Custom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdfCustom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdf
Digital Aptech
 
Content Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ ProductivityContent Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ Productivity
Alex Vladimirovich
 
AI Alternative - Discover the best AI tools and their alternatives
AI Alternative - Discover the best AI tools and their alternativesAI Alternative - Discover the best AI tools and their alternatives
AI Alternative - Discover the best AI tools and their alternatives
AI Alternative
 
Oliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdfOliveira2024 - Combining GPT and Weak Supervision.pdf
Oliveira2024 - Combining GPT and Weak Supervision.pdf
GiliardGodoi1
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
Build enterprise-ready applications using skills you already have!
Build enterprise-ready applications using skills you already have!Build enterprise-ready applications using skills you already have!
Build enterprise-ready applications using skills you already have!
PhilMeredith3
 
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROIAutoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Autoposting.ai Sales Deck - Skyrocket your LinkedIn's ROI
Udit Goenka
 
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-OffMicro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Micro-Metrics Every Performance Engineer Should Validate Before Sign-Off
Tier1 app
 
zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17
zOSCommserver
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Software Risk and Quality management.pptx
Software Risk and Quality management.pptxSoftware Risk and Quality management.pptx
Software Risk and Quality management.pptx
HassanBangash9
 
ICDL FULL STANDARD 2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
ICDL FULL STANDARD  2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdfICDL FULL STANDARD  2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
ICDL FULL STANDARD 2025 Luisetto mauro - Academia domani- 55 HOURS LONG pdf
M. Luisetto Pharm.D.Spec. Pharmacology
 
Boost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for SchoolsBoost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for Schools
Visitu
 
grade 9 ai project cycle Artificial intelligence.pptx
grade 9 ai project cycle Artificial intelligence.pptxgrade 9 ai project cycle Artificial intelligence.pptx
grade 9 ai project cycle Artificial intelligence.pptx
manikumar465287
 
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptxHow AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
kalichargn70th171
 
Delivering More with Less: AI Driven Resource Management with OnePlan
Delivering More with Less: AI Driven Resource Management with OnePlan Delivering More with Less: AI Driven Resource Management with OnePlan
Delivering More with Less: AI Driven Resource Management with OnePlan
OnePlan Solutions
 
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
Nacho Cougil
 
Marketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptxMarketing And Sales Software Services.pptx
Marketing And Sales Software Services.pptx
julia smits
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdfBoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
Ortus Solutions, Corp
 

Introduction to advanced python