Python基础语法

python内部执行流程

编码

默认情况下,Python3源码文件以UTF-8编码,所有字符串都是Unicode字符串。当然也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 –*-

1. ASCII

python2的解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII)

ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(1个字节),即:2**8=256.所有ASCII码最多只能表示256个符号

image

image

2. Unicode

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode规定所有的字符和符号最少由16位来表示(2个字节),即:2**16=65536

3.UTF-8

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到4个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。它不在使用最少两个字节,而是对所有的字符和符号进行分类:ASCII码中的内容使用1个字节、欧洲字符使用2个字节、东亚字符使用3个字节……

标识符

在编程语言中,标识符就是程序员自己规定的具有特殊含义的词,比如:类名、函数名、属性名、变量名等。

  • 第一个字符必须是字母表中的字符或者下划线“_”
  • 标识符的其他部分可以由字母、数字和下滑线组成
  • 标识符区分大小写
  • python3中,非ASCII标识符也是允许的

以下划线开头的标识符具有特殊意义。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from *** import ***”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里的特殊方法专用的标识,如__int__()代表类的构造函数。

python保留字

保留字即关键字,不能把保留字用作任何标识符名称。Python的标准库提供了一个keyword module,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

注释

Python中的单行注释以#开头

 

#!/usr/bin/env python
# coding=utf-8

# 第一行注释
print("hello world!")  # 第一行注释
"""
多行
注释
"""
'''
多行
注释
'''

行与缩进

python中通过使用缩进来表示代码块,不需要使用大括号“{}”,缩进的空格数是可变的,但是同一个代码块语句的缩进空格数必须一致。

if True:
    print("True")
else:
    print("False")

如果缩进不一致,会导致运行错误

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
# 文件名:test.py

if True:
    print("Answer")
    print("True")
else:
    print("Answer")
    # 没有严格缩进,在执行时保持
       print("False")
le "/****/****", line 
10

    print("False")
    ^
IndentationError: unexpected indent

单语句多行

python通常一行写完一个语句,但如果语句很长,可以使用反斜杠“\”来实现多行语句,例如:

A = "a"
B = "b"
C = "c"
abc = A + \
    B + \
    C

在”[]”、”{}”、”()”中的不需要使用反斜杠“\”,例如:

A = {"a", "b",
     "c"}
B = """keep
live"""
C = '''home
work'''

数据类型

  • 数字
  • 布尔值
  • 字符串
  • 列表
  • 字典
  • 元组

空行

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

注:空行也是程序代码的一部分

多语句单行

python中可以在同一行中使用多条语句,语句之间使用分号“;”分隔。

如下实例:

#!/usr/bin/python3

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

多个语句构成代码组

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

如下实例:

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

.pyc文件

执行Python代码时,如果导入了其他的.py文件,那么在执行过程中会自动生成一个与其同名的.pyc文件,该文件就是python解释器编译之后产生的字节码

注:代码经过编译可以产生字节码,字节码通过反编译也可以得到代码

posted @ 2016-07-14 17:38  付建功  阅读(879)  评论(1编辑  收藏  举报