Python Data Persistence With SQL and NOSQL Databases 1st Edition Lathkar

niikaikeade 9 views 66 slides Mar 15, 2025
Slide 1
Slide 1 of 66
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66

About This Presentation

Python Data Persistence With SQL and NOSQL Databases 1st Edition Lathkar
Python Data Persistence With SQL and NOSQL Databases 1st Edition Lathkar
Python Data Persistence With SQL and NOSQL Databases 1st Edition Lathkar


Slide Content

Read Anytime Anywhere Easy Ebook Downloads at ebookmeta.com
Python Data Persistence With SQL and NOSQL
Databases 1st Edition Lathkar
https://ebookmeta.com/product/python-data-persistence-with-
sql-and-nosql-databases-1st-edition-lathkar/
OR CLICK HERE
DOWLOAD EBOOK
Visit and Get More Ebook Downloads Instantly at https://ebookmeta.com

Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.
SQL and NoSQL Databases: Modeling, Languages, Security and
Architectures for Big Data Management Michael Kaufmann
https://ebookmeta.com/product/sql-and-nosql-databases-modeling-
languages-security-and-architectures-for-big-data-management-michael-
kaufmann/
ebookmeta.com
SQL and NoSQL Databases Modeling Languages Security and
Architectures for Big Data Management 2nd Edition Michael
Kaufmann
https://ebookmeta.com/product/sql-and-nosql-databases-modeling-
languages-security-and-architectures-for-big-data-management-2nd-
edition-michael-kaufmann/
ebookmeta.com
Getting Started with SQL and Databases: Managing and
Manipulating Data with SQL 1st Edition Mark Simon
https://ebookmeta.com/product/getting-started-with-sql-and-databases-
managing-and-manipulating-data-with-sql-1st-edition-mark-simon/
ebookmeta.com
Snowed in With the Grump 1st Edition Kat Baxter
https://ebookmeta.com/product/snowed-in-with-the-grump-1st-edition-
kat-baxter/
ebookmeta.com

Turning Up Roses A Crestfield Inn 2 1st Edition Elsie
Davis
https://ebookmeta.com/product/turning-up-roses-a-crestfield-inn-2-1st-
edition-elsie-davis/
ebookmeta.com
Therapeutic Interviewing Essential Skills and Contexts of
Counseling 2nd Edition Michael D. Reiter
https://ebookmeta.com/product/therapeutic-interviewing-essential-
skills-and-contexts-of-counseling-2nd-edition-michael-d-reiter/
ebookmeta.com
The Administrative State 1st Edition Dwight Waldo
https://ebookmeta.com/product/the-administrative-state-1st-edition-
dwight-waldo/
ebookmeta.com
Schubert 1st Edition Lorraine Byrne Bodley
https://ebookmeta.com/product/schubert-1st-edition-lorraine-byrne-
bodley/
ebookmeta.com
God Evil and Redeeming Good A Thomistic Theodicy 1st
Edition Paul A. Macdonald
https://ebookmeta.com/product/god-evil-and-redeeming-good-a-thomistic-
theodicy-1st-edition-paul-a-macdonald/
ebookmeta.com

Troubled Pursuit A Jessica Anderson K 9 Mystery 1st
Edition D L Keur
https://ebookmeta.com/product/troubled-pursuit-a-jessica-
anderson-k-9-mystery-1st-edition-d-l-keur/
ebookmeta.com

Python Data Persistence
With SQL and NOSQL Databases
By
Malhar Lathkar

FIRST EDITION 2019
Copyright © BPB Publications, INDIA
ISBN: 978-93-88511-75-9
All Rights Reserved. No part of this publication can be stored in a
retrieval system or reproduced in any form or by any means without
the prior written permission of the publishers
LIMITS OF LIABILITY AND DISCLAIMER OF WARRANTY
The Author and Publisher of this book have tried their best to ensure
that the programmes, procedures and functions described in the
book are correct. However, the author and the publishers make no
warranty of any kind, expressed or implied, with regard to these
programmes or the documentation contained in the book. The
author and publisher shall not be liable in any event of any
damages, incidental or consequential, in connection with, or arising
out of the furnishing, performance or use of these programmes,
procedures and functions. Product name mentioned are used for
identification purposes only and may be trademarks of their
respective companies.
All trademarks referred to in the book are acknowledged as
properties of their respective owners.
Distributors:
BPB PUBLICATIONS
20, Ansari Road, Darya Ganj
New Delhi-110002
Ph: 23254990/23254991

BPB BOOK CENTRE
376 Old Lajpat Rai Market,
Delhi-110006
Ph: 23861747
MICRO MEDIA
Shop No. 5, Mahendra Chambers,
150 DN Rd. Next to Capital Cinema,
V.T. (C.S.T.) Station, MUMBAI-400 001
Ph: 22078296/22078297
DECCAN AGENCIES
4-3-329, Bank Street,
Hyderabad-500195
Ph: 24756967/24756400
Published by Manish Jain for BPB Publications, 20, Ansari Road,
Darya Ganj, New Delhi-110002 and Printed by Repro India Pvt Ltd,
Mumbai

Preface
Almost every other computer application, whether it is a web based
application, a standalone data logger, a mobile app or a desktop
application with or without GUI, stores and retrieves data from some
persistent storage device such as hard disk or a flash drive. Such
storage device may either be connected to computer or it may be
available on a network. Without this ability to recurrently access,
update and retrieve stored data, most computer applications would
have been reduced to programmable calculators!
Data storage format depends on the logical structure of data and on
the processing logic. Data may be stored in flat computer files, in
tables of relational databases or different store formats of NOSQL
databases. You will know more about these terms in subsequent
chapters of this book.
Back-end process of a computer application stores, modifies and
retrieves data in response to front-end user's requirements. Almost
every programming language offers tools to interact with
files/databases. This book aims to familiarize the reader with
Python's functions and modules that handle persistent data
processing.
Why Python?
Popularity of Python has increased by many fold recently because of
the emergence of powerful libraries for data analysis, visualization
and machine learning. These libraries use data stored in different
formats such as text files and relational databases. Hence to be a
proficient data scientist, it is important to have a sound
understanding of Python tools for data persistence.
Features of Python

Python is easy!: So why has Python been so popular? First and
foremost, Python is very easy to learn and use. "Simple is better
than Complex". This is one of the guiding principles of Python's
design philosophy. It has clean and simple syntax resembling to a
natural language. It saves a lot of development time.
Open source: Python is free and open source having very active
and supportive developer community. As a result plenty of
documentation resources, guides tutorials and forums are available
in public domain. Any newcomer can access, learn, collaborate and
seek advice from community.
Object oriented: Python is completely object oriented, although it
supports multiple programming paradigms including functional
programming style.
Extensible: Python can be easily integrated with other languages
such as C/C++, Java, .NET etc.
Corporate support: Python enjoys a great corporate support.
Google for example promotes Python in a big way as Python is
extensively used in many of its applications. Many other companies
use Python as their development platform.

How this Book is Arranged?
This book assumes reader having no prior knowledge of computer
programming. Hence, first two chapters give a quick-start tutorial of
Python as if this is reader’s first tryst with programming. Third
chapter 'Structured Python' discusses an important programming
element called functions and modules.
As mentioned earlier, Python is a completely object oriented
language. Python's implementation of OOP is discussed in fourth
chapter.
Fifth chapter is on File object API of Python. Most of the users know
there are hundreds of files in a computer device, but they don’t
understand the mechanism of storage and retrieval of data from
them. This chapter explains Python’s functionality to perform I/O
operation on computer files.
Next chapter takes a look at modules in Python’s standard library
that deal with different object serialization techniques such as
pickle and marshalling. It also explains representation of Python
objects in the form of CSV, XML document and JSON data.
Relational databases of various flavours are most popular software
tools for data storage and retrieval. Products such as Oracle, MySQL,
SQLite etc use SQL as underlying language. Chapter 7 intends to
introduce SQL operations. Since standard Python distribution
bundles sqlite3 module, we learn how Python interacts with SQLite.
However, any RDBMS product can be interfaced with Python by
using corresponding DB-API compliant module.
In order to be compatible with object oriented nature of Python
while using relational databases, Object relational mappers
(ORM) libraries have been developed. Chapter 9 discusses
SQLAlchemy, Python’s most popular ORM library.
Oracle and MySQL etc. notwithstanding, MS Excel is world’s most
popular tool to represent data. How do we interact with Excel

worksheet through Python? Chapter 10 introduces openpyxl and
pandas packages for the purpose.
While the database ecosystem is dominated by SQL oriented
products, NOSQL products are slowly making their mark. Last two
chapters of this book intend to introduce two NOSQL products that
take two different approaches. MongoDB is document store based
database. Cassandra on the other hand is column store database.
Python APIs for these two databases have been described along with
their native usage.
Installation of Python and other third party libraries is beyond the
scope of this book. However, relevant links having downloads and
documentation, are cited at appropriate places.
Example codes cited in the book are tested with Python's 3.7.2
version on Windows platform. Python being a cross-platform
language, can be run on any other operating system as well.
I express my sincere gratitude towards BPB Publications for
bringing out this work and giving me an opportunity to be a part of
galaxy of renowned BPB authors.
My parents, who passed away recently in quick succession, would
have been extremely proud to hold copy of this book. I humbly
dedicate this work in their cherished memory. My family and friends
have always backed me wholeheartedly in each of my endeavours.
To acknowledge some of them would be injustice to others.
So, let us 'get started!!!'

About the Author
Malhar Lathkar is an Independent software professional /
Programming technologies trainer/E-Learning Subject matter Expert.
He is Director, Institute of Programming Language Studies, Rama
Computers, Nanded Maharashtra.
He has academic and industry experience of 33 years. His expertise
is in Java, Python, C#, IoT, PHP, databases.

Code Bundle
All the code samples used in the book can be found at the following
github repository:
https://github.com/bpbpublications/Python-Data-Persistence

“If you can’t explain it simply,
you don’t understand it well enough.”
Albert Einstein

Table of Content
1. Getting Started
1.1 Installation
1.2 Interactive Mode
1.3 Scripting Mode
1.4 Identifiers
1.5 Statements
1.6 Indents
1.7 Comments
1.8 Data Types
1.9 Variables
1.10 Built-in Functions
1.11 Methods of Built-in Data Type Classes
2. Program Flow Control
2.1 Decision Control
2.2 Repetition
2.3 while Statement
2.4 for Keyword
2.5 Using Range
2.6 for loop with Dictionary
2.7 Repetition Control
2.8 Nested Loops
2.9 List Comprehension
3. Structured Python
3.1 Function
3.2 math Module
3.3 os module
3.4 sys Module
3.5 User Defined Functions
3.6 Function with Parameters

3.7 return Keyword
3.8 Required Arguments
3.9 Parameter with Default Value
3.10 Keyword Arguments
3.11 Function with Variable Arguments
3.12 User Defined Modules
3.13 Package
3.14 Virtual Environment
4. Python - OOP
4.1 Class Keyword
4.2 Constructor
4.3 __slots__
4.4 Getters/setters
4.5 property() Function
4.6 @property Decorator
4.7 Class Level Attributes and Methods
4.8 Inheritance
4.9 Overriding
4.10 Magic Methods
5. File IO
5.1 Opening File
5.2 Writing to File
5.3 Reading a File
5.4 Write/Read Binary File
5.5 Simultaneous Read/Write
5.6 File Handling using os Module
5.7 File/Directory Management Functions
5.8 Exceptions
6. Object Serialization
6.1 pickle Module
6.2 shelve Module
6.3 dbm Modules

6.4 csv module
6.5 json Module
6.6 xml Package
6.7 plistlib Module
7. RDBMS Concepts
7.1 Drawbacks of Flat File
7.2 Relational Database
7.3 RDBMS Products
7.4 SQLite Installation
7.5 SQLite Data Types
7.6 CREATE TABLE
7.7 Constraints
7.8 INSERT Statement
7.9 SELECT Statement
7.10 UPDATE Statement
7.11 DELETE Statement
7.12 ALTER TABLE statement
7.13 DROP TABLE Statement
7.14 Transaction Control
7.15 MySQL
7.16 SQLiteStudio
8. Python DB-API
8.1 sqlite3 Module
8.2 Connection Object
8.3 Cursor Object
8.4 Creating Table
8.5 Inserting Rows
8.6 Updating Data
8.7 Deleting Rows
8.8 ResultSet Object
8.9 User Defined Functions
8.10 Row Object
8.11 Backup and Restore Database

8.12 Using pymysql Module
8.13 pyodbc Module
9. Python - SQLAlchemy
9.1 What is ORM?
9.2 SQLAlchemy ORM
9.3 ORM - Table Object and Mapped Class
9.4 ORM - Session object
9.5 ORM - Add Data
9.6 ORM - Querying
9.7 ORM - Filter criteria
9.8 ORM - Update Data
9.9 ORM - Relationships
9.10 Querying related tables (ORM)
9.11 SQLAlchemy Core
9.12 Core - Inserting Records
9.13 Core - Updating Records
10. Python and Excel
10.1 Excel with openpyxml
10.2 Creating a workbook
10.3 Read Data from Worksheet
10.4 Read Cell Range to List
10.5 Merge and Center
10.6 Define Formula
10.7 Copy Formula
10.8 Charts
10.9 Insert Image
10.10 Excel with Pandas
10.11 Pandas DataFrame to Excel
10.12 Read worksheet to Pandas DataFrame
11. Python – PyMongo
11.1 What is NOSQL?
11.2 MongoDB

11.3 Installation of MongoDB
11.4 MongoDB - Create Database
11.5 MongoDB - Insert Document
11.6 MongoDB - Querying Collection
11.7 MongoDB – Update Document
11.8 MongoDB – Delete Document
11.9 PyMongo Module
11.10 PyMongo – Add Collection
11.11 PyMongo – Querying Collection
11.12 PyMongo – Update Document
11.13 PyMongo – Relationships
12. Python - Cassandra
12.1 Cassandra Architecture
12.2 Installation
12.3 CQL Shell
12.4 Create Keyspace
12.5 Inserting Rows
12.6 Querying Cassandra Table
12.7 Table with Compound Partition Key
12.8 Python Cassandra Driver
12.9 Parameterized Queries
12.10 User-defined Types
Appendix A: Alternate Python Implementations
Appendix B: Alternate Python Distributions
Appendix C: Built-in Functions
Appendix D: Built-in Modules
Appendix E: Magic Methods
Appendix F: SQLite Dot Commands
Appendix G: ANSI SQL Statements
Appendix H: PyMongo API Methods
Appendix I: Cassandra CQL Shell Commands

CHAPTER 1
Getting Started
Python is very easy to learn. Well, it is also very easy to start using it.
In fact I would encourage trying out one of the many online Python
interpreters, get yourself acquainted with the language before going
on to install it on your computer.
There are many online resources available to work with Python.
Python’s official website (https://www.python.org) itself provides
online shell powered by http://www.pythonanywhere.com.
Online Python shells work on the principle of Read, Evaluate, Print,
Loop (REPL). Such an online Python REPL is available at
https://repl.it/languages/python3. It can be used in interactive and in
scripting mode.
1.1 Installation
Python’s official website hosts official distribution of Python at
https://www.python.org/downloads/. Precompiled installers as well as
source code tarballs for various operating system platforms
(Windows, Linux, and Mac OS X) and hardware architectures (32 and
64-bit) are available for download. The bundle contains Python
interpreter and library of more than 200 modules and packages.
Precompiled installers are fairly straightforward to use and
recommended. Most distributions of Linux have Python included.
Installation from source code is little tricky and needs expertise to
use compiler tools.
Currently, there are two branches of Python software versions
(Python 2.x and Python 3.x) on Python website. At the time of
writing, latest versions in both branches are Python 2.7.15 and
Python 3.7.2 respectively. Python Software Foundation (PSF) is
scheduled to discontinue supporting Python 2.x branch after 2019.

Hence it is advised to install latest available version of Python 3.x
branch.
It is also desirable to add Python’s installation directory to your
system’s PATH environment variable. This will allow you to invoke
Python from anywhere in the filesystem.
It is now time to start using Python. Open Windows Command
Prompt terminal (or Linux terminal), type ‘python’ in front of the
prompt as shown below: (Figure 1.1)
Figure 1.1 Python Prompt
If a Python prompt symbol >>> (made up of three ‘greater than’
characters) appears, it means Python has been successfully installed
on your computer. Congratulations!!!
Most Python distributions are bundled with Python’s Integrated
Development and Learning Environment (IDLE). It also
presents an interactive shell as shown in Figure 1.1. Additionally, it
also has a Python aware text editor with syntax highlighting and
smart indent features. It also has an integrated debugger.
1.2 Interactive Mode

The >>> prompt means that Python is ready in REPL mode. You can
now work with Python interactively. The prompt reads user input,
evaluates if it is a valid Python instruction, prints result if it is valid or
shows error if invalid, and waits for input again. In this mode, Python
interpreter acts as a simple calculator. Just type any expression in
front of the prompt and press Enter. Expression is evaluated with
usual meanings of arithmetic operators used and result is displayed
on the next line.
Example 1.1
>>> 5-6/2*3
-4.0
>>> (5-6/2)*3
6.0
>>>
Python operators follow BODMAS order of precedence. There are
few more arithmetic operators defined in Python. You will learn about
them later in this chapter.
You can assign a certain value to a variable by using ‘=’ symbol.
(What is variable? Don’t worry. I am explaining it also later in this
chapter!) However, this assignment is not reflected in next line before
the prompt. The assigned variable can be used in further operations.
To display the value of variable, just type its name and press Enter.
Example 1.2
>>> length=20
>>> breadth=30
>>> area=length*breadth
>>> area
600
Type ‘quit()’ before the prompt to return to command prompt.
1.3 Scripting Mode

Interactive mode as described above executes one instruction at a
time. However, it may not be useful when you have a series of
statements to be repetitively executed. This is where Python’s
scripting mode is used. Script is a series of statements saved as a file
with ‘.py’ extension. All statements in the script are evaluated and
executed one by one, in the same sequence in which they are
written.
The script is assembled by using any text editor utility such as
Notepad (or similar software on other operating systems). Start
Notepad on Windows computer, enter following lines and save as
‘area.py’
Example 1.3
#area.py
length=20
breadth=30
area=length*breadth
print ('area=',area)
Open the command prompt. Ensure that current directory is same in
which ‘area.py’ script (you can call it as a program) is saved. To run
the script, enter following command (Figure 1.2):
Figure 1.2 Running Python Script
1.4 Identifiers
Python identifiers are the various programming elements such as
keywords, variables, functions/methods, modules, packages, and
classes by suitable name. Keywords are the reserved words with
predefined meaning in Python interpreter. Obviously keywords can’t
be used as name of other elements as functions etc. Python language

currently has 33 keywords. Enter the following statement in
Python’s interactive console. The list of keywords gets displayed!
Example 1.4
>>> import keyword
>>> print (keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break',
'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']
Apart from keywords, you can choose any name (preferably cryptic
but indicative of its purpose) to identify other elements in your
program. However, only alphabets (upper or lowercase), digits and
underscore symbol (‘_’) may be used. As a convention, name of class
starts with an uppercase alphabet, whereas name of function/method
starts with lowercase alphabet. Name of variable normally starts with
alphabet, but in special cases an underscore symbol (sometimes
double underscore __) is seen to be first character of variable’s
name.
Some examples of valid and invalid identifiers:
Valid identifiers Invalid identifiers
name, FileName, yr1sem1, EMP,
roll_no, sum_of_dig, _price,
__salary, __function__
123, sub-1, yr1.sem1,
roll no, 'price',
*marks*
1.5 Statements
Python interpreter treats any text (either in interactive mode or in a
script) that ends with Enter key (translated as ‘\n’ and called
newline character) as a statement. If it is valid as per syntax rules

of Python, it will be executed otherwise relevant error message is
displayed.
Example 1.5
>>> "Hello World"
'Hello World'
>>> Hello world
  File "<stdin>", line 1
    Hello world
              ^
SyntaxError: invalid syntax
In the first case, sequence of characters enclosed within quotes is a
valid Python string object. However, second statement is invalid
because it doesn’t qualify as representation of any Python object or
identifier or statement, hence the message as SyntaxError is
displayed.
Normally one physical line corresponds to one statement. Each
statement starts at first character position in the line, although it may
leave certain leading whitespace in some cases (See Indents – next
topic). Occasionally you may want to show a long statement
spanning multiple lines. The ‘\’ character works as continuation
symbol in such case.
Example 1.6
>>> zen="Beautiful is better than ugly. \
… Explicit is better than implicit. \
… Simple is better than complex."
>>> zen
'Beautiful is better than ugly. Explicit is better than
implicit. Simple is better than complex.'
This is applicable for script also. In order to write expression you
would like to use two separate lines for numerator and denominator
instead of a single line as shown below:

Example 1.7
>>> a=10
>>> b=5
>>> ratio=(pow(a,2)+(pow(b,2)))/ \
…        (pow(a,2)-(pow(b,2)))
>>>
Here pow() is a built-in function that computes square of a number.
You will learn more built-in functions later in this book.
The use of back-slash symbol (\) is not necessary if items in a list,
tuple or dictionary object spill over multiple lines. (Plenty of new
terms. isn’t it? Never mind. Have patience!)
Example 1.8
>>> marks=[34,65,92,55,71,
… 21,82,39,60,41]
>>> marks
[34, 65, 92, 55, 71, 21, 82, 39, 60, 41]
1.6 Indents
Use of indents is one of the most unique features of Python syntax.
As mentioned above, each statement starts at first character position
of next available line on online shell. In case of script, blank lines are
ignored. In many situations, statements need to be grouped together
to form a block of certain significance. Such circumstances are the
definitions of function or class, a repetitive block of statements in
loop, and so on. Languages such as C/C++ or Java put series of
statements in a pair of opening and closing curly brackets. Python
uses indentation technique to mark the blocks. This makes the code
visually cleaner than clumsy curly brackets.
Whenever you need to start a block, use : symbol as last character in
current line, after that press Enter, and then press Tab key once to
leave a fixed whitespace before writing first statement in new block.
Subsequent statements in the block should follow the same indent

space. If there is a block within block you may need to press Tab key
for each level of block. Look at following examples:
Indented Block in Function
Example 1.9
>>> def calculate_tax(sal):
…     tax=sal*10/100
…     if tax>5000:
…             tax=5000
…     netsal=sal-tax
…     return netsal

>>>
Indents in Class
Example 1.10
>>> class Example:
…     def __init__(self, x):
…             self.x=x
…             if x>100:
…                     self.x=100

>>>
Indents in Loop
Example 1.11
>>> for i in range(4):
…     for j in range(4):
…             print (i,j)


1.7 Comments
Any text that follows ‘#’ symbol is ignored by Python interpreter. This
feature can be effectively used to insert explanatory comments in the
program code. They prove to be very useful while debugging and
modifying the code. If ‘#’ symbol appears in a line after a valid
Python statement, rest of the line is treated as comment.
Example 1.12
>>> #this line is a comment
… print ("Hello world!")
Hello world!
>>> print ("hello world again!") #this also a comment
hello world again!
Multiple lines of text which are enclosed within triple quote marks are
similar to comments. Such text is called ‘docstring’ and appears in
definition of function, module and class. You will come across
docstrings when we discuss these features in subsequent chapters.
1.8 Data Types
Data and information, these two words are so common nowadays –
they are on lips of everybody around us. But many seem to be
confused about exact meaning of these words. So much so, people
use them almost as if they are synonymous. But they are not.
Computer is a data processing device. Hence, data is a raw and
factual representation of objects, which when processed by the
computer program, generates meaningful information.
Various pieces of data items are classified in data types. Python’s
data model recognizes the following data types (Figure 1.3):

Figure 1.3 Data Types
Number Types
Any data object having numerical value (as in mathematical context)
is a Number. Python identifies integer, real, complex, and Boolean as
Number types by the built-in type names int, float, complex, and
bool respectively. Any number (positive or negative) without a
fractional component is an integer, and with fractional component is a
float. Boolean object represents truth values True and False,
corresponding to 1 and 0 respectively.
A number object is created with a literal representation using digit
characters. Python has a built-in type() function to identify the type
of any object.
Example 1.13
>>> #this is an integer
… 100
100
>>> type(100)
<class 'int'>
>>> #this is a float
… 5.65
5.65
>>> type(5.65)

<class 'float'>
>>> #this is bool object
… True
True
>>> type(True)
<class 'bool'>
Any number with fractional component (sometimes called mantissa)
is identified as float object. The fractional component is the digits
after decimal point symbol. To shorten the representation of a float
literal with more digits after decimal point, symbols ‘e’ or ‘E’ are
used.
Example 1.14
>>> #this is float with scientific notation
… 1.5e-3
0.0015
>>> type(1.5e-3)
<class 'float'>
Complex number consists of two parts – real and imaginary –
separated by ‘+’ or ‘-’ sign. The imaginary part is suffixed by ‘j’ which
is defined as imaginary number which is square root of (. A
complex number is represented as x+yj.
Example 1.15
>>> 2+3j
(2+3j)
>>> type(2+3j)
<class 'complex'>
Arithmetic Operators
All number types can undergo arithmetic operations. Addition (‘+’),
subtraction (‘-’), multiplication (‘*’) and division (‘/’) operators work

as per their traditional meaning. In addition, few more arithmetic
operators are defined in Python, which are:
Modulus or remainder operator (‘%’), it returns remainder of
division of first operand by second. For example, 10%3 returns 1.
Exponent operator (‘**’), it computes first operand raised to
second. For example, 10**2 returns 100.
Floor division operator (‘//’) returns an integer not greater than
division of first operand by second. For example, 9//2 returns 4.
Example 1.16
>>> #addition operator
… 10+3
13
>>> #subtraction operator
… 10-3
7
>>> #multiplication operator
… 10*3
30
>>> #division operator
… 10/3
3.3333333333333335
>>> #modulus operator
… 10%3
1
>>> #exponent operator
… 10**3
1000
>>> #floor division operator
… 10//3
3
Sequence Types

An ordered collection of items is called sequence. Items in the
sequence have a positional index starting with 0. There are three
sequence types defined in Python.
1. String: Ordered sequence of any characters enclosed in single,
double or triple quotation marks forms a string object. Each
character in string object is accessible by index.
Example 1.17
>>> #string using single quotes
… 'Hello. How are you?'
'Hello. How are you?'
>>> #string using double quotes
… "Hello. How are you?"
'Hello. How are you?'
>>> #string using triple quotes
… '''Hello. How are you?'''
'Hello. How are you?'
2. List: An ordered collection of data items, not necessarily of same
type, separated by comma and enclosed in square brackets []
constitutes a List object. List is a sequence type because its items
have positional index starting from 0.
3. Tuple: A tuple is also an ordered collection of items, which may
be of dissimilar types, each separated by comma and enclosed in
parentheses (). Again each item in tuple has a unique index.
Example 1.18
>>> ['pen', 15, 25.50, True]
['pen', 15, 25.5, True]
>>> type(['pen', 15, 25.50, True])
<class 'list'>
>>> ('Python', 3.72, 'Windows',10, 2.5E04)
('Python', 3.72, 'Windows', 10, 25000.0)
>>> type(('Python', 3.72, 'Windows',10, 2.5E04))

<class 'tuple'>
Apart from type of brackets – [] or () – List and Tuple appears similar.
However, there is a crucial difference between them – that of
mutability. This will come up for explanation just a few topics
afterwards.
Mappings Type
A mapping object ‘maps’ value of one object with that of other.
Python’s dictionary object is example of mapping. A language
dictionary is a collection of pairs of word and corresponding meaning.
Two parts of pair are key (word) and value (meaning). Similarly,
Python dictionary is also a collection of key:value pairs, separated by
comma and is put inside curly brackets {}. Association of key with its
value is represented by putting ‘:’ between the two.
Each key in a dictionary object must be unique. Key should be a
number, string or tuple. (All are immutable objects). Any type of
object can be used as value in the pair. Same object can appear as
value of multiple keys.
Example 1.19
>>> {1:'one', 2:'two', 3:'three'}
{1: 'one', 2: 'two', 3: 'three'}
>>> type({1:'one', 2:'two', 3:'three'})
<class 'dict'>
>>> {'Mumbai':'Maharashtra', 'Hyderabad':'Telangana',
'Patna':'Bihar'}
{'Mumbai': 'Maharashtra', 'Hyderabad': 'Telangana', 'Patna':
'Bihar'}
>>> type({'Mumbai':'Maharashtra', 'Hyderabad':'Telangana',
'Patna':'Bihar'})
<class 'dict'>
>>> {'Windows':['Windows XP', 'Windows 10'], 'Languages':
['Python', 'Java']}

{'Windows': ['Windows XP', 'Windows 10'], 'Languages':
['Python', 'Java']}
>>> type({'Windows':['Windo ws XP', 'Windows 10'], 'Languages':
['Python', 'Java']})
<class 'dict'>
1.9 Variables
When you use an object of any of the above types - of any type for
that matter – (as a matter of fact everything in Python is an object!)
it is stored in computer’s memory. Any random location is allotted to
it. Its location can be obtained by built-in id() function.
Example 1.20
>>> id(10)
1812229424
>>> id('Hello')
2097577807520
>>> id([10,20,30])
2097577803464
However, in order to refer to same object repetitively with its id() is
difficult. If a suitable name (by following rules of forming identifier) is
given to an object, it becomes convenient while referring to it as and
when needed. To bind the object with a name, ‘=’ symbol is used. It
is called assignment operator.
Here, an int object 5 is assigned a name ‘radius’. The id() of both is
same.
Example 1.21
>>> id(5)
1812229264
>>> radius=5
>>> id(radius)
1812229264

The name ‘radius’ can now be used in different expressions instead of
its id() value.
Example 1.22
>>> diameter=radius*2
>>> diameter
10
>>> area=3.142*radius*radius
>>> area
78.55
>>> circumference=2*3.142*radius
>>> circumference
31.419999999999998
Dynamic Typing
Python is a dynamically typed language. This feature distinguishes it
from C Family languages like C, C++, Java, and so on. These
languages are statically typed. What is the difference?
The difference is the manner in which a variable behaves. In statically
typed languages, variable is in fact a named location in the memory.
Moreover it is configured to store data of a certain type before
assigning it any value. Data of any other type is not acceptable to the
respective language compiler. Type of Variable is announced first, and
data of only that type is acceptable. This makes these languages
statically typed.
Look at following statements in a Java program. A string variable is
declared and assigned a string value. However, if we try storing value
of any other type then Java compiler reports error.
Example 1.23
String somevar;
somevar="some string value";
somevar=999;

Java Compiler error
Error: incompatible types: int cannot be converted to
java.lang.String
On the other hand a variable in Python is not bound permanently to a
specific data type. In fact, it is only a label to an object in memory.
Hence, Java-like prior declaration of variable’s data type is not
possible, nor is it required. In Python, the data assigned to variable
decides its data type and not the other way round.
Let us define a variable and check its id() as well as type().
Example 1.24
>>> somevar='some string value'
>>> id(somevar)
2166930029568
>>> type(somevar)
<class 'str'>
‘somevar’ is a string variable here. But it’s just a label. So you can put
same label on some other object.
Let us assign an integer to ‘somevar’ and check id() as well as
type() again.
Example 1.25
>>> somevar=999
>>> id(somevar)
2166929456976
>>> type(somevar)
<class 'int'>
Two things to note here:
1. You didn’t need prior declaration of variable and its type.
2. Variable’s type changed according to data assigned to it. That’s
why Python is called dynamically typed language.

Sequence Operators
As described earlier, string, list, and tuple objects are sequence types.
Obviously, arithmetic operators won’t work with them. However, the
symbols ‘+’ and ‘*’ can. In this context, they are defied as
concatenation and repetition operator respectively.
The concatenation operator (‘+’) appends contents of second
operand to first. Of course both operands must be of same type.
Example 1.26
>>> #concatenation of strings

>>> str1='Hello World.'
>>> str2='Hello Python.'
>>> str1+str2
'Hello World.Hello Python.'
>>> #concatenation of lists

>>> list1=[1,2,3,4]
>>> list2=['one','two','three','four']
>>> list1+list2
[1, 2, 3, 4, 'one', 'two', 'three', 'four']
>>> #concatenation of tuples

>>> tup1=(1,2,3,4)
>>> tup2=('one','two','three','four')
>>> tup1+tup2
(1, 2, 3, 4, 'one', 'two', 'three', 'four')
Repetition operator (‘*’) concatenates multiple copies of a sequence.
Sequence to be replicated is first operand, second operand is an
integer that specifies the number of copies.
Example 1.27
>>> #repetition operator with string


>>> str1='Hello.'
>>> str1*3
'Hello.Hello.Hello.'
>>> #repetition operator with list

>>> list1=[1,2,3,4]
>>> list1*3
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
>>> #repetition operator with tuple
… tup1=(1,2,3,4)
>>> tup1*3
(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
Index operator (‘[]’) extracts an item at given position in a sequence.
As you know, sequence is an ordered collection of items and each
item has a positional index starting from 0. The expression seq[i]
fetches i
th
item from given sequence.
Example 1.28
>>> #indexing of string

>>> str1='Monty Python and the Holy Grail'
>>> str1[21]
'H'
>>> #indexing of list

>>> list1=[1,2,3,4,5,6,7,8,9,10]
>>> list1[6]
7
>>> list1=['Python', 'Java', 'C++', 'Ruby', 'Kotlin']
>>> list1[3]
'Ruby'
>>> #indexing of tuple

>>> tup1=(-50, 3.142, 2+3j, True, 50)
>>> tup1[2]
(2+3j)
Slice operator (‘[:]’) fetches a part of sequence object. The
expression has two integers on either side of ‘:’ symbol inside square
brackets. First integer is index of first item in the sequence and
second integer is index of next item upto which slice is desired. For
example seq[I,j] returns items from i
th
position to (j-1)
th
position.
First integer is 0 by default. Second integer defaults to last index of
sequence. Remember index starts from 0.
Example 1.29
>>> #slicing of string
… str1='Monty Python and the Holy Grail'
>>> str1[13:16]
'and'
>>> list1=['Python', 'Java', 'C++', 'Ruby', 'Kotlin']
>>> list1[1:3]
['Java', 'C++']
>>> tup1=(-50, 3.142, 2+3j, True, 50)
>>> tup1[2:4]
((2+3j), True)
There are two ‘Membership’ operators in Python. The in operator
checks if an operand exists as one of the items in given sequence
and returns True if so, otherwise it returns False. The not in operator
does the opposite. It returns False if operand doesn’t belong to given
sequence, otherwise it returns True.
Example 1.30
>>> #membership operator with string

>>> str1='Monty Python and the Holy Grail'
>>> 'Holy' in str1

True
>>> 'Grill' not in str1
True
>>> #membership operator with list

>>> list1=['Python', 'Java', 'C++', 'Ruby', 'Kotlin']
>>> 'C#' in list1
False
>>> 'Ruby' not in list1
False
>>> #membership operator with tuple

>>> tup1=(-50, 3.142, 2+3j, True, 50)
>>> 3.142 in tup1
True
>>> 3.142 not in tup1
False
Mutability
As already mentioned, everything in Python is object. A Python object
is either mutable or immutable. What is the difference?
To put it simply, the object whose contents can be changed in place
is mutable. As a result, changes are not possible in contents of
immutable object. Of the built-in objects numbers, string, and tuple
objects are immutable. On the other hand, list and dictionary objects
are mutable.
Let us try to understand concept of mutability with the help of id()
function that we have earlier used. First define a variable and assign
an integer to it.
Example 1.31
>>> x=100
>>> id(x)

1780447344
Remember that a variable is just a label of object in memory. The
object is stored in a location whose id() is given as shown in
example 1.31 above. (The location is allotted randomly. So, when you
try it on your machine, it may be different.) To understand what goes
on inside the memory, have a look at diagram (Figure 1.4) below.
The Figure 1.4 (a) shows a label assigned to an integer object 100.
Next, assign x to another variable y.
Figure 1.4 Storage of object inside the memory
Example 1.32
>>> y=x
>>> id(y)
1780447344
>>> y
100
Figure 1.4 (b) shows that id() of y is same as id() of x. It means
both x and y are labels of same object in memory, in this case the
number 100.
Now, increment x by 1 (x=x+1). A new integer object 101 is located
at different location and it is bound to name x. Now x label is
detached from 100 but y still remains on 100. (refer Figure 1.4 (c))
Example 1.33
>>> x=x+1

>>> x
101
>>> id(x)
1780447376
>>> id(y)
1780447344
id(x) has changed but id(y) remains as earlier.
It is clear that the location containing object 100 doesn’t get replaced
by 101, instead it is stored in new location. Hence, we say that a
Number object is immutable.
String and tuple objects are also immutable. If we try to change the
sequence of characters in a string or any of items in a tuple,
TypeError message appears effectively meaning that items in a
string/tuple sequence can’t be altered because they are immutable.
Example 1.34
>>> str1='Hello World'
>>> str1[6]
'W'
>>> str1[6]='z'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> tup1=(-50, 3.142, 2+3j, True, 50)
>>> tup1[1]
3.142
>>> tup1[1]=2.303
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
TypeError: ‘tuple’ object does not support item assignment
This restriction doesn’t apply to list or dictionary objects. You can
add, remove, or modify a list or dictionary. Hence, they are mutable.

Other documents randomly have
different content

jos sellaista jäisi, puhkeisi lähemmin tarkastaessa toivon kukkasiin.
Ruumis hajaantuu eikä voi kärsiä enää, ilojen ja murheiden lähteestä
eronnut ajatus sammuu, haihtuu ja katoaa rajattomaan pimeyteen;
ja niin seuraa tuo suuri, niin monesti rukoiltu rauha, mittaamaton,
uneton lepo, josta ei herätä.
Mutta tämä ratkaisu hellii vain laiskuutta. Jos jatkamme niiden
ajatusta, jotka puhuvat jälkielämästä ilman tietoisuutta,
huomaamme, että he tarkoittavat nykyistä tietoisuuttaan, sillä
ihminen ei tajua muunlaista, ja olemme juuri nähneet, että sellaisen
tietoisuuden äärettömyydessä kestäminen on melkein mahdotonta.
Jolleivät he sitten tahdo evätä kaikkea, maailmankaikkeudenkin
tietoisuutta, johon heidän omansa uppoaa. Mutta siten ratkaistaisiin
perin äkkiä ja sokeasti, kuin miekan iskulla yöllä, korkein ja
ihmeellisin kysymys, mikä ihmisen aivoista saattaa kohota.
III.
Ilmeistä on, ettemme kaikilta tahoilta rajoitetun ajatuskykymme
pohjalta voi koskaan saavuttaa pienintäkään käsitystä
äärettömyyden tietoisuudesta. Vieläpä nuo molemmat sanontatavat:
tietoisuus ja äärettömyys, ovat oleellisesti ristiriidassa. Kun
sanomme: tietoisuus, tarkoitamme sitä kaikkein tarkimmin
määriteltyä, mitä voimme äärellisyyden rajoissa käsittää. Tietoisuus
on oikeastaan se äärellinen, mikä keskittyy itseensä tunteakseen ja
tunnustellakseen ahtaimpia rajojaan, nauttiakseen niistä niin ahtaasti
kuin mahdollista.
Toiselta puolen meidän on mahdotonta erottaa älyn käsitettä
tietoisuuden käsitteestä. Äly, joka ei näytä sopivalta muuttumaan

tietoisuudeksi, käy meille salaperäiseksi ilmiöksi, jolle annamme vielä
salaperäisempiä nimiä, päästäksemme tunnustamasta, ettemme siitä
enää ymmärrä mitään. Mutta pienellä maapallollamme, joka on vain
piste avaruudessa, huomaamme, että kaikilla elämän asteilla —
muistelkaamme esim. hyönteismaailman merkillisiä yhtymiä ja
elimistöjä — käytetään joka päivä niin suuri määrä älyä, ettei
inhimillinen älymme voi uneksiakaan kykenevänsä sitä arvioimaan.
Kaikki, mikä on olemassa, ja ihminen ensimäisenä, ammentaa
lakkaamatta suoraan tuosta ehtymättömästä säiliöstä.
Johdumme siis vastustamattomasti kysymään itseltämme, eikö tuo
yleisäly ole äärettömän tietoisuuden säteilyä, tai eikö siitä ennemmin
tai myöhemmin kehity sellainen. Ja niin heitellään meitä kahden
supistamattoman mahdottomuuden välillä.
Luultavinta on, että tässäkin arvostelemme kaikkea ihmisyytemme
matalain tasojen kannalta. Vähäpätöisen elämämme huipulta
huomaamme vain älyn ja tietoisuuden, ajatuksen äärimmäiset
päätepisteet, ja siitä päätämme, että kaikenlaisen elämän huipulla ei
saata olla muuta kuin älyä ja tietoisuutta, vaikka niillä ehkä,
henkisten ja muiden mahdollisuuksien asteikossa, voi olla vain ala-
arvoinen paikka.
IV.
Aivan tiedoton jälkielämä olisi siis mahdollinen vain siinä
tapauksessa, että maailmankaikkeuden tietoisuus kiellettäisiin. Heti
kun sellainen, missä muodossa hyvänsä, myönnetään olevaksi, tulee
meidän olla osallisia siinä, ja kysymys sekaantuu jossakin määrin
kysymykseen enemmän tai vähemmän muuntuneesta tietoisuudesta.
Tällä hetkellä ei ole mitään toivoa sitä ratkaista, mutta saammehan

haparoida sen pimennoissa, joiden synkkyys ei kaikissa kohdissa
saata olla yhtä syvä.
Tässä alkaa aukea ulappa. Tässä alkaa ihmeellinen seikkailu,
ainoa, joka kohoaa yhtä korkealle kuin sen korkein halu.
Tottukaamme pitämään kuolemaa eräänä elämän muotona, jota
emme vielä käsitä, oppikaamme katselemaan sitä samoin silmin kuin
syntymistä, ja autuas odotus, joka tervehtii jälkimäistä, seuraa pian
ajatustamme istuutuakseen sen seurassa haudan portaille.
Otaksukaapa, että lapsella äidin kohdussa olisi jonkinlainen
tietoisuus, että esimerkiksi kaksoiset kykenisivät siellä oudolla tavalla
vaihtamaan vaikutelmiaan ja ilmaisemaan toisilleen pelkonsa ja
toiveensa. Koska he eivät milloinkaan ole tunteneet muuta kuin
äidinkohdun lämmintä pimeyttä, eivät he tuntisi oloaan vaivaloiseksi
ja onnettomaksi. Heillä ei kai olisi muuta ajatusta kuin pitkittää niin
kauan kuin mahdollista tätä elämää, jossa on huoletonta runsautta
ja yllätyksetöntä unta. Mutta jos hekin, niinkuin me tiedämme
kuolevamme, tietäisivät syntyvänsä — että heidän tulee äkkiä jättää
tuo suloisen pimeyden suoja, hyljätä ainiaaksi tuo kahlittu, mutta
rauhallinen olotila syöksyäkseen aivan toisenlaiseen maailmaan,
käsittämättömään ja rajattomaan — kuinka huolestuneita ja
kauhistuneita he olisivatkaan.
Ei kuitenkaan ole mitään syytä, jonka vuoksi meidän huolemme ja
kauhumme olisivat oikeutetumpia tai vähemmän naurettavia. Se
tuntematon, minkä alaisia olemme, ei muuta vähääkään luonnetta,
henkeä, tarkoituksia, hyväntahtoisuutta tai kylmäkiskoisuutta
syntymästämme kuolemaamme asti. Me pysymme aina samassa
äärettömyydessä, samassa maailmankaikkeudessa.

On aina järkevää ja oikeutettua sanoa itselleen, ettei hauta ole sen
pelottavampi kuin kehtokaan. Olisipa myös oikeutettua ja järkevää
suostua kehtoon vain haudan takia. Jos ennen syntymäämme
saisimme valita tyhjyyden suuren levon ja elämän välillä, joka ei
päättyisi kuoleman suurenmoiseen hetkeen, kukapa meistä,
tietäessään sen, mitä hänen pitäisi tietää, valitsisi sellaisen huolia
tuottavan ja tuntemattoman olemassaolon, joka ei päättyisi loppunsa
rauhoittavaan salaperäisyyteen? Kuka meistä haluaisi laskeutua
maailmaan, joka opettaisi vain vähän, jollei tietäisi, että on
välttämätöntä siihen joutua kyetäkseen siitä pääsemään ja
tietämään sitä enemmän?
Parasta elämässä on, että se valmistaa meitä tätä hetkeä varten,
että se on ainoa tie, joka johtaa meidät ihanaan poispääsyyn ja
tuohon verrattomaan salaisuuteen, jossa onnettomuudet ja
kärsimykset eivät enää ole mahdollisia, koska olemme menettäneet
elimen, joka meille niitä tuotti; missä pahin, mitä meille saattaa
tapahtua, on unelmaton uni, yksi maan suurimpia siunauksia; missä
lopuksi on melkein käsittämätöntä, ettei joku ajatus edelleen eläisi
yhtyäkseen maailmankaikkeuden olemukseen, se on:
äärettömyyteen, joka, jollei se ole välinpitämättömyyden ulappa,
saattaa olla vain riemujen valtameri.
V.
Ennenkuin ryhdymme mittaamaan tämän valtameren syvyyksiä,
huomauttakaamme niille, jotka pyrkivät säilyttämään minuutensa,
että he vaativat osakseen pelkäämiänsä kärsimyksiä. Minuus
merkitsee rajoitusta. Se saattaa olla olemassa vain siinä määrin, kuin
se on eristynyt ympäristöstään. Mitä voimakkaampi minuus on, sitä

ahtaammat ovat sen rajat, sitä selvempi sen ero, joka käy myös sitä
tuskallisemmaksi, sillä henki, jos se pysyy sellaisena, miksi sen
tunnemme — emmekä kykene kuvittelemaan sitä toisenlaiseksi, —
saa tuskin nähdä rajansa, kun se haluaa pyrkiä niiden yli. Ja mitä
eristetymmäksi se itsensä tuntee, sitä suuremmaksi kasvaa sen halu
liittyä siihen, mitä sen ulkopuolella on.
Sen olemassaolon ja pyrkimysten välillä tulee siis olemaan ikuinen
taistelu. Eikä sen todellakaan olisi kannattanut syntyä ja kuolla
päätyäkseen vain noin toivottomiin taisteluihin. Eikö tämäkin yhä
todista sitä, että minuutemme, sellaisena kuin sen käsitämme, ei
saata kestää äärettömyydessä, jonne sen täytyy mennä, koskei se
voi mennä muualle? Meidän on siis tärkeätä vapautua kuvitteluista,
jotka johtuvat vain ruumiistamme, niinkuin höyryt, jotka peittävät
meiltä päivän, nousevat vain alavilta paikoilta. Pascal on sen kerta
kaikkiaan sanonut: "Se vähäinen oleminen, mikä meillä on, kaihtaa
meiltä äärettömyyden."
VI.
Toiselta puolen — sillä kaikki täytyy tuoda julki, liikuttaa noita
vihamielisiä pimentoja, joiden luulemme olevan totuutta lähinnä ja
meidän täytyy olla puolueettomia — toiselta puolen saatamme niille,
jotka tahtovat säilyttää minuutensa, myöntää sen, että heille riittäisi
pieninkin seikka, joka eläisi heidän jälkeensä, jotta he voisivat alkaa
uuden elämän äärettömyyden helmassa, mistä heidän ruumiinsa ei
enää heitä erota.
Jos näyttää mahdottomalta, että jokin — liike, värähdys, säteily —
lakkaisi tai häviäisi, miksi siis ajatus katoaisi? Eloon jää kai
epäilemättä enemmän kuin yksi ajatus, joka on kyllin voimakas

viekoitellakseen luokseen uuden minuuden, saadakseen ravintonsa
ja kasvaakseen kaikesta, mitä se löytää tuossa uudessa,
pohjattomassa ympäristössä, niinkuin toinen minä, tässä
maailmassa, hankki ravintonsa ja kasvoi kaikesta, mitä siellä kohtasi.
Koska olemme osanneet hankkia nykyisen tietoisuutemme, miksi
meidän olisi mahdotonta hankkia toinenkin? Sillä tuo minä, joka
meistä on niin rakas, ja jonka luulemme omistavamme, ei ole
valmistunut yhdessä päivässä. Se ei ollut samanlainen syntymämme
hetkellä kuin se nyt on. Siihen on liittynyt enemmän sattumaa kuin
tahtoa ja paljon enemmän vierasta ainesta kuin siinä oli
synnynnäistä. Se on vain pitkä sarja hankittua ja muuttunutta, josta
emme pidä lukua ennenkuin muistimme herättyä, ja sen sisin
olemus, jonka laatua emme tunne, on ehkä vielä aineettomampi ja
vähemmän kiinteä kuin ajatus.
Jos uusi ympäristö, johon astumme, jätettyämme äitimme kohdun,
muuttaa meidät siihen määrin, ettei niin sanoaksemme ole mitään
yhteyttä alkiolla, jona olimme, ja ihmisellä, joksi tulimme, eikö ole
luultavaa, että vielä uudempi, vielä oudompi, vielä laajempi ja
rikkaampi ympäristö, johon taas joudumme elämästä erottuamme,
muovailee meitä yhä enemmän? Siinä, mitä meille täällä tapahtuu,
voimme nähdä kuvan siitä mikä meitä muualla odottaa, ja saamme
hyvin otaksua, että henkinen olemuksemme, ruumiistaan
vapautuneena, jollei se sekaannu äärettömyyteen, kehittyy siellä
vähitellen, valitsee sieltä oloperusteensa eikä paikan ja ajan
rajoituksesta vapaana koskaan lakkaa kasvamasta.
Hyvin mahdollista on, että nykyiset korkeimmat pyyteemme
muuttuvat tulevan kasvumme laiksi. On hyvin mahdollista, että
parhaat ajatuksemme ottavat meidät vastaan toisella rannalla ja että
älymme laadusta riippuu sen äärettömyyden laatu, joka kiteytyy sen

ympärille. Kaikki otaksumat ja kysymykset ovat luvallisia, jos ne vain
suuntautuvat onneen; sillä onnettomuus ei voi enää meille vastata.
Sillä ei enää ole sijaa siinä inhimillisessä kuvittelussa, joka määrättyä
menettelyä seuraten tutkii tulevaisuutta. Ja olkoon se voima mikä
tahansa, joka elää jälkeemme ja vallitsee elämäämme toisessa
maailmassa, ei tämä elämä, pahimmankaan arvelun mukaan, saata
olla vähemmän suuri tai onnellinen kuin tämänpäiväinen
olemassaolo. Sillä ei tule olemaan edessään muuta uraa kuin
äärettömyys, eikä äärettömyys ole mitään, jollei se ole autuutta.
Jokatapauksessa tuntuu sangen varmalta, että täällä vietämme
olemassaolomme ainoan ahtaan, niukan, pimeän ja tuskallisen
hetken.
VII.
Olemme sanoneet, että hengelle ominainen tuska on olla tietämättä
ja ymmärtämättä, mihin taas sisältyy voimattomuuden tuska: sillä
se, joka tuntee äärimmäiset syyt, ja jota aine ei enää lamaannuta,
toimii sopusoinnussa niiden kanssa. Ja ken ymmärtää, hyväksyy
lopuksi, sillä muutoin maailmankaikkeus olisi erehdys, eikä se ole
mahdollista, koska ääretön erehdys olisi käsittämätön. En usko, että
puhdas ajatus voisi tuntea muuta tuskaa. Ainoa, joka tuntuisi
mahdolliselta, ennenkuin olemme asiaa harkinneet, ja joka kaikissa
tapauksissa olisi vain ohimenevä, syntyisi katsellessamme tuskia ja
kurjuutta, jotka jäivät jälkeemme maailmaan. Mutta tuokin tuska olisi
pohjaltaan vain muuan laji ja mitätön hetki voimattomuuden tai
ymmärtämättömyyden tuskaa. Mitä taas viimemainittuun tulee, niin
vaikka se onkin ei ainoastaan älymme piirin ulkopuolella, vaan
myöskin mielikuvituksemme saavuttamattoman matkan päässä, voi
siitä sanoa, että se olisi sietämätön, jos se olisi toivoton;

maailmankaikkeuden tulisi silloin luopua itsensä tuntemisesta tai
sisällyttää itseensä jotakin, mikä pysyisi sille ikuisesti vieraana.
Joko ei ajatus tule huomaamaan ääriään eikä siis niistä kärsimään,
tahi se kulkee niiden yli sikäli, kuin se ne tapaa. Sillä kuinka voisi
maailmankaikkeuteen liittyä osia, jotka olisivat ikuisesti tuomitut
pysymään irti siitä itsestään ja sen tietopiiristä? Siten emme
ollenkaan käsitä, kuinka ymmärtämättömyyden tuska, otaksuen, että
se hetken on olemassa, ei lopulta sulautuisi äärettömyystilaan, joka,
jollei se ole luulomme mukainen onni, saattaisi olla vain iloa
korkeampi ja puhtaampi välinpitämättömyys.
10. luku.
Äärettömyyden kaksi muotoa.
I.
Suunnatkaamme ajatuksemme siihen. Ongelma paisuu yli
ihmisyyden ja käsittää kaikki. Mielestäni saattaa äärettömyyttä
tarkastaa kahdelta, perin erilaiselta kannalta. Katselkaamme
ensimäistä.
Olemme uppoutuneet maailmankaikkeuteen, jolla ei ole rajoja sen
enempää ajassa kuin avaruudessakaan. Se ei voi kulkea eteenpäin
eikä perääntyä. Sillä ei ole alkua. Se ei ole koskaan alkanut, niinkuin
se ei milloinkaan lopu. Sen takana on yhtä monta myriadia vuotta
kuin se niitä edessäänkin näkee. Se on ainaisista ajoista saakka
päivien rajattomassa keskuksessa. Sillä ei voi olla päämäärää, sillä

jos sellainen olisi, olisi se saavuttanut sen meitä edeltäneiden
vuosien loppumattomuudessa. Muuten tuo päämäärä olisi sen
ulkopuolella, ja jos äärettömyyden ulkopuolella olisi jotakin,
rajoittaisi se sitä ja se lakkaisi olemasta ääretön.
Se ei kulje mitään kohti, sillä se olisi jo saapunut sinne. Siis kaikki,
mitä maailmat sen helmassa tekevät, kaikki, mitä me itse siinä
teemme, ei saata millään lailla siihen vaikuttaa. Kaikki, mitä se tulee
tekemään, on se tehnyt. Kaikkea sitä, mitä se ei ole tehnyt, ei se
voikaan tehdä. Jos sillä ei ole mitään ajatusta, ei se sellaista
saakaan. Jos ajatus on, on se aina ollut korkeimmillaan ja pysyykin
siinä liikkumatta, muuttumatta. Se on yhtä nuori kuin on ollut ja yhtä
vanha kuin tulee olemaan. Se on jo menneisyydessä koetellut kaikki
ponnistukset ja yritellyt kaikkea, mitä tulevaisuudessakin. Ja koska
kaikki mahdolliset yhdistelmät ovat koetellut sen jälkeen, mitä emme
voi sanoa edes alkuperäksi, niin ei näytä siltä, kuin se, mikä ei ole
tapahtunut ikuisuudessa ennen syntymäämme, voisi tapahtua siinä,
mikä seuraa kuolemaamme. Jollei se ole tullut tietoiseksi, ei se
koskaan tule; jollei se tiedä, mitä haluaa, pysyy se toivottomasti
tietämättömänä, tietäen kaikki tai ei mitään ja ollen yhtä lähellä
loppuaan kuin alkuaankin.
Se on synkin ajatus, johon ihminen voi päästä. En luule, että
siihen on tähän mennessä kylliksi syvennytty. Jos se todella olisi
kumoamaton — ja voidaanpa väittää, että se on — jos siinä todella
piilisi suuren arvoituksen äärimmäinen sana, olisi melkein
mahdotonta elää sen varjossa. Ainoastaan varmuus siitä, että
käsityksemme ajasta ja avaruudesta ovat pettäviä ja mielettömiä, voi
valaista sitä kuilua, missä kaikki toivo häipyisi.
II.

Näin käsitetyn maailmankaikkeuden voisi järkemme ainakin
hyväksyä, vaikkei se voisikaan sitä tajuta. Mutta siinä liitelee
miljardeja ajan ja paikan rajoittamia maailmoita. Ne syntyvät,
kuolevat ja syntyvät jälleen. Ne ovat kokonaisuuden osia, ja siitä siis
nähdään, että sellaisellakin, millä ei ole alkua eikä loppua, on osia,
jotka alkavat ja loppuvat. Me emme tunnekaan muuta kuin näitä
osia, ja niiden lukumäärä on niin ääretön, että ne meidän
silmissämme täyttävät koko äärettömyyden. Se, mikä ei kulje
minnekään, on täynnä sellaista, joka näyttää liikkuvan jotakin kohti.
Se, mikä ainaisesti on tiennyt, mitä haluaa, tai ei opi sitä koskaan,
näyttää ikuisesti tekevän enemmän tai vähemmän onnettomia
kokeita. Mihin haluaa päästä se, joka on jo perillä?
Kaikki se, mitä havaitsemme siinä, jolla ei voi olla päämäärää,
näyttää ajavan takaa jotakin päämäärää käsittämättömän
innokkaasti, ja se henki, joka elähyttää sitä, mitä näemme siinä,
jonka tulisi tietää kaikki ja olla oma herransa, näyttää olevan
tietämätön kaikesta ja hakevan itseään lakkaamatta. Niinpä kaikki,
mikä on aistiemme tajuttavana äärettömyydessä, on vastaista sille,
mitä järkemme on pakko sille myöntää. Mikäli siihen syvennymme,
sikäli ymmärrämme paremmin oman ymmärtämättömyytemme
syvyyden, ja mitä enemmän pyrimme syventymään molempiin,
toisilleen vastakkaisiin käsittämättömyyksiin, sitä ristiriitaisempia ne
ovat.
III.
Kuinka meidän käy kaiken tuon käsittämättömän keskellä?
Jätämmekö sen äärellisen maailman, jossa asumme, upotaksemme
jompaankumpaan äärettömään? Toisin sanoen, sekaannummeko

lopulta äärettömään, minkä järkemme aavistaa, vai pysymmekö
ikuisesti siinä, jonka silmämme näkevät — lukemattomissa,
muuntuvissa, lyhytaikaisissa maailmoissa? Emmekö milloinkaan
pääse ulos näistä maailmoista, joiden näyttää täytyvän ikuisesti
syntyä ja kuolla, astuaksemme siihen, mikä koko iäisyyden aikana ei
ole voinut kuolla ja on olemassa ilman tulevaisuutta, niinkuin
menneisyydettäkin? Pääsemmekö kerran, kaiken sen mukana, mikä
meitä ympäröi, onnettomista kokemuksista, joutuaksemme lopulta
rauhaan, viisauteen, liikkumattomaan, rajattomaan tietoisuuteen tai
toivottomaan tajuttomuuteen? Tuleeko kohtaloksemme se, minkä
aistimme aavistavat, vai se, jota älymme vaatii? Tai olisivatko aistit ja
äly vain harhaa, pieniä välikappaleita, turhia ajallisia aseita, joita ei
koskaan ole määrätty tutkimaan tai uhmaamaan
maailmankaikkeutta? Jos ristiriita todella on olemassa, onko viisasta
siihen pysähtyä ja tuomita mahdottomaksi se, jota emme ollenkaan
käsitä, ottaen huomioon, ettemme käsitä juuri mitään? Eikö totuus
ole mittaamattomien matkojen päässä noista ristiriidoista, jotka
näyttävät meistä äärettömiltä ja voittamattomilta, mutta jotka
epäilemättä eivät merkitse enempää kuin merelle lankeava sade?
IV.
Mutta nykyiselle vähäpätöiselle ymmärryksellemmekin lienee
järkemme ja aistimme äärettömyyksien ristiriita pikemmin vain
näennäinen kuin todellinen. Sanoessamme, että
maailmankaikkeudessa, joka on ollut iankaikkisesti olemassa, on jo
kaikki koettu ja kaikki mahdolliset yhdistelmät tehty, —
väittäessämme, ettei ole yhtään mahdollisuutta siihen, että
äärettömässä tulevaisuudessa tapahtuisi se, mitä ei tapahtunut

äärettömässä menneisyydessä, panee mielikuvituksemme ajan
äärettömyyteen liian suurta painoa.
Itse asiassa tulee kaiken, mitä ikuisuus sisältää, olla yhtä
ääretöntä kuin se aika, joka sillä on käytettävänään. Ja niitä
sattumia, yhtymiä ja yhdistelmiä, joita se sisältää, ei ole käytetty
loppuun siinä ikuisuudessa, joka on ollut ennen meitä, yhtä vähän
kuin niin saattaisi tapahtua siinä, mikä meitä seuraa. Ajan
äärettömyys ei ole avarampi kuin maailmankaikkeuden aineiston.
Tapauksia, voimia, mahdollisuuksia, syitä, seurauksia, ilmiöitä,
sekoituksia, yhdistelmiä, yhteensattumia, sopusointuja, yhtymiä,
elämiä edustavat siellä lukemattomat numerot, jotka täyttävät
kokonaan rajattoman, pohjattoman kuilun, missä ne hyörivät siitä
saakka, mitä sanomme sen maailman aluksi, jolla ei ollut alkua, ja
missä niitä mullistetaan aina sen maailman loppuun saakka, jolla ei
ole loppua… Ei ole siis mitään huippukohtaa, ei liikkumatonta eikä
muuttumatonta.
Todennäköistä on, että maailmankaikkeus etsii ja löytää itsensä
joka päivä, ettei se ole päässyt täyteen tietoisuuteen eikä vielä oikein
tiedä, mitä haluaa. On mahdollista, että sen äärettömyys vielä
verhoaa sen ihannetta, ja samoin on mahdollista, että kokemukset ja
sattumukset jatkuvat käsittämättömiin maailmoihin, joiden rinnalla
kaikki ne, mitkä me näemme tähtikirkkaina öinä, ovat vain
hyppysellinen kultatomua valtameren helmassa. Sanalla sanoen, jos
toinen on totta, niin on samoin totta, että me itse tai se, mikä meistä
jää — yhdentekevää kumpiko — hyödymme jonakin päivänä noista
kokemuksista ja sattumuksista. Se, mitä ei vielä ole tapahtunut,
saattaa tapahtua äkkiä; ja paras tila samoin kuin suurin viisaus, jotka
tulevat sen tajuamaan ja osaamaan pitää siitä kiinni, ovat ehkä
valmiina sävähtämään esiin olosuhteiden yhteentörmäyksestä. Ei

olisi ollenkaan ihmeellistä, että maailmankaikkeuden tietoisuus
muodostuakseen ei vielä olisi tavannut välttämättömien olosuhteiden
apua, ja että ihmisajatus kannattaisi toista näistä ratkaisevista
asianhaaroista.
Siinä on toivo. Niin pieneltä kuin ihminen ja hänen ajatuskykynsä
näyttääkin, on hänellä tarkoin sama arvo kuin kaikkein
mahtavimmilla voimilla, mitä hän osaa kuvitella, ottaen huomioon,
ettei mikään ole suurta eikä pientä siinä, millä ei ole mittaa, ja vaikka
ruumiimme tulisi yhtä avaraksi kuin kaikki maailmat, mitä silmämme
havaitsevat, olisi sillä, maailmankaikkeuden kannalta, sama arvo kuin
tänäänkin. Ehkä vain ajatuksella on äärettömyydessä se tila, jota
vertailu ei supista mitättömiin.
V.
Muutoin, jos tulee puhua suoraan, vaikka pimeydessämme
puhuisimmekin lakkaamatta ja häpeämättä ristiin, ja palataksemme
ensimäiseen otaksumaan, tuohon mahdollisen kehityksen
aatteeseen, on hyvin uskottavaa, että se taas on niitä aivojemme
lapsellisia vajavuuksia, jotka estävät meitä näkemästä asian oikeata
laitaa. On yhtä todennäköistä, kuten olemme edellä osoittaneet, ettei
ole ollut eikä koskaan tulekaan olemaan minkäänlaista kehitystä,
koska sillä ei voi olla päämäärää. Korkeintaan voi syntyä joitakin
hetkellisiä yhtymiä, jotka silmäraukoistamme näyttävät
onnellisemmilta tai kauniimmilta kuin toiset, samoin kuin meistä on
kulta kauniimpaa kuin tien loka, tai komean puutarhan kukka
onnellisempi kuin mukulakivi likaviemärin pohjalla, mutta kaikki tämä
ei nähtävästi ole mitenkään tärkeää, ei vastaa minkäänlaista
todellisuutta eikä paljoakaan todista.

Mitä enemmän asiaa ajattelee, sitä selvempänä esiintyy älymme
heikkous, se kun ei kykene sovittamaan edistyksen eikä edes
kokemusten ajatusta äärettömyyden ylimmäiseen käsitteeseen.
Vaikka luonto meidän nähtemme lakkaamatta toistelee itseään ja
tuottaa väsymättä, vuosituhansien kuluessa, samoja puita ja samoja
eläimiä, emme silti saata ymmärtää, miksi maailmankaikkeus aloittaa
loppumattomasti uudelleen samoja kokeita, joita on tehty miljardeja
kertoja.
Välttämätöntä on, että lukemattomissa yhdistelmissä, joita
tapahtui ja tapahtuu rajattomina aikoina, rannattomissa
avaruuksissa, on ollut ja on vieläkin miljoonittain kiertotähtiä ja siitä
johtuen miljoonittain aivan meidän kaltaisiamme ihmiskuntia,
myriadien toisten rinnalla, jotka siitä enemmän tai vähemmän
eroavat. Emme saa sanoa, että on mahdotonta kuvitella sellaista
olosuhteiden yhteensattumaa, joka tarvittaisiin uudestaan luomaan
taivaankappale, mikä kaikessa olisi meidän maapallomme kaltainen.
Älkäämme jättäkö huomioon ottamatta, että olemme
äärettömyydessä, ja että tämän kuvittelemattoman yhteensattuman
täytyy pakostakin tapahtua siinä kivuttomuudessa, jota emme voi
kuvitella. Jos tarvitaan tuhansia miljardeja tapauksia, että kaksi
viivaa sattuisi yhteen, eivät nuo tuhannet miljardit täytä
äärettömyyttä sen enempää kuin yksi ainoa tapaus.
Pankaa ääretön luku maailmoita äärettömän monenlaisten
yhteensattumien äärettömän määrän sekaan, ja aina on siitä tuleva
ääretön lukumäärä, jossa nämä olosuhteet tulevat olemaan
samanlaisia; muutoin vetäisimme rajat käsityksellemme
maailmankaikkeudesta, joka samalla kävisi vielä
käsittämättömämmäksi. Heti kun riittävästi korostamme tätä seikkaa,
joudumme välttämättä tällaisiin johtopäätöksiin. Jolleivät ne tähän

mennessä ole pistäneet silmäämme, on syynä vain se, ettemme
milloinkaan salli mielikuvituksemme mennä perille saakka; mutta
mielikuvituksemme loppupää on vain todellisuuden alku, ja se
näyttää meille vain pienen inhimillisen maailmankaikkeuden, joka
niin avaralta kuin se näyttääkin oikeassa maailmankaikkeudessa
keinuu kuin omena ulapalla.
Toistan sen vielä: jollemme myönnä, että tuhansia maailmoita,
aivan samanlaisia kuin omamme, on aina ollut ja on vieläkin
olemassa miljardeista vastaisista mahdollisuuksista huolimatta, niin
kumoamme perustan ainoalta mahdolliselta maailmankaikkeuden ja
äärettömyyden käsitteeltä.
VI.
Mutta mistä johtuu, ettemme hyödy mitään noista miljoonista täysin
samanlaisista ihmiskunnista, jotka kaikkina aikoina ovat kärsineet
sitä, mitä mekin olemme kärsineet ja kärsimme, ettei kaikilla niiden
kokemuksilla, kaikilla niiden kouluilla ole ollut minkäänlaista
vaikutusta meidän ensi yrityksiimme, ja että kaikki on lakkaamatta
uudestaan tehtävä, alusta aloitettava?
Huomaamme, että molemmat otaksumat pitävät toistaan
tasapainossa. On hyvä hiljalleen tottua olemaan mitään
ymmärtämättä. Meille jää kyky valita vähemmän pimeä tai sanoa
itsellemme, että toisen pimennot piilevät vain aivoissamme.
Omituinen kaukonäkijä William Blake on sanonut: "Ajatuksen on
mahdoton tuntea itseään suurempaa."
Lisätkäämme, että se kykenee tuntemaan vain oman itsensä. Se,
mitä emme tiedä, riittäisi luomaan maailman uudelleen, ja se, mitä

tiedämme, ei voi hetkelläkään jatkaa kärpäsen elämää. Kuka tietää,
eikö meidän suurin erehdyksemme ole siinä uskossa, että äly,
olkoonpa se vaikka miljoonan kertaa suurempi kuin meidän, johtaa
kaikkeutta? Se on ehkä aivan toisenluontoinen voima, joka eroaa
yhtä paljon siitä, mistä meidän aivomme kerskailevat, kuin esim.
sähkö eroaa tiellä puhallelevasta tuulesta. Senpä vuoksi onkin hyvin
luultavaa, että ajatuksemme, niin voimakas kuin se onkin, saa
ainaisesti haparoida salaperäisyydessä.
Jos on varmaa, että kaiken, mitä meissä on, täytyy olla myöskin
luonnossa, koska kaikki tulee meille siitä, jos ajatus ja kaikki logiikka,
minkä se on pannut olemuksemme korkeimmalle huipulle, ohjaavat
tai näyttävät ohjaavan elämämme kaikkia tekoja, ei siitä suinkaan
seuraa, ettei kaikkeudessa olisi ajatusta paljoakin ylempää voimaa,
jolla ei olisi siihen mitään ajateltavaa suhdetta, joka elähyttää ja
johtaa kaikkea toisten lakien mukaan, ja josta on meissä vain
melkein huomaamattomia jälkiä, samoin kuin kasveissa ja
kivennäisissä on vain melkein huomaamattomia ajattelemisen jälkiä.
Kaikissa tapauksissa ei tässä ole mitään syytä lannistumiseen.
Ihmisen kuvitelma pahasta, rumasta, hyödyttömästä ja
mahdottomasta on ehdottomasti väärässä. Ei tule odottaa, että
kaikkeus muuttuisi, vaan että älymme kehittyisi tai ottaisi osaa
toiseen voimaan, ja meidän tulee säilyttää luottamuksemme
maailmaan, joka ei tunne käsityksiämme päämäärästä ja
edistyksestä, koska sillä epäilemättä on ajatuksia, joista meillä ei ole
mitään käsitystä, ja joka sitäpaitsi ei voi tahtoa pahaa itselleen.
VII.

Nuohan ovat sangen hyödyttömiä mietteitä, sanonee joku. Mitä
arvoa on oikeastaan sillä kuvittelulla, jonka itsellemme luomme
tuntemattomuuteen kuuluvista seikoista, koska tuntematon, vaikka
olisimme tuhat kertaa älykkäämpiä, on meiltä ikuisesti suljettu, eikä
luulolla, mikä meillä siitä on, siis tule koskaan olemaan minkäänlaista
arvoa. Se on totta, mutta tuntemattomuuden tietämättömyydessä on
eri asteita, ja joka aste merkitsee älyn saamaa voittoa. Arvioida yhä
täydellisemmin tietämättömyytensä alaa — siinä kaikki, mitä
ihmistieto saattaa toivoa.
Meidän mielteemme siitä, mikä on tutkimatonta, on ollut ja on
aina oleva arvoton, sen myönnän, mutta siitä huolimatta se on ja
pysyy aina ihmisrodun tärkeimpänä mielteenä. Koko siveysoppimme,
kaikki mitä syvintä ja ylevintä on olemassa elämässämme, on aina
perustunut tähän oikeaa arvoa vailla olevaan mielteeseen. Tänään
kuten eilenkin, vaikka nyt onkin mahdollista selvemmin tajuta, ettei
tällä mielteellä voi olla todellista arvoa, on kuitenkin välttämätöntä,
kuinka epätäydellisenä ja ehdollisena se pysyykin, kehittää sitä niin
korkealle, niin kauas kuin mahdollista. Se yksin luo sen ainoan
ilmapiirin, missä paras puoli olemustamme voi elää. Niin,
tutkimattomaan emme koskaan pääse sisälle, mutta siitä syystä ei
tarvitse sanoa itselleen: "Suljen kaikki ovet ja ikkunat; en huoli enää
muusta kuin siitä, minkä jokapäiväinen älyni voi täydellisesti käsittää.
Vain sillä on oikeus vaikuttaa tekoihini ja ajatuksiini."
Minne joutuisimme näin ajatellen? Mitkä asiat pystyy älymme
täydellisesti käsittämään? Onkohan tässä maailmassa mitään, mikä
ei olisi yhteydessä kaiken tuon käsittämättömän kanssa? Koska ei ole
mahdollista päästä irti viimemainitusta, niin on järkevää ja
hyödyllistä käyttää sitä parhain päin ja sen vuoksi käsittää se niin
ihmeellisen laveaksi kuin suinkin voi. Pahin moite, mitä positiivisiin

uskontoihin ja erittäinkin kristinuskoon voi kohdistaa, on se, että ne
ovat liian usein, jollei opissa niin ainakin käytännössä, suosineet
maailmankaikkeuden salaperäisyyden supistamista. Sitä
laajentamalla laajennamme avaruutta, jossa ajatuksemme liikkuu. Se
on meille sellainen, miksi sen teemme. Luokaamme se siis kaikesta
siitä, mitä voimme saavuttaa omassa näköpiirissämme. Tuota
salaperäisyyttä itseään emme tietysti milloinkaan saavuta, mutta
meidän on paljon helpompi sitä lähestyä katsomalla sitä silmiin,
menemällä sinne, minne se meitä vetää, kuin kääntämällä sille
selkämme palataksemme sinne, missä tiedämme, ettei sitä enää ole.
Ajatuksiamme pienentämällä emme suinkaan vähennä välimatkaa,
joka erottaa meidät äärimmäisistä totuuksista. Mahdollisimman
paljon niitä laajentamalla saamme varmuuden siitä, että erehdymme
mahdollisimman vähän. Ja mikäli käsityksemme äärettömyydestä
kohoaa, sikäli kevenee ja puhdistuu henkinen ilmapiiri, jossa
elämme, laajenee ja syvenee näköpiiri, jota varten ajatuksemme ja
tunteemme piirtyvät saaden siitä ravintonsa ja elähyttäen sitä.
"Kun alituisesti rakennamme käsitteitä, jotka vaativat kyvyiltämme
äärimmäisiä ponnistuksia", lausuu Herbert Spencer, "ja kun aina
tunnustamme, että näistä käsitteistä on luovuttava kuin turhista
kuvitteluista, todistaa se meille paremmin kuin mikään muu sen
suuruutta, mitä turhaan koetamme tavoittaa. Alituisesti pyrkimällä
tajuamaan ja alituisesti pakotettuina perääntymään yhä
vakaantuneempina tietämisen mahdottomuudesta pidämme elossa
sitä tietoisuutta, että on samalla meidän korkein viisautemme ja
korkein velvollisuutemme katsoa tutkimattomaksi sitä, minkä
vaikutuksesta kaikki on olemassa."
VIII.

Mikä lopuksi lieneekin totta — joko hyväksymme abstraktisen,
ehdottoman, täydellisen äärettömyyden, sellaisen, joka on
liikkumaton, järkkymätön ja valmis ja tietää kaikki, mihin järkemme
pyrkii, taikka pidämme parempana sitä äärettömyyttä, minkä meille
täällä maan päällä esittää aistimme eittämätön todistus, sitä, joka
etsii itseään, kehittyy eikä vielä ole vakiintunut — niin meille on
ennen kaikkea tärkeää ja tahdomme ennen kaikkea saada käsityksen
kohtalostamme, joka muuten molemmissa tapauksissa sulautunee
juuri tähän äärettömyyteen.
11. luku.
Kohtalomme näissä äärettömyyksissä.
I.
Edellinen äärettömyys, ihanteellinen ja järkemme vaatimuksia
paraiten vastaava äärettömyys ei näiden ominaisuuksiensa vuoksi
suinkaan ansaitse etusijaa. Meidän on mahdoton aavistaa, mitä
meistä siellä tulee, koska siellä näyttää olevan mahdotonta, että
jokin kehittyisi joksikin. Meille ei siis jää muuta keinoa kuin tutkistella
jälkimäistä, sitä, jonka näemme ja kuvittelemme ajassa ja
avaruudessa.
Sitäpaitsi on mahdollista, että se käy ensinmainitun edellä. Olkoon
käsityksemme maailmankaikkeudesta kuinka ehdoton tahansa, niin
olemme huomanneet aina voivamme myöntää, että se, mitä ei
tapahtunut iankaikkisuudessa ennen meitä, tapahtuu jälkeemme
tulevassa, ja ettei mikään, paitsi lukemattomat sattumat, estä

maailmankaikkeutta, jollei se jo ole sitä saanut, lopultakin
saavuttamasta täydellistä tietoisuutta, joka ilmaisee sen kehityksen
huippukohdan.
II.
Olemme siis näiden maailmoiden äärettömyydessä, tähtien
äärettömyydessä, taivaiden äärettömyydessä, joka varmasti kätkee
meiltä jotakin muuta, mutta ei voi olla pelkkää harhaluuloa. Se näkyy
olevan täynnä vain kappaleita, kiertotähtiä, auringoita, tähtiä,
usvasikermiä, jotka liikkuvat, yhtyvät ja hajoavat, vetävät toisiaan
puoleensa ja työntävät pois, hukkuvat ja syntyvät, siirtyvät
lakkaamatta paikasta toiseen eivätkä koskaan saavu perille,
mittaavat avaruutta siinä, missä ei ole rajoja, ja laskevat hetkiä siinä,
millä ei ole loppua. Sanalla sanoen, me olemme nyt sellaisessa
äärettömyydessä, jolla näyttää olevan sama luonne, samat tavat kuin
sillä voimalla, jonka helmassa hengitämme, ja jota maamme päällä
nimitämme luonnoksi tai elämäksi.
Mitä meistä siinä tulee? Sitä ei ole turha kysyä, vaikka
sulautuisimme siihen menetettyämme kaiken tietoisuuden, kaiken
käsityksen itsestämme, vaikka siinä olisimme vain hiukkasena
nimetöntä oliota — sieluako vai ainetta, sitä ei ole helppo sanoa —
liitelemässä siinä samoin nimettömässä kuilussa, joka on astunut
ajan ja paikan sijalle. Sitä ei ole turha kysyä, sillä nyt on kysymys
maailmoiden ja kaikkeuden historiasta ja tämä historia, pikemmin
kuin meidän pienen elämämme tarina, on meidän omaa, suurta
historiaamme, missä jokin meistä itsestämme tai jokin verrattomasti
parempi ja suurempi kuin me vihdoin jonakin päivänä jälleen meidät
löytää.

III.
Tulemmeko olemaan siellä onnettomia? Emme juuri tunne olevamme
rauhallisia ajatellessamme luonnon tapoja ja huomatessamme
olevamme osana kaikkeudessa, joka ei vielä ole koonnut viisauttaan.
Olemmehan tosin nähneet, että onni ja onnettomuus ovat olemassa
vain suhteessa ruumiiseemme, ja että kadotettuamme kärsimyksen
elimen emme enää kohtaa mitään tämän maan suruista.
Mutta siihen ei levottomuutemme vielä rajoitu, ja eikö
ajatuksemme, jonka eteen kaikki entiset tuskamme ja huolemme
pysähtyvät, eikö ajatuksemme kieriessään eristettynä maailmasta
maailmaan, tuntematta itseään siinä tutkimattomassa, mikä
toivottomasti hakee itseään, joudu tuntemaan sitä kauheaa
kidutusta, josta olemme jo puhuneet, ja joka epäilemättä on
äärimmäinen, mitä mielikuvitus voi siivellään hipaista?
Ja jos lopuksi ei olisi enää mitään jäljellä ruumiistamme ja
sielustamme, niin jäisi kuitenkin aine ja henki (tai ainakin se
ilmeisesti ainoa tarmo, jolle annamme tuon kaksinaisen nimen),
jotka muodostivat niiden olemuksen ja joiden kohtalosta emme saa
olla vähemmän välttämättä kuin omastamme. Sillä — toistakaamme
se — kuolemamme jälkeen ovat kaikkeuden vaiheet meidän
vaiheitamme. Älkäämme siis ajatelko: "Mitä siitä, siellähän meitä ei
enää ole." Me olemme siellä mukana, koska kaikki joutuu sinne.
IV.
Tämä kokonaisuus, johon tulemme kuulumaan, onko se siinä
maailmassa, joka aina etsii itseään, yhä edelleen oleva uusien
lakkaamattomien ja ehkäpä tuskallisten kokemusten esineenä?