首页 > 编程语言 >1.Python3 基础语法

1.Python3 基础语法

时间:2024-03-05 13:47:50浏览次数:35  
标签:None 变量 Python self 基础 语法 class Python3 函数

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.标识符

  1. 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  2. 标识符不能和 Python 中的保留字相同。
  3. Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
  4. 在 Python 中,标识符中的字母是严格区分大小写的。
  5. Python 语言中,以下划线开头的标识符有特殊含义,例如:
    • 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
    • 以双下划线开头的标识符(如__add)表示类的私有成员;
    • 以双下划线作为开头和结尾的标识符(如 __ init__),是专用标识符。
  6. 在 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

相关文章

  • 3.Python3 流程控制
    Python3流程控制和其它编程语言一样,按照执行流程划分,Python程序也可分为3大结构,即顺序结构、选择(分支)结构和循环结构:Python顺序结构就是让程序按照从头到尾的顺序依次执行每一条Python代码,不重复执行任何代码,也不跳过任何代码。Python选择结构也称分支结构,就是让程序......
  • 2.Python3 基本数据类型
    Python3基本数据类型python是弱类型语言,弱类型语言有两个特点:变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。弱类型并不等于没有类型!弱类型是说在书写......
  • 7.Python3 函数
    Python3函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。1.函数定义Python定义函数使用def关键字,一般格......
  • 6.Python3 迭代器与生成器
    Python3迭代器与生成器1.迭代器迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器迭代器的定义字面意思:更新迭代,器:工具:可更新迭代的工具。专业角度:内部含有'__iter__'方法并且含......
  • 5.Python3 推导式
    Python3推导式推导式(comprehensions),又称解析式,是Python中常见的语法糖。推导式可以从一个数据序列构建另一个新的数据序列,常用于数据处理场景。表达式for迭代变量in可迭代对象[if条件表达式]其中if条件判断根据需要,可有可无。Python支持各种数据结构的推导式:列......
  • 4.Python3 运算符
    Python3运算符1.Python算术运算符以下假设变量a=10,变量b=21:运算符描述实例+加-两个对象相加a+b输出结果31-减-得到负数或是一个数减去另一个数a-b输出结果-11*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果210/除......
  • 9.Python3 面向对象
    Python3面向对象1.类定义Python中定义一个类使用class关键字实现,其基本语法格式如下:classClassName:<statement-1>...<statement-N>类实例化后,可以使用其属性,创建一个类之后,可以通过类名访问其属性。无论是属性还是方法,对于类来说,它们都不是......
  • 8.Python3 模块和包
    Python3模块和包为此Python提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法......
  • dart特殊符号语法(一)
    许久没有写博客。浏览以往的博客,是那么稚嫩。就让它们当成成长的照片吧。重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己;另一方面希望有帮助于人。由于个人能力,认知有限,如读者发现有纰缪之处,希望不吝指教。今天分享下dart语言中的特殊符号语法使用。?(问号)(Quest......
  • JAVA基础--JavaDos生成文档
    JavaDos生成文档法一:通过命令行生成信息输入(例子)/***@authorAAA*@version1.0*@since1.8*/publicclassDos{Stringname;/***@authorAAA*@paramname*@return*@throwsException*///方法前输入/**则会自......