标识符

Python 中的标识符规则与 C 中的类似,但不完全相同

  • 标识符只能由数字、字母和下划线组成,并且开头不能是数字
  • 标识符不能与保留字冲突
  • 标识符对大小写敏感
  • Python3 中,汉字也可以作为标识符,但不建议使用

标识符前后的下划线有特殊含义

  • 以单下划线开头的标识符(如 _width ),表示不能直接访问的类属性,其无法通过 from...import * 的方式导入
  • 以双下划线开头的标识符(如 __add )表示类的私有成员
  • 以双下划线作为开头和结尾的标识符(如 __init__ ),是专用标识符

保留字

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

1
2
import keyword
print(keyword.kwlist)

输出为:

1
['False', 'None', 'True', '__peg_parser__', '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']

注释

单行注释

单行注释以 # 开头

1
2
# 这是一个注释
print("Hello, World!")

多行注释

多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:

1
2
3
4
5
6
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")
1
2
3
4
5
6
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("Hello, World!")

简单输入输出

使用 input()print() 实现简单输入输出

1
2
str = input("请输入:");
print ("你输入的内容是: ", str)

注意 print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

1
2
print("Hello",end="")
print("World")

缩进

Python 的一大特色就是用缩进来标识代码结构,而不是和 C 一样使用大括号

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

1
2
3
4
if True:
print ("True")
else:
print ("False")

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

1
2
3
4
5
6
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误

同时,不要混用 Tab 和空格,虽然有时它们看起来是一样的,这会让程序无法运行

引入模块和函数

在 Python 用 import 或者 from...import 来导入相应的模块

  • 将整个模块导入,格式为: import somemodule
  • 从某个模块中导入某个函数,格式为: from somemodule import somefunction
  • 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
  • 将某个模块中的全部函数导入,格式为: from somemodule import *

变量与赋值

Python 中的变量不需要声明,但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建

在 Python 中,变量就是变量,它没有类型,我们所说的“类型”是变量所指的内存中对象的类型

给单个变量赋值

与 C 中的规则一样

1
2
3
4
5
6
7
counter = 100          # 整型变量
miles = 1000.0 # 浮点型变量
name = "HelloWorld" # 字符串

print (counter)
print (miles)
print (name)

多个变量赋值

这点跟 Golang 有异曲同工之妙

1
a, b, c = 1, 2, "HelloWorld"

基本数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个): Number(数字)、String(字符串)、Tuple(元组)

  • 可变数据(3 个): List(列表)、Dictionary(字典)、Set(集合)

这里的不可变数据说的是部分内容不可变,比如说数字只能被整体重新赋值,而没有改变其中一部分的说法

确定变量所指的对象类型

使用 type() 来查询

1
2
3
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

使用 isinstance() 来判断

1
2
3
>>> a = 111
>>> isinstance(a, int)
True

注意:isinstance()会认为子类是一种父类类型,例如boolint的子类型

判断与循环

If

1
2
3
4
5
6
if <condition_1>:
<statement_1>
elif <condition_2>:
<statement_2>
else:
<statement_3>

For

1
2
3
4
for <variable> in <sequence>:
<statements>
else:
<statements>

breakcontinuefor 中有效,else 为可选

While

1
2
3
4
while <condition>:
<statements>
else:
<statements>

breakcontinueWhile 中有效,else 为可选

一句话分多行

Python 通常是一行写完一条语句,但如果语句很长,我们可以在行末使用续行符(反斜杠\)来实现多行语句

1
2
3
total = item_one + \
item_two + \
item_three

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

1
2
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']

一行中写多句话

使用 ; 分割即可,但为什么要写在一行呢?

1
a=1;b=2;c=a+b;print(c)