Python是一门编程语言,与C、Fortran、BASIC和PHP等等类似。Python的一些特性如下:
- 一种解释性(不是编译)语言。与C或者Fortran等不同,Python代码在执行前不会编译。另外,Python可以交互使用:有许多的Python解释器,命令和脚本可以在其中执行。
- 在开源证书下发布的免费软件:Python可以免费使用和分发,即使用于商用。
- 多平台:Python可以用于所有的主流操作系统,Windows、Linux/Unix、MacOS X, 甚至可能是你有手机操作系统等等。
- 可读性很强的语言,有清晰不罗嗦的语法
- 拥有大量高质量的包,可以应用于多种多样的应用,从网站框架到科学计算。
- 非常简单的接口与其他语言交互,特别是C和C++
- 稍后会介绍一些语言的其他特性。例如Python是面向对象的语言,包含动态类型(一个变量可以在程序过程中,可以包含不同的对象类型)。
Python的特有特性的更多信息,请见:http://www.python.org/about/
1. 参考资料
注意 你应该学习Python3,而不是Python2的语法。后者自2020年起已经停止更新了。
2. Hello World!
启动IPython Shell(一个增强的Python交互Shell):
- 在Linux/Mac终端中输入“ipython”,或者在Windows cmd sheell,
- 或者从菜单启动程序,如果你已经安装Anaconda等Python科学套装。
如果你的电脑上还没有安装IPython,也可以选择其他Python shells,比如在终端中输入“Python”启动纯Python shell,或者Idle(集成开发环境)解释器。但是,我们建议使用IPython Shell,因为它增强特性,特别是对于科学计算。
如果你已经启动了解释器,输入
print("Hello, world!")
接下来就会显示信息"Hello, world!"。你已经执行了你的第一条Python命令,恭喜!
你自己开始吧,输入下列命令
上面定义了a和b两个变量。注意这里在赋值前没有声明变量类型。相反,在C中,应该写为:
int a=3;
另外,变量的类型可以改变,在一个时间点它可以等于一个特定类型,在接下来的时间里,他可以等于另外的类型。b首先等于整数,但是当它被赋值为*"hello"时他变成等于字符。在Python中,整数的运算符(b=2\a)原生支持的,一些字符上的操作符例如相加和相乘也是支持的,相当于串联和重复。
3. 基础类型
3.1 数值类型
Python支持如下的数值、标量类型:
整型:
3.2 容器 Container
Python提供了许多有效的容器类型,其中存储了对象集合。
列表 List
列表是一个有序的对象集合,对象可以有多种类型。例如:
方法和面向对象编程
符号r.method() (即 r.append(3) and L.pop()) 是我们第一个关于面向对象编程的例子(OOP)。作为列表,对象r有可以以这种方式调用的方法函数。对于这篇教程不需要关于面向对象编程的更多知识,只需要理解这种符号。
发现方法:
提醒:在IPython中:tab完成 (按tab)
In [28]: r.<TAB>
r.__add__ r.__iadd__ r.__setattr__
r.__class__ r.__imul__ r.__setitem__
r.__contains__ r.__init__ r.__setslice__
r.__delattr__ r.__iter__ r.__sizeof__
r.__delitem__ r.__le__ r.__str__
r.__delslice__ r.__len__ r.__subclasshook__
r.__doc__ r.__lt__ r.append
r.__eq__ r.__mul__ r.count
r.__format__ r.__ne__ r.extend
r.__ge__ r.__new__ r.index
r.__getattribute__ r.__reduce__ r.insert
r.__getitem__ r.__reduce_ex__ r.pop
r.__getslice__ r.__repr__ r.remove
r.__gt__ r.__reversed__ r.reverse
r.__hash__ r.__rmul__ r.sort
3.3 字符串 String
不同的字符语法(单引号、双引号或三个引号):
s = 'Hello, how are you?'
s = "Hi, what's up"
s = '''Hello,
how are you''' # 三个引号可以允许字符跨行
s = """Hi,
what's up?"""
如果在字符中要是使用引号,那么应该嵌套使用,或者使用""进行转义,否则会报错。
换行的符号为 \n,tab符号是\t。
字符也是类似与列表的结合。因此,也可以使用相同的语法和规则索引和切片。
索引:
字符有许多有用的方法,比如上面的a.replace。回忆一下a.面向对象的符号,并且使用tab完成或者help(str)来搜索新的方法。
4. 更多内容
Python提供了操作的字符的高级可能性,看一下模式或格式。感兴趣的读者请参考:http://docs.python.org/library/stdtypes.html#string-methods 和 http://docs.python.org/library/string.html#new-string-formatting。
字符格式:
参考文献来自桑鸿乾老师的课件:科学计算和人工智能