Python 2 基础语法

任何事物都有它自己的运行法则,Python 也不例外

本章节我们就来学习 Python 最基本的语法规则

交互式编程

Python 提供了一个交互式解释器用来简化 Python 的学习和演示

通过交互式解释器,我们可以不用创建 Python 脚本文件

启动 Python 解释器只要在命令行里输入 python 就可以了

$ python
Python 2.7.14 (default, Jan 14 2018, 15:19:08) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

如果你的系统是 Windows,那么还安装了 Python IDLE

可以在 >>> 输入提示符后面中输入以下代码,然后按 Enter 键查看运行效果

print "Hello, Python!"

输出结果为

接下来的教程,如果你看到了 >>> 提示符,则说明是在交互式命令行下运行的

Python 文件扩展名

Python 文件默认的扩展名是 .py

脚本式编程

脚本式编程就是将代码放到一个文件里,然后使用命令行 python filename.py 来运行 Python 代码

首先在当前目录下创建一个文件 hello.py,输入以下内容

print "Hello, Python";

然后使用以下命令运行程序

$ python hello.py

运行结果如下

Hello, Python

直接运行 hello.py

让我们尝试另一种方式来执行 Python 脚本

修改 hello.py 文件

#!/usr/bin/python

print "Hello, Python";

使用以下命令执行脚本

$ chmod +x hello.py     # 脚本文件添加可执行权限
$ ./hello.py

运行结果如下

Hello, Python!

Python 标识符

Python 的标识符由 字母、数字、下划线(_) 组成,不能以数字开头

  1. Python 中的标识符是区分大小写的

  2. 以下划线开头的标识符是有特殊意义的

    1. 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import而导入
    2. 以双下划线开头的 __foo 代表类的私有成员
    3. 以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__()代表类的构造函数

Python 语句分隔符

Python 每条语句结尾的分号 (;) 不是强制需要的,因为 Python 默认以换行符(新行) 分隔每条语句

如果不是特殊情况,请删掉分号,这样才 pythonic

甚至我们推荐,请忘记 Python 中的分号(;)

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print 'hello'
print '简单教程'

输出

hello
简单教程

如果要同一行显示多条语句、方法,可以是用分号 (;) 分开

>>> print 'Hello';print 'World';
Hello
World

可以这么写,但我们不推荐你这么做

Python 保留字符

保留字不能用做函数名、变量名,或任何其它标识符名称,不然会发生意想不到的结果

所有 Python 的保留字只包含小写字母

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

行和缩进

Python 语言与其它语言最大的区别就是

Python 的代码块不使用大括号 {} 来控制类,函数以及其它逻辑判断 python 最具特色的就是用缩进来写模块

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行

缩进造成的错误,应该名列 Python 错误榜第一,君不见一不小心就 IndentationError

一般情况下设置为 4 个空格,因为各个平台和编辑器的差异,建议设置一个制表符设置为 4 个空格

if True:
    print "True"
else:
  print "False" #错误,缩进不一致

以下代码将会执行错误

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# filename:demo.py

 if True:
    print "Answer"
    print "True"
else:
    print "Answer"
  print "False" # 没有严格缩进,在执行时会报错

运行上面的 Python 代码,会触发 IndentationError 错误

$ python main.py  
  File "main.py", line 5
    if True:
    ^
IndentationError: unexpected indent

IndentationError: unexpected indent 错误是 Python 编译器是在告诉你 "Hi,你的文件里格式不对了,可能是 tab 和空格没对齐的问题"

Python 对格式要求非常严格,很多编译错误都是由于缩进不当引起的

如果是 IndentationError: unindent does not match any outer indentation level 错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

多行语句

一般情况下,Python 中的语句都是以换行符为语句的结束符

如果语句太长,一行放不下 (超出了屏幕),那么可以用反斜杠 ( \ ) 划分为多行

greeting = "Hello " + \
        "Python" + \
        "Nice to meet you"

如果语句中包含 [], {} 或 () 等括号就不需要使用多行连接符

lang = ['Python', 'PHP', 'Perl',
        'JavaScript', 'C++']

千万不能把完整的字面量拆分成多行,不然结果就不得而知了

pi = 3.
1415926
print pi 

运行结果

$ python main.py
3.0

Python 引号

Python 可以使用引号( ' )、双引号( " )、三引号( '''""" ) 来表示字符串

引号的开始与结束必须的相同类型的

三引号可以由多行组成,是编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释

word = 'word'
sentence = "这是一个句子"
paragraph = """这是一个段落
包含了多个语句"""


'''这就是
一个
注释语句了
'''

多行注释其实就是一个字符串,因为没有赋值给任何一个变量,所以运行的结果就被丢弃了

Python 注释

Python 有两种注释方法:'#' 开头 和 三个引号的字符串字面量

# 号开头的为单行注释

注释可以在语句或表达式行末

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# file:main.py

# 这是一个注释
print "Hello, Python";  # 第二个注释

运行结果

Hello, Python

python 中多行注释使用三个单引号(''')或三个双引号(""")

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# filename: demo.py


'''
这是多行注释,使用单引号
这是多行注释,使用单引号
这是多行注释,使用单引号
'''

"""
这是多行注释,使用双引号
这是多行注释,使用双引号
这是多行注释,使用双引号
"""

Python 空白行

如果一行只包含空格,制表符,回车换行符,那么我们称该行为空白行

空白行不是 Python 语句的一部分,主要用于分隔两段不同功能或含义的代码

比如函数之间或类的方法之间用空行分隔,表示一段新的代码的开始

类和函数入口之间也用一行空行分隔,以突出函数入口的开始

空行与代码缩进不同,空行并不是 Python 语法的一部分

书写时可以不插入空白行,Python 解释器运行也不会出错

空行也是程序代码的一部分,用于增加代码可读性

读取用户输入

可以使用 raw_input([prompt]) 提示和读取用户的输入,prompt 参数为提示语句

默认情况下读取到回车换行符就停止读取

#!/usr/bin/python

raw_input("\n\nsay some words:")

运行结果如下

$ python main.py 


say some words:Nice to meet you

如果要输入换行符,需要使用 '\r\n' 字符串

print 输出

前面我们已经使用过无数次的 print 语句

print 用于输出数据到标准输出( 一般为屏幕 )

print 默认是会添加换行符的,如果要不换行,那么需要语句末尾添加逗号 ( , )

#!/usr/bin/python
# -*- coding: UTF-8 -*-

x="Hello"
y="World"

# 换行输出
print x
print y

print '---------'

# 不换行输出
# 
print x,
print y,

运行以上 Python 代码,输出结果如下

Hello
World
---------
Hello World

逗号(,) 可以理解为,等等我还有话要说,你 (换行符) 别插嘴...

代码块

一般情况下,我们把缩进相同的语句称之为一个代码块

if 、while 、def 和 class 这样的复合语句,首行以关键字开始,以冒号( : )结束, 该行之后的一行或多行代码构成代码块

有时候我们也会把首行及后面的代码块称为一个子句 (clause ) ,例如

if expression : 
   statement(s) 
elif expression :  
   statement(s)  
else :  
   statement(s)

命令行参数

我们已经知道了可以在命令行中输入 python 来启动 Python 交互式 Shell

其实还可以在输入 python 的同时附加一些参数来定制 python 和查看 Python 一些信息,比如

$ python --version
Python 2.7.10

用于查看 Python 的版本

python -h 

用于显示 python 命令的帮助信息

$ python -h                           
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-B     : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser; also PYTHONDEBUG=x
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
-h     : print this help message and exit (also --help)
-i     : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x

使用 python 命令运行脚本时还可以接收一些命令行参数,比如我们经常看到的安装第三方包的命令

python setup.py build 
python setup.py install

其中的 buildinstall 就是命令行参数了

更多命令行参数的知识,可以访问我们的 Python 命令行参数

Python2 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.