赞
踩
02
大家好,我是营长,上期营长分享了“详解Pythonl两大特性”,这期营长接着为大家分享Python相关内容。
本期分享内容:Python四大基本语法
这期分享营长邀请的是zglg (某大厂算法工程师)和Alicia (美国顶尖学府 AI 博士后)两位为我们分享Python全栈精通之路。
作者有话说
很多人问为什么要写这个专栏?因为我也有过那段“自学” Python 的迷茫时期,所以深知一个好的系统学习规划和老师讲解,是能够达到事半功倍省下我们程序员更多青春的关键。
别的老师在介绍知识点时都会说“这东西是什么”,但我不想这样做。
我觉得“为什么这东西是这样”或者“在什么场景适应什么需求有什么好处才会用这东西”,反而更能让你们对知识本身会有更深刻的理解。
02
Python的四大基本语法
四大基本语法主要从变量命名基本规则,等方面总结 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 个字符;通过这种层级结构展现出代码的逻辑层次。
- 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
-
-
- store_count = Book(1,'python入门书',100) + Book(2,'机器学习入门书',200)
- print(store_count) # 300
缩进格式,行间空行数,变量和等号空格等 Python编码规范参考PEP8. autopep8包遵循PEP8的所有规范,安装此包后可自动实现遵循编码规范,推荐使用。
特殊关键字
Python 有 35 个关键字:
- 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 的关键字,如:
True和False 用于表示值的真假,在Java中true和flase;
逻辑反操作 Python 使用not而 Java 是!;
None表示空值,如数据库的字段取值为空,Java中null;
Python 两个条件同时满足使用 and而 Java 是&&;
两者满足其一,Python 使用or而Java使用||;
Python 使用elif而 Java 是else if;
其他比较特殊的关键字,如:
del用于删除可迭代对象中某个元素;
def用于定义函数;
带yield用于定义生成器(generator)函数;
global和nonlocal一种应用是 Python 函数式编程的闭包场景;
pass一种应用是 Python 中接口定义,也是 Python 语言特有的一个关键字。
这些关键字的用法会在后续文章中更为详细的介绍,在此先只要对它们形成一个整体上的认识就行。
特殊运算符
Python 的运算符包括:
- + - * ** / // % @
- << >> & | ^ ~ :=
- < > <= >= == !=
大部分运算符应该被熟知,重点介绍 3 个比较特殊的://, **, :=
//用于两个数值相除且向下取整,与 Python 的math模块中floor功能一致:
- In [1]: 5//2
- Out[1]: 2
- In [2]: 5//4.5
- Out[2]: 1.0
**用于幂运算:
- In [1]: 2**3
- Out[1]: 8
:=是 2019 年 Python3.8 版本里刚刚才支持的运算符,形象的称为海象运算符.
- n = len(a)
- if n > 10:
- print(f"{n}大于10")
如果使用海象运算符,写法上更为精简:
- if (n := len(a)) > 10:
- print(f"{n}大于10")
Python 比较运算符还支持链式比较,应用起来非常方便,比如:
- i = 3
- print(1< i < 3) # False
- print(1 < i <= 3) # True
另外,运算符 @ 用于装饰器功能,下面会介绍一种使用场景。
小结
Python 学习第一天,首先认识 Python 两大特征,动态语言、强类型,动态指代码运行时才被编译器一行一行翻译执行,强类型指被绑定一个类型后便不能修改,不能与其他类型混用。
四大基本语法,总结了 Python 的命名规则,缩进原则,特殊关键字,特殊运算符,为后面的学习打下基础。
今日内容有get吗,欢迎各位留言讨论!
下期预告:Python四大数据类型总结
以上专栏均来自CSDN GitChat专栏《Python全栈60天精通之路》,作者zglg、Alicia,专栏详情可识别下方二维码查看哦!
五一假期特惠
仅限4月30日-5月5日
限时特价 59元
识别二维码立即订阅
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。