一门语言,无论是中文英文,还是编程语言,都应该有一定的格式,遵守一定的规则。好的格式能够让人更好的理解语句所表达的意义。
先看一个脚本的例子
# encoding=utf-8
import math # 导入模块 <- 这是注释
value = 100 # 数字赋值
def test_func(): # 定义函数
str001 = "你好世界" # 字符赋值
a = math.sqrt(value) # 调用 math 包里的开平方函数
print(a, "----", str001) # 在控制台打印一些内容
test_func() # 调用函数
用第二节的方法运行这个脚本,可以得到下面的输出
10.0 ---- 你好世界
import
首先看第二行import math
,import
语句是用来导入一个模块math
,这个模块是python下载的时候就自带的,其中定义了基本的数学函数,比如上面用到的sqrt
函数,就是开平方的函数。模块是python的一大支柱,之后会详细讲。
注释
值得注意的是后面用#
符号隔开了一段解释的话,这成为称为的注释。程序语言毕竟是很机器化,不便于人的理解。如果你写一个大程序,一天写不好,你今天写了一部分,就在关键的地方写一些注释,第二天回来,就知道自己写了什么,不用从头看一遍。同样,别人看你的代码,有注释也会很好理解。
python的注释就是用#
符号,一行之内#
符号后面的就是注释。python解释器解释脚本的时候,遇到注释就跳过。所以注释只是给人看的,对于程序没有任何意义,你也可以不写注释。
第一行的注释有点特殊,它指定了脚本文件的编码。由于python默认就是utf-8
编码,这里的encoding=utf-8
指定编码是utf-8
也没有什么作用。你也可以指定encoding:gbk
,编码是gbk
,等于号和冒号没有区别。
如果你是linux用户,一般会在最开头加上#!/usr/bin/env python3
,不过这应该是bash
的要求,不写也可以用python3 script.py
来执行。
缩进
通常编程语言的缩进是为了美观,但是python的缩进是强制要求。所谓的缩进,就是一行的开头空一定的位置,这有利于显示语句之间的层次。而python则强制要求使用缩进来表示同一个层次的语句。比如,上面定义的test_func
函数中,函数看上去并没有结束的标志,实际上是通过缩进判断函数的结束。如果把上面脚本的a = math.sqrt(value)
的一行前面多加一个空格。运行程序就会出现下面的报错
File "test.py", line 8
a = math.sqrt(value) # 调用 math 包里的开平方函数
^
IndentationError: unexpected indent
其中IndentationError
就是缩进错误的意思。
建议缩进是以4个空格为一个层次,你可以使用制表符,但是不建议。Notepad++
可以设置制表符自动转化为4个空格,请自行百度。你在网上看到的python代码,复制到你的脚本里的时候,也要注意缩进一致。如果你采用制表符为缩进,网上的代码是4个空格缩进,虽然在Notepad++
或者其他编辑器里面,看上去是对齐了的,但是还是会有缩进错误,这一点要尤其注意。
python标识符
所谓标识符,可以简单的理解可以作为变量名的东西。函数名等其他的各种对象都需要有名字,标识符就是可以作为名字的字符串。比如上面的value=100
,str001="你好世界"
,其中value
和str001
就是标识符。
一般的语言,通常都是如下规则
- 第一个字符是英文字母或者下划线
_
; - 其他部分由字母或者下划线或者数字组成;
- 大小写敏感(也就是
Name
和name
是不同的标识符)
对于python3,可以使用非ASCII
标识符,包括使用中文,比如
变量1 = 100
β = "wtf"
保留字
所谓保留字,就是用于表示python语法规则的字符串,是不能用作变量名的。比如前面用到的import
,def
,还有后面要学到的表示逻辑的if
,else
等。可以在交互式环境下这样查看pyhton保留字
>>> 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']
多行和一行多句
写代码为了看起来不费力,往往一行代码字符数不会太多,如果一行要写很多东西,可以使用\
续行,比如
a = "this is first line" + \
"这是第二行"
续行不需要缩进对齐,但是为了美观,还是建议对其。
python一行只能写一句话,如果想要在一行写多个语句,需要用;
a = 100; b = "str"
注意,对于学过c/c++
的同学,加分号是习惯,而c/c++
中可以用分号分隔一行多句,有的时候会用逗号来分隔一行多句,但是在python中这是错误的,python的逗号默认创建元组,这在后面会提到。所以一行多句一定只能用分号,并且一行多句也不建议使用,多数情况下这并不美观