Python3 基础语法
Python3 中文官方文档 https://docs.python.org/zh-cn/3.9/
Python 标准库https://docs.python.org/zh-cn/3.9/library/index.html
1.Python保留字
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
import keyword
print(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']
2.标识符
- 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
- 标识符不能和 Python 中的保留字相同。
- Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
- 在 Python 中,标识符中的字母是严格区分大小写的。
- Python 语言中,以下划线开头的标识符有特殊含义,例如:
- 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
- 以双下划线开头的标识符(如__add)表示类的私有成员;
- 以双下划线作为开头和结尾的标识符(如 __ init__),是专用标识符。
- 在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了.
3.注释
单行注释
Python 使用井号#
作为单行注释的符号,语法格式为:
# 注释内容
从#
开始,直到这行结束为止的所有内容都是注释
多行注释
Python 使用三个连续的单引号'''或者三个连续的双引号"""注释多行内容,具体格式如下:
'''使用 3 个单引号分别作为注释的开头和结尾可以一次性注释多行内容这里面的内容全部是注释内容'''
或者
"""使用 3 个双引号分别作为注释的开头和结尾可以一次性注释多行内容这里面的内容全部是注释内容"""
多行注释通常用来为 Python 文件、模块、类或者函数等添加版权或者功能描述信息。
4.缩进规则
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
5.内置函数
内置函数和标准库函数是不一样的。
Python 解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能就是内置函数。Python 解释器启动以后,内置函数也生效了,可以直接拿来使用。
Python 标准库相当于解释器的外部扩展,它并不会随着解释器的启动而启动,要想使用这些外部扩展,必须提前导入。Python 标准库非常庞大,包含了很多模块,要想使用某个函数,必须提前导入对应的模块,否则函数是无效的。
内置函数是解释器的一部分,它随着解释器的启动而生效;标准库函数是解释器的外部扩展,导入模块以后才能生效。一般来说,内置函数的执行效率要高于标准库函数。
Python 解释器一旦启动,所有的内置函数都生效了;而导入标准库的某个模块,只是该模块下的函数生效,并不是所有的标准库函数都生效。
内置函数的数量必须被严格控制,否则 Python 解释器会变得庞大和臃肿。一般来说,只有那些使用频繁或者和语言本身绑定比较紧密的函数,才会被提升为内置函数。
内置函数表:https://docs.python.org/zh-cn/3.9/library/functions.html
6.多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 来实现多行语句,例如:
total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠,例如:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
7.同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割,以下是一个简单的实例:
#!/usr/bin/python3
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
使用脚本执行以上代码,输出结果为:
runoob
8.多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "runoob"
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。
9.del() 函数
可以使用del语句删除一些对象引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]
您可以通过使用del语句删除单个或多个对象。例如:
del var
del var_a, var_b
10.range() 函数
如果你需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:
生成数列
for i in range(5):
print(i)
0
1
2
3
4
指定区间的值
for i in range(5,9) :
print(i)
5
6
7
8
也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
for i in range(0, 10, 3) :
print(i)
0
3
6
9
for i in range(-10, -100, -30) :
print(i)
-10
-40
-70
还可以使用 range() 函数来创建一个列表:
list(range(5))
[0, 1, 2, 3, 4]
11.None(空值)
有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。
这里的空值并不代表空对象,即 None 和 []、“” 不同:
>>> None is []
False
>>> None is ""
False
>>> type(None)
<class 'NoneType'>
None 是 NoneType 数据类型的唯一值,也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None。
除此之外,None 常用于 assert、判断以及函数无返回值的情况。 print() 函数输出数据,该函数的返回值就是 None。因为它的功能是在屏幕上显示文本,根本不需要返回任何值,所以 print() 就返回 None。
>>> spam = print('Hello!')
Hello!
>>> None == spam
True
另外,对于所有没有 return 语句的函数定义,Python 都会在末尾加上 return None,使用不带值的 return 语句(也就是只有 return 关键字本身),那么就返回 None。
12.#!/usr/bin/python3
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它。
#!/usr/bin/python3 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python3 解释器;
#!/usr/bin/env python3 这种用法是为了防止操作系统用户没有将 python3 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python3 的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python3 相当于写死了 python3 路径;
#!/usr/bin/env python3 会去环境设置寻找 python3 目录,推荐这种写法。
13. 下划线
前置单下划线:
_var,主要是用于将变量或方法定义为私有属性。它对于程序员而言是一种提示,这里的私有属性并非如java中的私有,而是一种约定俗成,想强行访问仍旧可以正常访问。
后置单下划线:
var_,主要用于将变量区别,如变量名称和关键字冲突,后面加个下划线区别开来。
前置双下划线:
__var,类中带前置双下划线的变量或方法,都会触发python解释器的名称修饰,是不能直接通过该名称去访问到的,实现了一定程度上的隔离。
前后都有双下划线:
var, 常见的有__init__()
对象构造函数,这类方法是python中的魔法方法(特殊方法),用于特殊用途。
单下划线本身:
_ 在Python REPLs如IDLE Shell中是一个特殊变量(可以表示一个临时值),它表示解释器计算的最后一个表达式的结果。
14.全局变量、实例变量、局部变量、静态变量(类变量)
全局变量:模块内、所有函数外、所有class外的变量
局部变量:函数内的变量,class的方法内且不使用self.修饰的变量
类变量:class内且不在class的方法内
实例变量:class的方法内且使用self.修饰的变量
a=1#全局变量,在模块内、在所有函数外面、在class外面
class Test():
c=3#静态变量,也可以说类属性,在class内的,但不在class的方法内的
def login(self):
b=2#局部变量,在函数内、在class的方法内(未加self修饰的)
self.d=4#实例变量,也可以说实例属性,在class的方法内的,用self修饰的变量
def __init__(self):
self.e=5
t=Test()
t.a #报错,AttributeError: 'Test' object has no attribute 'a'
t.b #报错,AttributeError: 'Test' object has no attribute 'b'
t.c
t.d #报错,AttributeError: 'Test' object has no attribute 'd',self定义的变量要在init中首次出现,否则需要调用login方法后,再输出d
t.e
输入:
a=1#全局变量,在模块内、在所有函数外面、在class外面
class Test():
c=3#静态变量,也可以说类属性,在class内的,但不在class的方法内的
def login(self):
b=2#局部变量,在函数内、在class的方法内(未加self修饰的)
self.d=4#实例变量,也可以说实例属性,在class的方法内的,用self修饰的变量.第一次出现要在init中
def __init__(self):
self.e=5#实例变量,也可以说实例属性,在class的方法内的,用self修饰的变量
t=Test()
print(a)
print(t.c,Test.c)
print(t.e)
输出:
1
3 3
5
标签:None,变量,Python,self,基础,语法,class,Python3,函数
From: https://www.cnblogs.com/littlecamel/p/18053851