×
Namespaces

Variants
Actions
(Difference between revisions)

Basic Python Elements

From Nokia Developer Wiki
Jump to: navigation, search
croozeus (Talk | contribs)
(Importing modules)
croozeus (Talk | contribs)
(Added in the featured article list)
Line 1: Line 1:
 +
{{FeaturedArticle}}
 
This article aims to provide information about the most basic [[Python]] and [[PyS60]] operations. It is intended for beginners in the [[Python]] programming language.
 
This article aims to provide information about the most basic [[Python]] and [[PyS60]] operations. It is intended for beginners in the [[Python]] programming language.
  

Revision as of 14:12, 12 October 2008

Featured Article

This article aims to provide information about the most basic Python and PyS60 operations. It is intended for beginners in the Python programming language.

For an overview and installation instructions, see FNWiki Python

Contents

Description

Python is a programming language similar to C++, yet more automated. The user has to do less in order to achieve the same result (i.e. the type of a variable doesn't have to be declared, Python analyzes it and stores it accordingly). Python consists of two parts: the PC editor and compiler, used to write and test the code, and the on-phone interpreter, which reads and executes the code. While the Python editor (IDLE or command line) is useful for testing applications in real time, due to the fact that operations are performed in real time, some users may prefer entering code in a traditional text editor, such as Notepad. Following snippets can be entered in interactive mode. In this mode interpreter prompts for the next command with the primary prompt, usually three greater-than signs ">>> ". For continuation lines it prompts with the secondary prompt, "... ". If the instruction is not complete interpreter is going to display the secondary prompt.

Python IDLE.JPG

Variables

Variables are "containers" used to store values. For example:

x=2

stores the value 2 in the variable named x.

In Python, there are the following types of variable:

-integer - a number

-long - an extended version of integer

-float - a number with decimals

-boolean - a logical variable (can be TRUE or FALSE)

-character - a text character (like '1' or 'f')

-string - a sequence of 1 or more characters (like 'Nokia' or '2')

There are other kinds of variables called arrays of elements (strings and lists). An array is a collection of items, like:

list=[1,2,3,4] #a list of numbers
list=['a','b'] # a list of characters
#etc

An array is characterised by its length (the number of elements). For example, the length of [1,2,3,6,1,'d'] is 6. Note that an array is evaluated from position 0 (element 1, in this case) to its length-1 (element d).

>>> a=[1,2,3]
>>> a[2]
3
 
>>> s="alabala"
>>> s[3]
b

To check whether an element is in an array, if the array is short and well known, we do the following:

element in array #returns true if the element is in that array, and false if not.
#Example:
>>> x=2
>>> if (x in [1,5,2,7,2,4]):
... print 'yes'
... else:
... print 'no'
...
yes

In this example after entering the ":" symbol press 3 times 0 key (for entering return key) Secondary prompt is displayed because the "if" statement is not completed. Enter now 4 spaces before entering next line. And repeat these steps until statement is completed fully.

Program sytax and other general info

The input is what the user tells the program. x=2, x=raw_input() are ways to give x a value. Output is what the program shows the user. print x outputs the value of x. You can also use print "%letter" % (value). The letters and associated types are:

f - float

d - integer

s - string

Example:

>>> print "%d" % (5)
5
>>> print "%s" % ('series 60')
series 60
>>> x=2.14
>>> print "%f" % (x)
2.14

"#" in the program code starts a comment (a line that is not interpreted by Python, and is for the programmer to describe certain operations)

Operators and operations

Operators

Operators are used to compare variables. < (smaller), > (greater), <= (smaller or equal), == (equal), >= (greater or equal), != (different)

x=2
y=5
 
x<y
x<=y
x!=y
#return true
 
x>=y
x>y
x==y
#return false

"and", "or", "not" - used with boolean variables (true and true=true, true and false=false, t or t=t, t or f=t, not t=f, not f=t)

x=2
y=3
(x<y) and (y!=0) #returns true
not(x==2) #returns false

General operations

Like in any programming language, the programmer can manipulate the variables in almost any way they desire. Here is a list of operations, the types of variables they can be applied to and examples:

- "+" -integer (2+5=7), long (500000000+1000000000=6000000000), float (2.34+1.2=3.54), character ('f'+'g'='fg') and string ('nokia'+' n95'='nokia n95')

- "-" -integer, long, float

- "*" -integer, long, float, or between an integer and a character or string (3*'hi'='hihihi')

- "/" -integer, long, float

- "%" -the modulus, meaning the number you get after dividing a number to another number, long, float (2.4%2=0.4)

Special operations

These apply to arrays

-Changing an element

>>> x = [1, 1, 1]
>>> x[1] = 2
>>> x
[1, 2, 1]

-Deleting elements

>>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']
>>> del names[2]
>>> names
['Alice', 'Beth', 'Dee-Dee', 'Earl']

-Separating elements

>>> name = list('Perl')
>>> name
['P', 'e', 'r', 'l']

-Appending

>>> lst = [1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

Conditionals and loops

In order to check if a condition is true or not, the 'if' structure is used. Based on the validity of the condition, instructions can be given.

if <condition1>:
<instruction>
.
.
elif <condition2>:
<instruction>
.
.
else:
<instruction>
.
.

The condition1 is checked. If it is true, the instructions under it will be carried out. If condition1 is false, then the condition2 is checked. If it is true, the instructions under it will be carried out. If, on the other hand, neither the condition1 or condition2 are true, the instructions under the 'else' part will be carried out. The 'elif' part can be omitted for simpler conditional structures.

Example:

>>> x=2
>>> if(x==2):
... print 'ok'
...
ok
 
>>> if (x==56):
... print '56'
... else:
... print x
...
2
 
>>> a = 3
>>> b = 4
>>> if (a % 2 == 0):
... print 'even a'
... elif (b % 2 == 0):
... print 'even b'
... else:
... print 'something else'
...
even b

When an action needs to be repeated for a certain number of times, or until a condition is met, we use the 'while' or 'for' loop:

while <condition>:
<instruction1>
<instruction2>

If the condition is true, the loop is entered and the instructions will be performed until the condition becomes false. Example:

>>> i=1
>>> while (i<=4):
... print 'ok'
... i+=1
...
ok
ok
ok
ok
>>> for i in range(3):
... print "do"
...
do
do
do

Functions

Functions in Python are used to perform a set of operations to modify a certain element, or for many other purposes. An example of a function is the "pow" function:

>>> x=2
>>> y=3
>>> pow(x,y)
8

A function is declared like this:

def functionname(parameters):
<operations>
return result

Functions can also be used to convert a type of variable into another. The structure is variable2=function(variable1) These functions are: int(var) and long(var)->number, float(var)->number with decimals, str(var)->string, chr(var)->character. Example:

>>> x=2.34
>>> print int(x)
2
>>> str(x)
'2.34'

When used in functions, variables can be local (the modifications they suffer do no apply to their value outside the function) or global (after the function is performed, their value will be modified). This comparison will help you understand better:

>>> x=2
>>> def inc(x):x+=1
>>> x
2
>>> inc(x)
>>> x
2
#notice that after calling the function inc, the value of x remains unchanged

Compare that with:

>>> x=2
>>> def inc():
... global x
... x+=1
...
>>> x
2
>>> inc()
>>> x
3
#here, if the value of x is modified in the function, this modification is kept for the rest of the program

Importing modules

Modules contain certain functions that are not loaded with Python by default, but instead need to be loaded by the user. There are two methods for importing modules or extensions:

>>> import math
>>> sin(3.14159)
0
#or
>>> from math import sin
>>> sin(3.14159)
0

The difference is that the first method imports the entire "math" module, while the second only imports the needed function, "sin".

An important module for PyS60 is "appuifw". It contains the functions used to get certain types of input and output. Example:

import appuifw
appuifw.note(u"This is an example")
# will give you a message containing the text "This is an example"

Other important modules are "graphics" and "e32".

Developing applications

Python is one of the easiest languages for developing applications for mobile phones and other platforms. Let's say we want to make an application that asks you to pick a name from a list and displays the code associated with it. Here is a step-by-step guide to a method:

1.Create a new a Notepad document.

2.Write the code of the application

#import the necessary modules
import appuifw
import e32
 
#give the program a title
appuifw.app.title=u'Database'
#display the list of names so that the user can pick one. The order is important
pickedname=appuifw.popup_menu([u"Martha", u"Gregory"])
#associate a code to each of them
codes=[1206,2367]
#display the corresponding code, given by the number of the picked name from the list
if(pickedname==0):appuifw.popup_menu([u"%d" % (codes[0])])
if(pickedname==1):appuifw.popup_menu([u"%d" % (codes[1])])

3.Save the file as filename.py. The extension is important.

4.Transfer it to your phone. Store it in the "Python" folder

5.Test it. Open Python, select Option->Run script->filename.py

See also

Input and Output

114 page views in the last 30 days.
×