【循序渐进学Python】1. Python基础知识

1. Python 安装和配置

首先需要到 Python 的官方网站(http://www.python.org/getit/) 下载安装包,现在 Python 的发行版分为兼容之前 Python 程序的 Python 2.x 版本,和面向未来的 Python 3.x。但是二者大部分都是相同的,学习完 2.x 的版本,完全可以很容易的向 3.x 版本进行过渡,在这里使用了向下兼容的 Python 2.x 版本,当前 Python 2.x 最新版为 Python 2.7.5。

 

1.1 配置环境变量

将 Python 的安装目录添加到系统的环境变量中,在这里 Python 的默认安装路径是:C:\Python27, 按照下面的方法将 Python 所在路径添加到环境变量中:

我的电脑 --> 属性 --> 高级 --> 环境变量

Path变量的末尾添加;C:\Python27即可。( 不同变量使用;符号分隔 )。在 CMD 中输入Python,出现以下字符即表示添加环境变量成功:

 

1.2 使用 Python 交互解释器

通过使用交互解释器 (开始菜单 --> 所有程序 --> Python 文件夹中可以看到) 我们可 以很快且直观的检验 Python 的语句的使用方法,不过在交互解释器中的所有输入会在它退出的时候被清空,所以如果想真正把代码保存起来还是把它保存为一 个纯文本文件。在 Windows 中安装 Python 之后,交互解释器以两种方式存在,二者没有太大的区别,只是显示的方式不一样:有基于 Python GUI 的 IDLE,和基于 Windows 命令行的。推荐还是使用 IDEL,因为相对于命令行的交互解释器来说,IDLE 更友好,我们在 IDEL 中输出一个 Hello,world:

 Python 交互解释器对于我们学习初学 Python 是很有裨益的,更多交互解释器的知识点可以参考这里:http://www.pythondoc.com/pythontutorial27/interpreter.html

 

1.3 安装 Sublime Text 2

在这里使用的代码编辑器是 Sublime Text 2(http://www.sublimetext.com/),Sublime Text 本身就是用 Python 写的,在配置 Python 的环境变量之后我们可以直接在 Sublime Text 中编写 Python 代码,输入Ctrl + B执行代码:

 

2. 输入非 ASCII 字符和代码注释

如果代码中出现了非 ASCII 字符,需在源代码中 (或者交互解释器) 第一行添加使用字符声明:

# -- coding: utf-8 --

 

在 Python 代码文件中使用 #号来注释代码。

# 注释        

 

3. 数值类型

在 Python 中默认使用整数进行运算,例如:

# 输出: 0
print 1/2 

 

如果需要使用浮点数,只需把计算的数加上小数点即可:

# 输出: 0.5
print 1.0/2.0 

 

3.1 长整型数

在 Python 中普通整数的数值不能超过 32 位 (即最大不能超过:2147,483,647),如果需要使用更大的数值,可以使用长整型数,长整型数的表示方法很简单,只需要在普通整数后面加一个大写的 L 即可 (小写也亦可,不过看起来像是一个 1)。如下:

2147483648L

 

3.2 十六进制和八进制

十六进制数只需要加上前缀:0x:

# 输出: 10
print 0xA

 

前缀加上0表示八进制数:

# 输出: 9
print 011

 

4. 字符串

转义序列:

在 Python 中字符串使用单引号或双引号括起来,如果字符串内部出现了需要转义的字符 ( 例如:"'本身 ), 只需要在字符前添加转义字符:\即可

# 输出:" 
print "\""

 

常用转义字符:

  • \b 退格
  • \f 走纸换页
  • \n 换行
  • \r 回车

 

4.1 拼接字符串

在 Python 中可以简单的使用+号来拼接字符串,如:

# 输出:xy
print "x"+"y"

 

4.2 长字符串

如果一个很长跨多行的字符串可以使用三个引号代替普通引号来表示这个长字符串,

"""长字符串内容"""

 

4.3 原始字符串

在普通字符串中使用转义字符,那么转义字符将会被转义,例如:换行符\n

# -- coding: utf-8 --

# 输出:
#
hello,
#
world!
print "hello, \nworld!"

 

但有时候我们如果不想对字符串中的字符进行转义话,就可以使用原始字符串了,原始字符串不会把反斜线 (\) 当作特殊字符来处理,如:

# output: hello, \nworld!
print r"hello, \nworld!"

 

限制:元素字符串结尾不能是反斜线,因为这样的话 Python 就不知道该字符串是否结束了

 

如果想在原始字符串后面加上一个反斜杠的话可以这样:

#output: hello, world\
print r"hello, world"+"\\" 

 

4.4 格式化字符串

Python 中格式化输出字符串使用的是 % 运算符 (使用 %% 输出 % 本身),最常用字符串格式转换类型(字符串) 如下:

格式 描述
%s 字符串 (使用 str 转换任意 Python 对象)
%r 字符串 (使用 repr 转换任意 Python 对象)

示例如下:

1 # -- coding: utf-8 --
2 # 输出:'1.125'
3 print '%r' %'1.125' 
4 
5 # 输出:A/B/C/D
6 print "A/B/%s/%s" %('C','D')

 

5. 获取用户输入

在 Python 中我们使用input函数和raw_input函数获取用户输入,如:

name = input("Wath is your name?")
print "hello,%s!" %name

 

将这段代码保存为hello_input.py然后在控制台中跳转到该文件所在目录输入:python hello_input.py来运行着段代码,从控制台输入:'sunshine', 可以看到如下效果:

可以看到,输入的是 'sunshine'(带单引号),如果没有带引号那么,会抛出一个异常:sunshine 没有被定义!这是为什么呢?这是因为input函数会假设用户输入的都是合法的 Python 表达式。这时候我们可以使用raw_input函数来解决这个问题,raw_input函数会把所有输入都当作元素数据,将其放入字符串中:

name = raw_input("Wath is your name?")
print "hello,%s!" %name

 

运行效果如下:

input 和 raw_input 的关系

在 python 的源码中,input 其实是用过 raw_input 来实现的,代码如下:

    def input(prompt):
        return (eval(raw_input(prompt)))

 

6. 模块

在 Python 中,模块是最高级别的程序组织单元,模块将程序代码和数据封装起来以便于重用。在导入一个模块后,就可以直接使用该模块定义的函数了了,例如:下面主要用来进行数学计算的 math 模块:

import math
# 输出: 31.0 
print math.floor(31.6)

 

参考资料 & 进一步阅读

《Python 基础教程》

Learn Python The Hard Way, 2nd Edition

http://www.pythondoc.com/pythontutorial27/index.html