Python学习准备工作

2017-02-04  本文已影响42人  DDY

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.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
"""
PythonTest3.png
多个语句构成代码组

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

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 
数据类型
#!/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"
五个标准数据类型
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 = [ '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']
#!/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)是除列表以外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 + 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

上一篇 下一篇

猜你喜欢

热点阅读