27 12 2019

前言

上一篇文章我们简单的介绍了 Python,本文我们来了解下 Python 的基础语法,帮助我们更好的学习 Python。

基础语法

编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
如果不使用默认编码,要声明文件所使用的编码,文件的 第一 行要写成特殊的注释。语法如下所示:

# -*- coding: encoding -*-

如要声明使用 Windows-1252 编码:

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

关于 第一行 规则的一种例外情况是,源码以 UNIX “shebang” 行 开头。这种情况下,编码声明就要写在文件的第二行。例如:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

标识符

标识符是电脑语言中允许作为名字的有效字符串集合。其中,有一部分是关键字,构成语言的标识符。这样的标识符是不能做它用的标识符的,否则会引起语法错误(SyntaxError 异常)。

合法的 Python 标识符,需要遵守如下规定:

  • 第一个字符必须是字母或下划线(_)
  • 剩下的字符可以是字母和数字或下划线
  • 大小写敏感
  • 不能是 Python 的关键字

Python 关键字

Python的标准库提供了一个keyword module,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

关键字不能用作任何标识符的名称

注释

单行注释以 # 开头,实例如下:

# 第一个注释
print("hello, world") # 第二个注释

执行输出结果为:

hello, world

多行注释用多个 #,实例如下:

# 第一个注释
# 第二个注释
print("hello, world")

执行输出结果为:

hello, world

缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号”{}”。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

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

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

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

错误如下:

File "/Users/charlie/git/Python3.8/pythonDemo/base.py", line 22
    print("False")
                 ^
IndentationError: unindent does not match any outer indentation level

Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。

多行语句

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

total = item_one + \
        item_two + \
        item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:

items = ['one', 'two', 'three',
        'four', 'five']

空格和空行

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

书写时不插入空格或者空行,Python 解释器运行也不会出错。但是空格或者空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

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

字符串

引号

python 中使用单引号和双引号来指定单行字符串,用法相同;使用三引号来指定多行字符串。示例如下:

str1 = '字符串一'
str2 = "字符串二"
str3 = """字符串三,
可以由多行组成"""

转义符

python 中转义符使用\,如要输出一个\就需要转义:

print("\\")

自然字符串

通过在字符串前加r或R,示例如下:

print(r"\n this is a line with \n")

执行结果:

\n this is a line with \n

\n 将不再换行。

处理unicode字符串

python允许处理unicode字符串,加前缀u或U,示例如下:

print(u"this is an unicode string")

输出 print

print() 可以是一个字符串,示例如下:

print('hello, world')

也可以是多个字符串,用逗号,隔开,就可以连成一串输出:

print('I', 'love', 'you')

执行结果:

I love you  #逗号会转换为空格。

也可是数字或计算,示例如下:

print(1)
print(1 + 2)
print('1 + 2 = ',1 + 2)

执行结果:

1
3
1 + 2 = 3

python 默认输出是换行的,如果要实现不换行需要加上end参数:

print(1, end=' ')
print(2, end=' ')

小结

这篇文章学习了 Python 的基础语法特点,帮助我们在后面开发过程中,不会因这些小问题而使程序运行异常。

示例源码

base.py

延伸阅读
  1. Python 3.8 (二):python 基础语法
  2. Python 3.8 (三):变量与数据类型
  3. Python 3.8 (一):python 入门
  4. Python 3.8 (四):运算符
发表评论