Python 简单入门

软件和网站开发以及相关技术探讨
回复
cosmostail
帖子: 24
注册时间: 2006-05-25 5:52

Python 简单入门

#1

帖子 cosmostail » 2006-06-04 2:35

Python 简单入门

注意:由于该论坛不允许空格,然而空格是对于解释Python语法必须的,所以请访问
这里来显示正确的语法。

前言
Python 是我接触过的编程语言中最容易上手的。Python 的语法干净,写出来的代码也简单易读。此文只是简单的入门教程,对那些从没有接触过Python的人,也许有一点作用。如果你想深入学习Python,我极力推荐2个教程:
1、 在线教程:Python Tutorial, http://docs.python.org/tut/tut.html
2、 书: 学习Python 第二版, http://www.china-pub.com/computers/comm ... p?id=25523
第一个Python程序
首先建立一个文件hello.py, .py是Python专用的后缀名。 其代码如下
#!/usr/bin/python

#输出hello,world
print "hello,world"

这是一个最简单的Python程序,但对于有其他编程语言经验的程序员来说,有几点需要注意:
1、双引号和单引号没有区别
2、注意"hello,world"后面没有分号“;”作为一行的结束
3、print 会自动加入 '\n' 在输出中,所以,如果你手工打上"\n",那么输出结果是两个空行。
4、# 后面是注释(comment)

保存退出后,使用 chmod 700 hello.py 使其可运行。然后运行该程序即可,Python 是一个脚本语言,你无须编译即可运行。
逻辑运算及变量申请
#!/usr/bin/python
x = 50
if x < 10:
print "Less than 10"
else:
print "Greater than 10"
print x

在上面简单的6行代码中,我们要注意几点,首先,你不需要为变量申明类型。在上面代码中我直接将整数50赋值到x中,我也可以将字符串"hello"赋值到x中。
以下一点是Python最最特别的地方,那就是他不是用括号来区分代码,而是用“缩进”来区别。大家可以看到print "Greater than 10" 和 print x 是对齐的。那说明他们同时都在else的区块下。
在这里例子中,此代码会输出
Greater than 10
50
并且只有当x大于等于10的时候,我们才输出x. 如果我们将print x向前移动,使其与else对齐,那整个代码的意思就变成不管x是不是大于等于10,都将print x。
#!/usr/bin/python
x = 50
if x < 10:
print "Less than 10"
else:
print "Greater than 10"
print x

在Python中,缩进是非常重要的,这就像C,C++里的括号,如果你括错地方,那就是语法错误。所有有些编辑器带有自动缩进是非常适合Python的,比如emacs或者Gedit(在选项中有自动缩进,并选择insert spaces instead tabs, tab width 4)。如果你用其他不带有此功能的编辑器,在使用中要注意不要使用tab来对齐。
循环和数组
在python中,while 的用法和C,C++差不多
#!/usr/bin/python
x = 50
while x > 0:
print x
x -= 1

但for的用法就不是很一样。首先让我们先申明数组,python里叫"list".
#!/usr/bin/python

x = ["hello","world","hello","hell"]
for each_word in x:
print each_word

输出结果是:
hello
world
hello
hell
试试直接用print x,Python可以聪明的输出整个list并用逗号区分。
List
申明list
x = ["hello","world","hell",1,7]

添加一个内容到list
x.append("what")

删除一个内容
x.remove("hello")

编辑一个内容
x[0] = "hi" #change "hello" to "hi"

排列
x.sort()
Dictionary(Hash)
申明
#name(key) and age(value) pair
x = {"scott":24, "terence":26, "jackson":25}

添加一个内容
x["jonathan"] = 30

编辑一个内容
x["scott"] = 18

删除一个内容
del x["terence"]

循环
for name,age in x.iteritems():
print name,"is",age,"years old"

keys and values
names = x.keys() # x.keys 返回所有的keys
age = x.values() # x.values 返回所有的values

作者: Scott Wang, findhappy@gmail.com
rainy14f
帖子: 23
注册时间: 2006-07-27 0:30
联系:

#2

帖子 rainy14f » 2007-05-26 4:34

顶楼主。要是能排一下版就更好了!
我爱好Java,正在学习Python和Linux,很高兴和你交朋友!我的BLOG是http://shao-fan.com/blog
cougor
帖子: 9
注册时间: 2007-11-12 10:51

#3

帖子 cougor » 2007-11-19 16:04

不错,顶!
fengjl026
帖子: 77
注册时间: 2007-10-20 22:18

#4

帖子 fengjl026 » 2007-12-18 15:58

我的不支持中文注释?什么问题?
回复