Python学习准备工作

Python官网:http://www.python.org/
Python文档下载地址:www.python.org/doc/

Unix & Linux 平台安装 Python

1.访问http://www.python.org/download/下载
2.如果需要自定义一些选项修改Modules/Setup
3.执行 ./configure 脚本
4.make
5.make install

执行完后,Python会安装在 /usr/local/bin目录中,Python库安装在/usr/local/lib/pythonXX,XX为你使用的Python的版本号。

中文编码

3.0版本前在文件开头加入 # -- coding: UTF-8 -- 或 #coding=utf-8。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "你好,世界";
编程方式
  • 交互式编程

终端输入python即可开启交互式编程

Python学习准备工作_第1张图片
Python.png
  • 脚本式编程

Python文件将以.py为扩展名
test1.py

#coding=UTF-8
print "hello world ,你好 世界"

终端运行

python test1.py
PythonTest1.png

加上路径执行./

test2.py

#!/usr/bin/python
#coding=UTF-8
print "hello world ,你好 世界"

终端执行

./test2.py
PythonTest2.png
标识符

在python里,标识符有字母、数字、下划线组成,但不能以数字开头,并且区分大小写。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。

行和缩进
  • 代码模块

学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行

  • 多行书写
total = item_one + \
        item_two + \
        item_three

语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']
  • 空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。

  • 同一行中书写多条语句
import sys; x = 'RainDou DDY'; sys.stdout.write(x + '\n')
引号

Python 接收单引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释

word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
注释
  • 单行注释

Python中用# 作单行注释

  • 多行注释

Python用三个单引号(''')或三个双引号(""")作多行注释。

#!/usr/bin/python
#coding=UTF-8
# 第一个注释:test3.py

print "hello world ,你好 世界" # 第二个注释

'''
多行注释1
多行注释2
'''

"""
多行注释3
多行注释4
"""
Python学习准备工作_第2张图片
PythonTest3.png
多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 
数据类型
  • Python不需要类型声明,但必须赋值
#!/usr/bin/python
# -*- coding: UTF-8 -*-

counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串

print counter
print miles
print name
  • 多变量赋值
a = b = 1
c, d, e= 1, 2, "john"
五个标准数据类型
  • Numbers(数字)
    Python支持四种不同的数字类型:

  • int(有符号整型)

  • long(长整型[也可以代表八进制和十六进制])

  • float(浮点型)

  • complex(复数)

  • String(字符串)
    字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1

  • 从右到左索引默认-1开始的,最大范围是字符串开头
    变量[头下标:尾下标]截取子字符串,不包括上边界
    加号(+)是字符串连接运算符,星号(*)是重复操作

s1 = 'ilovepython'
s2 = s1[1:5] # s2 = 'love'

str = 'HelloWorld!'

print str           # 输出完整字符串:HelloWorld!
print str[0]        # 输出字符串中的第一个字符:H
print str[2:5]      # 输出字符串中第三个至第五个之间的字符串:llo
print str[2:]       # 输出从第三个字符开始的字符串:lloWorld!
print str * 2       # 输出字符串两次:HelloWorld!HelloWorld!
print str + "TEST"  # 输出连接的字符串:HelloWorld!TEST
  • List(列表)
    List(列表)是Python中使用最频繁的数据类型。
    列表用[ ]标识。是python最通用的复合数据类型。
    列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)
    列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
    加号(+)是列表连接运算符,星号(*)是重复操作
list = [ 'RainDou', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list               # 输出完整列表
print list[0]            # 输出列表的第一个元素
print list[1:3]          # 输出第二个至第三个的元素 
print list[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2       # 输出列表两次
print list + tinylist    # 打印组合的列表

输出

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
  • Tuple(元组)
    元组是另一个数据类型,类似于List(列表)。
    元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple               # 输出完整元组
print tuple[0]            # 输出元组的第一个元素
print tuple[1:3]          # 输出第二个至第三个的元素 
print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2       # 输出元组两次
print tuple + tinytuple   # 打印组合的元组

输出

('runoob', 786, 2.23, 'john', 70.2)
runoob
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000    # 元组中是非法应用
list[2] = 1000     # 列表中是合法应用
  • Dictionary(字典)

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
 
print dict['one']          # 输出键为'one' 的值
print dict[2]              # 输出键为 2 的值
print tinydict             # 输出完整的字典
print tinydict.keys()      # 输出所有键
print tinydict.values()    # 输出所有值

输出

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
  • 数据类型转换
int(x [,base]) 将x转换为一个整数
long(x [,base] ) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
运算符
  • 算数运算符
    以下假设变量a为10,变量b为20:
+ a + b 输出结果 30
- a - b 输出结果 -10
* a * b 输出结果 200
/ b / a 输出结果 2
% b % a 输出结果 0
** a**b 为10的20次方
// 取整除(返回商的整数部分) 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
  • 比较运算符

以下假设变量a为10,变量b为20:

| == | 等于 | 比较对象是否相等 | (a == b) 返回 False |
|:------:|:------:|:------:|
| != | 不等于 | 比较两个对象是否不相等 | (a != b) 返回 true |
| <> | 不等于 | 比较两个对象是否不相等 | (a <> b) 返回 true。3.0后移除 |
| > | 大于 | 返回x是否大于y | (a > b) 返回 False |
| < | 小于 | 返回x是否小于y | (a < b) 返回 true |
| >= | 大于等于 | 返回x是否大于等于y | (a >= b) 返回 False |
| <= | 小于等于 | 返回x是否小于等于y | (a <= b) 返回 true |

  • 赋值运算符
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
  • 位运算符
a = 0011 1100 b = 0000 1101
& 位与 a&b = 0000 1100
| 位或 a | b = 0011 1101
^ 位异或 a^b = 0011 0001
~ 位取反 ~a = 1100 0011
<< 左移 a<<1 = 0111 1000
>> 右移 a>>1 = 0001 1110
  • 逻辑运算符
and 布尔"与" (a and b) 返回 20
or 布尔"或" (a or b) 返回 10
not 布尔"非" not(a and b) 返回 False
  • 成员运算符

包括字符串,列表或元组等

in 在指定序列中找到值返回True,否则返回False
not in 在指定序列中没有找到值返回True,否则返回False
a = 10
b = 20
list = [1, 2, 3, 4, 10];

if (a in list) :
        print ("a=10 在list中")
else:
        print ("a=20不在list中")


if (b in list) :
        print ("b=20 在list中")
else :
        print ("b=20不在list中")

运行结果

a=10 在list中
b=20不在list中
  • 身份运算符

身份运算符用于比较两个对象的存储单元

is 判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not 判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
c = 20
d = 20
e = 30;

if (c is d) :
        print ("c 和 d 有相同的标识")
else :
        print ("c 和 d 没相同的标识")

if (id(c) is not id(d)) :
        print ("c 和 d 有相同的标识")
else :
        print ("c 和 d 没相同的标识")

if (d is e) :
        print ("d 和 e 有相同的标识")
else :
        print ("d 和 e 没相同的标识")   

运行结果

c 和 d 有相同的标识
c 和 d 有相同的标识
d 和 e 没相同的标识
  • 运算符优先级
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

http://www.runoob.com/python/python-install.html

你可能感兴趣的:(Python学习准备工作)