Python2.5/2.6实用教程:基础篇
介绍
本文方便有经验的程序员进入Python世界.本文适用于python2.5/2.6版本.
Deparecated:Python3 和 python2.x语法不同.如果你正在用python3,请参考新教程:http://www.cnitblog.com/yunshichen/archive/2009/04/01/55924.html
起步走
#
! /usr/bin/python
a = 2
b = 3
c="test"
c = a + b
print " execution result: %i " % c
a = 2
b = 3
c="test"
c = a + b
print " execution result: %i " % c
知识点
- Python是动态语言,变量不须预先声明.
- 打印语句采用C风格
字符串和数字
但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:
#
! /usr/bin/python
a = 2
b = " test "
c = a + b
a = 2
b = " test "
c = a + b
运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换
#
! /usr/bin/python
a = 2
b = " test "
c = str(a) + b
d = " 1111 "
e = a + int(d)
# How to print multiply values
print " c is %s,e is %i " % (c,e)
a = 2
b = " test "
c = str(a) + b
d = " 1111 "
e = a + int(d)
# How to print multiply values
print " c is %s,e is %i " % (c,e)
知识点:
- 用int和str函数将字符串和数字进行转换
- 打印以#开头,而不是习惯的//
- 打印多个参数的方式
国际化
写腻了英文注释,我们要用中文!
#
! /usr/bin/python
# -*- coding: utf8 -*-
print " 上帝重返人间:马拉多纳出任阿根廷国家足球队主帅. "
# -*- coding: utf8 -*-
print " 上帝重返人间:马拉多纳出任阿根廷国家足球队主帅. "
知识点:
- 加上字符集即可使用中文
列表
列表类似Javascript的数组,方便易用
#
! /usr/bin/python
# -*- coding: utf8 -*-
# 定义元组
word = [ ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' , ' g ' ]
# 如何通过索引访问元组里的元素
a = word[ 2 ]
print " a is: " + a
b = word[ 1 : 3 ]
print " b is: "
print b # index 1 and 2 elements of word.
c = word[: 2 ]
print " c is: "
print c # index 0 and 1 elements of word.
d = word[0:]
print " d is: "
print d # All elements of word.
# 元组可以合并
e = word[: 2 ] + word[ 2 :]
print " e is: "
print e # All elements of word.
f = word[ - 1 ]
print " f is: "
print f # The last elements of word.
g = word[ - 4 : - 2 ]
print " g is: "
print g # index 3 and 4 elements of word.
h = word[ - 2 :]
print " h is: "
print h # The last two elements.
i = word[: - 2 ]
print " i is: "
print i # Everything except the last two characters
l = len(word)
print " Length of word is: " + str(l)
print " Adds new element "
word.append( ' h ' )
print word
# 删除元素
del word[0]
print word
del word[ 1 : 3 ]
print word
# -*- coding: utf8 -*-
# 定义元组
word = [ ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' , ' g ' ]
# 如何通过索引访问元组里的元素
a = word[ 2 ]
print " a is: " + a
b = word[ 1 : 3 ]
print " b is: "
print b # index 1 and 2 elements of word.
c = word[: 2 ]
print " c is: "
print c # index 0 and 1 elements of word.
d = word[0:]
print " d is: "
print d # All elements of word.
# 元组可以合并
e = word[: 2 ] + word[ 2 :]
print " e is: "
print e # All elements of word.
f = word[ - 1 ]
print " f is: "
print f # The last elements of word.
g = word[ - 4 : - 2 ]
print " g is: "
print g # index 3 and 4 elements of word.
h = word[ - 2 :]
print " h is: "
print h # The last two elements.
i = word[: - 2 ]
print " i is: "
print i # Everything except the last two characters
l = len(word)
print " Length of word is: " + str(l)
print " Adds new element "
word.append( ' h ' )
print word
# 删除元素
del word[0]
print word
del word[ 1 : 3 ]
print word
知识点:
- 列表长度是动态的,可任意添加删除元素.
- 用索引可以很方便访问元素,甚至返回一个子列表
- 更多方法请参考Python的文档
字典
#
! /usr/bin/python
x = { ' a ' : ' aaa ' , ' b ' : ' bbb ' , ' c ' : 12 }
print x[ ' a ' ]
print x[ ' b ' ]
print x[ ' c ' ]
for key in x:
print " Key is %s and value is %s " ,(key,x[key])
keys = x.items();
print keys[0]
keys[0] = ' ddd '
print keys[0]
x = { ' a ' : ' aaa ' , ' b ' : ' bbb ' , ' c ' : 12 }
print x[ ' a ' ]
print x[ ' b ' ]
print x[ ' c ' ]
for key in x:
print " Key is %s and value is %s " ,(key,x[key])
keys = x.items();
print keys[0]
keys[0] = ' ddd '
print keys[0]
知识点:
- 将他当Java的Map来用即可.
字符串
比起C/C++,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧.
word
=
"
abcdefg
"
a = word[ 2 ]
print " a is: " + a
b = word[ 1 : 3 ]
print " b is: " + b # index 1 and 2 elements of word.
c = word[: 2 ]
print " c is: " + c # index 0 and 1 elements of word.
d = word[0:]
print " d is: " + d # All elements of word.
e = word[: 2 ] + word[ 2 :]
print " e is: " + e # All elements of word.
f = word[ - 1 ]
print " f is: " + f # The last elements of word.
g = word[ - 4 : - 2 ]
print " g is: " + g # index 3 and 4 elements of word.
h = word[ - 2 :]
print " h is: " + h # The last two elements.
i = word[: - 2 ]
print " i is: " + i # Everything except the last two characters
l = len(word)
print " Length of word is: " + str(l)
a = word[ 2 ]
print " a is: " + a
b = word[ 1 : 3 ]
print " b is: " + b # index 1 and 2 elements of word.
c = word[: 2 ]
print " c is: " + c # index 0 and 1 elements of word.
d = word[0:]
print " d is: " + d # All elements of word.
e = word[: 2 ] + word[ 2 :]
print " e is: " + e # All elements of word.
f = word[ - 1 ]
print " f is: " + f # The last elements of word.
g = word[ - 4 : - 2 ]
print " g is: " + g # index 3 and 4 elements of word.
h = word[ - 2 :]
print " h is: " + h # The last two elements.
i = word[: - 2 ]
print " i is: " + i # Everything except the last two characters
l = len(word)
print " Length of word is: " + str(l)
不过要注意Asc和Unicode字符串的区别:
#
! /usr/bin/python
# -*- coding: utf8 -*-
s = raw_input( " 输入你的中文名,按回车继续 " );
print " 你的名字是 : " + s;
l = len(s)
print " 你中文名字的长度是: " + str(l);
a = unicode(s, " utf8 " )
l = len(a)
print " 对不起,刚才计算错误.我们应该用utf8来计算中文字符串的长度, /
你名字的长度应该是: " +str(l);
# -*- coding: utf8 -*-
s = raw_input( " 输入你的中文名,按回车继续 " );
print " 你的名字是 : " + s;
l = len(s)
print " 你中文名字的长度是: " + str(l);
a = unicode(s, " utf8 " )
l = len(a)
print " 对不起,刚才计算错误.我们应该用utf8来计算中文字符串的长度, /
你名字的长度应该是: " +str(l);
知识点:
- 用unicode函数进行转码
条件和循环语句
#
! /usr/bin/python
x = int(raw_input( " Please enter an integer: " ))
if x < 0:
x = 0
print " Negative changed to zero "
elif x == 0:
print " Zero "
else :
print " More "
# Loops List
a = [ ' cat ' , ' window ' , ' defenestrate ' ]
for x in a:
print x, len(x)
x = int(raw_input( " Please enter an integer: " ))
if x < 0:
x = 0
print " Negative changed to zero "
elif x == 0:
print " Zero "
else :
print " More "
# Loops List
a = [ ' cat ' , ' window ' , ' defenestrate ' ]
for x in a:
print x, len(x)
知识点:
- 条件和循环语句
- 如何得到控制台输入
函数
#
! /usr/bin/python
# -*- coding: utf8 -*-
def sum(a,b):
return a + b
func = sum
r = func( 5 , 6 )
print r
# 提供默认值
def add(a,b = 2 ):
return a + b
r = add( 1 )
print r
r = add( 1 , 5 )
print r
# -*- coding: utf8 -*-
def sum(a,b):
return a + b
func = sum
r = func( 5 , 6 )
print r
# 提供默认值
def add(a,b = 2 ):
return a + b
r = add( 1 )
print r
r = add( 1 , 5 )
print r
一个好用的函数
#
! /usr/bin/python
# -*- coding: utf8 -*-
# The range() function
a = range( 5 , 10 )
print a
a = range( - 2 , - 7 )
print a
a = range( - 7 , - 2 )
print a
a = range( - 2 , - 11 , - 3 ) # The 3rd parameter stands for step
print a
# -*- coding: utf8 -*-
# The range() function
a = range( 5 , 10 )
print a
a = range( - 2 , - 7 )
print a
a = range( - 7 , - 2 )
print a
a = range( - 2 , - 11 , - 3 ) # The 3rd parameter stands for step
print a
知识点:
- Python 不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.
- 定义函数方便简单
- 方便好用的range函数
异常处理
#
! /usr/bin/python
s = raw_input( " Input your age: " )
if s == "" :
raise Exception( " Input must no be empty. " )
try :
i = int(s)
except ValueError:
print " Could not convert data to an integer. "
except :
print " Unknown exception! "
else : # It is useful for code that must be executed if the try clause does not raise an exception
print " You are %d " % i, " years old "
finally : # Clean up action
print " Goodbye! "
s = raw_input( " Input your age: " )
if s == "" :
raise Exception( " Input must no be empty. " )
try :
i = int(s)
except ValueError:
print " Could not convert data to an integer. "
except :
print " Unknown exception! "
else : # It is useful for code that must be executed if the try clause does not raise an exception
print " You are %d " % i, " years old "
finally : # Clean up action
print " Goodbye! "
come from: http://www.cnitblog.com/yunshichen/archive/2008/11/21/51775.html