前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 四大基本语法

Python 四大基本语法

作者头像
double
发布2020-02-24 20:47:29
7380
发布2020-02-24 20:47:29
举报
文章被收录于专栏:算法channel

四大基本语法

分别从变量命名规则、缩进原则、特殊关键字和特殊运算符四个方面,总结 Python 的基本语法。

命名规则

Python 的变量命名规则主要包括两条:

  • 允许包括英文、数字以及下划线(_),不能以数字开头
  • 名称区分大小写

特别说明以“下划线”开头的变量是有特殊意义的:

  • 类变量若以单下划线(_)开头,代表不能直接被访问,类似于 C# 的受保护型变量(protected),表示不能通过 import module_name 而导入。
  • 类变量若以双下划(__)开头,表示为类的私有成员,不能被导入和其他类变量访问。
  • 以双下划开头和双下划线结尾的变量是 Python 里的专用标识,有特殊的身份。

如 Python 自定义类中都包括 __init__ 和 __add__ 方法,如果不重写 __add__ 去执行两个类加法操作,程序会抛 TypeError 异常。只有重写后,程序才能正常执行加法操作。

Python 变量命名习惯一般遵守蛇形命名法(snake case):

  • 一般变量命名,book_id、book_store_count;
  • 类名首字符为大写,如 Python 内置模块 collections.abc 中的 Iterable 类、我们自定义的 Book 类等;
  • 类方法名:get_store_count();
  • 其他特殊变量,会全部大写,M_PI、MAX_VEHICLE_SPEED。

这与 Java 命名方法不同,Java 最典型的命名方法——驼峰命名法(camel case)

缩进原则

Python 最具特色的地方就是用缩进代替 Java、C++ 中的 {},缩进的层级结构表示代码的逻辑层次。

比如,自定义一个 Book 类,重写 __add__ 方法计算两类书的库存量和。

Python 的缩进方法,一般为 4 个字符。

  • 代码行 class Book(object) 与代码行 # 定义类的参数 的缩进,此处为 4 个字符;
  • 代码行 def __add__(self,book):return 所在行缩进也是 4 个字符。

通过这种层级结构,展现代码的逻辑层次。

下面代码,创建一个 Book 类:

代码语言:javascript
复制
class Book(object):
    # 定义类的参数
    def __init__(self,book_id, book_name, book_store_count):
        self.book_id = book_id
        self.book_name = book_name
        self.book_store_count = book_store_count
    # 重写加法操作
    def __add__(self,book):
        return self.book_store_count + book.book_store_count

# 创建两个 Book 类的实例:
python_intro_book = Book(1,'python入门书',100)
ml_intro_book = Book(2,'机器学习入门书',200)
# 求两本书的总销量
sales_cnt = python_intro_book + ml_intro_book
print(sales_cnt) # 300

如下是代码执行结果的演示图,打印总销量 300。结合图形,辅助大家快速理解代码。

image-20200218101020064

为了帮助新手更容易理解代码整个执行过程,专栏会配备相应的演示动画:

缩进格式、行间空行数、变量和等号空格等 Python 编码规范参考PEP8。

autopep8 包遵循 PEP8 的所有规范,安装此包,做好相关配置,便可自动实现 PEP8 制定的编码规范。

特殊关键字

Python 有 35 个关键字:

代码语言:javascript
复制
False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

自定义变量名不能与它们重复。

常用且不同于其他常用语言 C++ 和 Java 的关键字,如:

  • TrueFalse 用于表示值的真假,在 Java 中是 truefalse
  • 逻辑反操作 Python 使用 not,Java 是 !
  • None 表示空值,Java 使用 null
  • Python 两个条件同时满足使用 and,Java 是 &&
  • 两者满足其一,Python 使用 or,Java 使用 ||
  • Python 使用 elif, Java 是 else if

其他比较特殊的关键字,如:

  • del 用于删除可迭代对象中某个元素;
  • def 用于定义函数;
  • yield 用于定义生成器(generator)函数;
  • globalnonlocal 一种应用是 Python 函数式编程的闭包场景;
  • pass 一种应用是定义接口,也是 Python 语言特有的一个关键字。

这些关键字的用法,会在后续文章,更为详细的介绍。在此,先构建一个整体上的认识即可。

特殊运算符

Python 的运算符包括:

代码语言:javascript
复制
+       -       *       **      /       //      %      @
<<      >>      &       |       ^       ~       :=
<       >       <=      >=      ==      !=

大部分运算符应该被熟知,重点介绍 3 个比较特殊的://**:=

// 用于两个数值相除且向下取整,与 Python 的 math 模块中 floor 功能相似:

代码语言:javascript
复制
In [1]: 5//2
Out[1]: 2
In [2]: 5//4.5
Out[2]: 1.0

** 用于幂运算:

代码语言:javascript
复制
In [1]: 2**3
Out[1]: 8

:= 是在 2019 年,Python 3.8 版本里,刚刚才被支持的运算符,被形象地称为“海象运算符”。

代码语言:javascript
复制
n = len(a)
if n > 10:
    print(f"{n}大于10")

如果使用“海象运算符”,写法上更为精简:

代码语言:javascript
复制
if (n := len(a)) > 10:
    print(f"{n}大于10")

Python 比较运算符还支持链式比较,应用起来更加方便,比如:

代码语言:javascript
复制
i = 3
print(1 < i < 3) # False
print(1 < i <= 3) # True

另外,运算符 @ 用于装饰器功能,本专栏会深入解释它的本质,同时配备的几个相关案例,一定会帮助你学会使用装饰器。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命名规则
  • 缩进原则
  • 特殊关键字
  • 特殊运算符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档