嗨咯我是你们的笨蛋程序员灰南
我们这一次目标是了解基本的Python语法,介绍一些基本的编程风格,之后简要介绍一下标识符、变量和关键字。
我们也会讨论变量占用的内存是如何分配和回收的。
最后,我们会给出一个较大的Python样例程序,让你实际体验一下这些特性。无须担心,在你畅游Python的过程中有很多救生员在保护着你。
前言
为了让大家更好的理解和学习投入到Python自动化来
找到一份好的资料也是学习过程中,非常重要的一个点。你的检索能力越强,你就会越容易找到最合适你的资料。
我这边也整理了一些最新的面试题资料和Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC,源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。。
有需要的小伙伴可以戳这里免费领取可以点击这里,咱们一起进步
暗号:CSDN。
一、语句和语法
Python语句中有一些基本规则和特殊字符:井号(#)表示之后的字符为Python 注释
●换行(\n)是标准的行分隔符(通常一个语句一行)
●反斜线(\)继续上一行
●分号(﹔)将两个语句连接在一行中冒号(∶)将代码块的头和体分开
●语句(代码块)用缩进块的方式体现
●不同的缩进深度分隔不同的代码块
●Python文件以模块的形式组织
1.注释(#)
Python语句,一般使用换行分隔,也就是说一行一个语句。一行过长的语句可以使用反斜杠( \)分解成几行,如下例:
#check conditions
if (weather_is_hot == 1) and
(shark_warnings == 0) :
send_goto_beach_mesg_to_pager()
有两种例外情况一个语句不使用反斜线也可以跨行。
在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字符串也可以跨行书写。
如下例:
display a string with triple quotes
print’’'hi there,this is a long message for youthat goes over multiple lines… . you will findout soon that triple quotes in Python allows
this kind of fun! it is like a day on the beach! ’’’
#set some variables
go_surf,get_a_tan_while, boat_size, toll_money = (1, ‘windsurfing’, 40.0,-2.00)
如果要在使用反斜线换行和使用括号元素换行作一个选择,我们推荐使用括号,这样可读性会更好。
2.多个语句构成代码组(:):
缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和 class这样的复合语句,首行以关键字开始,以冒号(︰)结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
该处使用的url网络请求的数据。
3.代码组由不同的缩进分隔
我们在章节2.10中曾提到,Python使用缩进来分隔代码组。
代码的层次关系是通过同样深度的空格或制表符缩进体现的。
同一代码组的代码行必须严格左对齐(左边有同样多的空格或同样多的制表符),如果不严格遵守这个规则,同一组的代码就可能被当成另一个组,甚至会导致语法错误。
核心风格:缩进四个空格宽度,避免使用制表符
对一个初次使用空白字符作为代码块分界的人来说,
遇到的第一个问题是:缩进多大宽度才合适?两个太少,六到八个又太多,因此我们推荐使用四个空格宽度。
需要说明一点,不同的文本编辑器中制表符代表的空白宽度不一,如果你的代码要跨平台应用,或者会被不同的编辑器读写,建议你不要使用制表符。
使用空格或制表符这两种风格都得到了 Python创始人Guidovan Rossum 的支持,并被收录到 Python 代码风格指南文档。
随着缩进深度的增加,代码块的层次也在加深,没有缩进的代码块是最高层次的,别称做脚本的“main”部分。
使用缩进对齐这种方式组织代码,不但代码风格优雅,而且也大大提高了代码的可读性。
而且它有效的避免了"悬挂 else"(dangling-else)问题,和未写大括号的单一子句问题。
(如果C语言中if 语句没写大括号,而后面却跟着两个缩近的语句,这会造成不论条件表达式是否成立,第二个语句总会执行。这种问题很难调试,不知道困惑了多少程序员。)
最后一点,由于Python只使用缩进方式表达代码块逻辑,因此“神圣的大括号战争”永远不会发生在Python身上。C、C++和 Java 语言中,开始大括号可以在第一行的尾部,也可以在第二行的头部,也可以在第二行空几格后开始,这就造成不同的人选择不同的风格,于是你就会看到大括号战争的场景了。
4.同一行书写多个语句(😉
分号(﹔)允许你将多个语句写在同一行上,语句之间用分号隔开,而这些语句也不能在这行开始一个新的代码块。
这里有一个例子:
import sys; x = 'foo '; sys. stdout.write(x + ‘|n’)
必须指出一点,同一行上书写多个语句会大大降低代码的可读性,Python虽然允许但不提倡你这么做。
5.模块
每一个Python脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。
当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。
模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导入(import)调用。
记得我们曾提到过,模块可以包含直接运行的代码块、类定义、函数定义或这几者的组合。
二、变量赋值
Python语言中,等号(=)是主要的赋值运算符。
anInt = -12
aString = ‘cart’
aFloat = -3.1415*(5.0**2)
anotherString = 'shop’ + ‘ping’
aList = [3.14e10, ‘2nd elmt of a list’,8.82-4.371j]
注意,赋值并不是直接将一个值赋给一个变量,尽管你可能根据其它语言编程经验认为应该如此。
在Python语言中,对象是通过引用传递的。
在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。
如果此刻你还不是100%理解清楚,也不用着急。在本章的后面部分,我们还会再讨论这个话题,现在你只需要有这么一个概念即可。
同样的,如果你比较熟悉C,你会知道赋值语句其实是被当成一个表达式(可以返回值)。
1.标识符
- 标识符是电脑语言中允许作为名字的有效字符串集合。
其中,有一部分是关键字,构成语言的标识符。这样的标识符是不能做它用的标识符的,否则会引起语法错误(SyntaxError异常)。
Python还有称为built-in标识符集合,虽然它们不是保留字,但是不推荐使用这些特别的名字
2.合法的Python标识符
Python标识符字符串规则和其他大部分用C编写的高级语言相似:
●第一个字符必须是字母或下划线(_)
●剩下的字符可以是字母和数字或下划线
●大小写敏感
标识符不能以数字开头;除了下划线,其他的符号都不允许使用。处理下划线最简单的方法是把它们当成字母字符。大小写敏感意味着标识符foo不同于Foo,而这两者也不同于F00。
3.关键字
Python的关键字列在表中。
一般来说,任何语言的关键字应该保持相对的稳定,但是因为Python是一门不断成长和进化的语言,关键字列表和 iskeyword()函数都放入了keyword模块以便查阅。
4.内建
除了关键字之外,Python还有可以在任何一级代码使用的“内建”的名字集合,这些名字可以由解释器设置或使用。
虽然 built-in不是关键字,但是应该把它当作“系统保留字”,不做他用。
然而,有些情况要求覆盖(也就是:重定义,替换)它们。Python不支持重载标识符,所以任何时刻都只有一个名字绑定。
我们还可以告诉高级读者built-in是_builtins__模块的成员,
在你的程序开始或在交互解释器中给出>>>提示之前,由解释器自动导入的。把它们看成适用在任何一级Python 代码的全局变量。
5.专用下划线标识符
Python用下划线作为变量前缀和后缀指定特殊变量。稍后我们会发现,对于程序来说,其中的有些变量是非常有用的,而其他的则是未知或无用的。这里对 Python中下划线的特殊用法作了总结:
- xxx不用’from module import*’导入
- _xxx__系统定义名字
- __xxx 类中的私有变量名
核心风格:避免用下划线作为变量名的开始
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。
一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。
当变量是私有的时候,用_xxx来表示变量是很好的习惯。因为变量名_Xxx_对Python来说有特殊含义,对于普通的变量应当避免这种命名风格。
三、基本风格指南
注释
注释对于自己和后来人来说都是非常重要的,特别是对那些很久没有被动过的代码而言,注释更显得有用了。既不能缺少注释,也不能过度使用注释。
尽可能使注释简洁明了,并放在最合适的地方。这样注释便为每个人节省了时间和精力。记住,要确保注释的准确性。
文档
Python还提供了一个机制,可以通过_doc_特别变量,动态获得文档字串。在模块,类声明,或函数声明中第一个没有赋值的字符串可以用属性 obj.__doc__来进行访问,其中 obj是一个模块,类,或函数的名字。这在运行时刻也可以运行。
缩进
因为缩进对齐有非常重要的作用,您得考虑用什么样的缩进风格才让代码容易阅读。在选择要空的格数的时候,常识也起着非常大的作用。
1或2可能不够,很难确定代码语句属于哪个块
8至10可能太多,如果代码内嵌的层次太多,就会使得代码很难阅读。四个空格非常的流行,更不用说Python 的创造者也支持这种风格。五和六个也不坏,但是文本编辑器通常不支持这样的设置,所以也不经常使用。三个和七个是边界情况。
当使用制表符Tab 的时候,请记住不同的文本编辑器对它的设置是不一样。推荐您不要使用Tab,如果您的代码会存在并运行在不同的平台上,或者会用不同的文本编辑器打开,推荐您不要使用Tab。
选择标识符名称
好的判断也适用于选择标志符名称,请为变量选择短而意义丰富的标识符。虽然变量名的长度对于今天的编程语言不再是一个问题,但是使用简短的名字依然是个好习惯,这个原则同样使用于模块(Python文件)的命名。
Python风格指南
Guido van Rossum在多年前写下 Python代码风格指南。目前它已经被至少三个PEP代替:7(C代码风格指南)、8 (Python代码风格指南)和257(文档字符串规范)。这些 PEP被归档、维护并定期更新。
渐渐的,你会听到“Pythonic”这个术语,它指的是以 Python的方式去编写代码、组织逻辑,及对象行为。更多时间过后,你才会真正理解它的含义。PEP 20写的是Python之禅,你可以从那里开始你探索“Pythonic”真正含义的旅程。如果你不能上网,但想看到这篇诗句,那就从你的Python解释器输入import this 然后回车。下面是一些网上资源:
www. Python.org/doc/essays/styleguide.html
www. Python.org/dev/peps/pep-0007/
www.Python. org/dev/peps/pep-0008/www.Python. org/dev/peps/pep-0020/www.Python. org/dev/peps/pep-0257/
1.动态类型
还要注意一点,Python中不但变量名无需事先声明,而且也无需类型声明。Python语言中,对象的类型和内存占用都是运行时确定的。尽管代码被编译成字节码,Python仍然是一种解释型语言。在创建一一也就是赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型。在对象创建后,一个该对象的应用会被赋值给左侧的变量。
2.内存分配
作为一个负责任的程序员,我们知道在为变量分配内存时,是在借用系统资源,在用完之后,应该释放借用的系统资源。Python解释器承担了内存管理的复杂任务,这大大简化了应用程序的编写。你只需要关心你要解决的问题,至于底层的事情放心交给Python 解释器去做就行了。
3.引用计数
作为一个负责任的程序员,我们知道在为变量分配内存时,是在借用系统资源,在用完之后,应该释放借用的系统资源。
Python解释器承担了内存管理的复杂任务,这大大简化了应用程序的编写。你只需要关心你要解决的问题,至于底层的事情放心交给Python 解释器去做就行了。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
最后!
今天的文章就到这里结束啦,希望看完以后能对有一些不大不小的帮助。如果喜欢的可以点赞收藏关注,如果不行的话,那也得行(我们IT人不能说不行)球球大伙辽
如果大家感兴趣的话,可以学习交流讨论的,咱可以一起加油,可以点击这里,咱们一起进步