我写这些博客不是为了教谁学Python,网上一大堆大牛,我只是一只翅膀还没长毛的小菜鸟,本系列博文只是为了记录自己的学习笔记和心得,督促自己学习。对所有记录的笔记不承诺没有错误,所有的心得仅代表本人观点,欢迎看到的你指出问题、提出建议,本人万分感激!喷、怼、指正都欢迎!
学习开发语言的通用路径中的概念在学习开发语言的时候,不论学习任何一种高级语言,基础语法是必须熟练掌握的,是学习路径中的通用节点。
主要包括以下几个部分:
注释是所有开发语言中非常重要的组成部分,关系到程序的可读性。(写不好注释的程序员都不是一个合格的程序员!)
注释用来解释程序中一些必要部分的作用和功能,让阅读代码的程序员能快速理解程序的功能和实现逻辑。因为高级语言具有高度的抽象性和逻辑表达性,实现相同的功能可以用不同的逻辑方法或表达方式,并且对于一些功能的实现需要比较复杂的逻辑,每个程序员代码中自定义的部分的命名也都有很大的自由度。实际业务中的代码如果没有注释是很难理看懂的(需要花费很大的精力和时间),甚至是自己的写的代码没有注释,时间一长,自己都看不懂当时是怎么考虑和实现的,就更不要说拿给别的程序员去维护和二次开发。
所以再次强调,注释是一个合格程序员的必备技能和工作。初学者在学习过程中要有意识的去编写注释(最好是每段代码都写注释——类似学英语的时候中英文对照)。
Python语法中注释的两种形式和代码实现
单行注释Python 用 # 开始代表单行注释,跟在 # 后面的直到这行结束的代码都会被解释器忽略,不会被执行。
#这是单行注释
print(“Hello World!”)
下面的截图中红框是代码的执行结果,可以看到,最终被执行的是打印语句。而注释那一行并没有被执行。
'''
这部分是多行注释
可以是一行或者多行
和单行注释一样,将不会被执行
'''
print('注释的部分将不会被程序执行')
注释在开发中还有一个很重要的作用,就是调试代码。如果觉得某段代码有问题,可以将这段代码注释掉,程序执行时,这段代码将不会被执行,从而可以对比出这段代码所带来的影响,用来判断这段代码是否有问题。
数据变量是所有高级语言中必定有的一个概念。数据变量在机器底层呈现的其实就是一段可以操作的内存空间。这个内存空间可以提供给程序用来对数据进行各种的操作(增删改查等等)。
在上一篇中说到Python是弱类型的。体现在两个方面:
#无需声明变量即可完成变量赋值,下面这段代码代表 将数字 1 存入 变量 a 指向的存储空间。
a = 1
“=” 在程序中代表赋值。将右边的数据存入左边的变量代表的存储空间中。和我们平时理解的“等于”的概念是有所差别的。
当程序执行到这行代码的时候,底层的操作是:在存储空间中划分出一段存储空间,用 a标记,实际上a指向的是存储空间的一个地址,然后机器将数值 1 存入这个存储空间中。
#下面这段代码是修改 a 变量中存储的数据,由数值变为字符串。
a = '我是字符串'
这体现了Python中变量的数据类型是可以动态改变的。
而在Java中(强类型)的语法是:
//java是强类型,必须先声明数据类型再赋值
int a = 1 ;
//java中字符串类型不是基础数据类型,而是一个对象
//对象的概念参考上一篇,可以理解对象也是一种数据类型,只是拥有丰富的属性和功能。
String b = "我是字符串";
//在java中是有 字符型数据类型 char 的(基础数据类型),Python中统一为字符串.
char c = '字';
附带知识点: print 函数。
函数的概念:函数也可以称之为方法(和数学中的函数其实是一致的)。每个函数都有自己的功能逻辑或者意义。数学中 sin(100),其实就是 对 100这个数据进行sin运算后得到结果。
而 print(value) 所代表的意义就是 输出 value 进行显示。这个就是打印函数prin()的功能。
a = 1
#输出a
print(a)
print('---------我是分割线-----------')
a = '我是字符串'
#输出a
print(a)
补充:Python有个特殊的地方:没有常量概念。常量和变量是相对的。常量也代表了一个存储空间,只是这个存储空间是只读的,意味着常量一旦赋值就不可更改。但是Pyhon可以通过 其它方式实现常量。在后面学习到静态类的时候会讲明。
Python print 函数详解(Pyhon源码和自己的翻译)
#源码中Python对print函数的定义和形参的作用
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
将value这个形参变量代表的数值打印到数据流中,默认是系统的数据流即屏幕。
Prints the values to a stream, or to sys.stdout by default.
可选的关键字参数:
Optional keyword arguments:
file: 一个类似文件的对象(流),默认是当前的系统输出流
file: a file-like object (stream); defaults to the current sys.stdout.
sep: 插入values(数据)之间的字符串,默认是一个空格。(简单的说就是输出多个value的时候的分割符)
sep: string inserted between values, default a space.
end: 在最后一个value之后追加的字符串,默认是换行( "\n" ----程序中代表换行符,后面会介绍到)(简单的说就是输出的结束符)
end: string appended after the last value, default a newline.
flush: 是否要强行刷新(推)流。(一般程序中涉及到数据流传输,一般都是放在流对象中等待消费者去获取,强行刷新的目的是确保消费者立即获取数据流)
默认值是 false 。【只有true(是)和false(否)两个参数值】
flush: whether to forcibly flush the stream.
"""
print 函数的 Demo:
"""
打印一个value
其它值都为默认 file = sys.stdout; sep = '' ; end ='\n'; flush = false
默认的参数可以不写
"""
print('打印一个value,其它参数都为默认值')
"""
打印三个value
以|为分割符,以字符$结尾
"""
print("value1", "value2", "value3", sep='|', end='$')
变量命名规则:
给变量命名就是取名字,用来作为变量的标识,以便我们快速理解变量存储数据的意义,也就意味着变量的命名尽可能的有实际意义。
Pyhon标识符(命名)有通用的规则,不仅仅适用变量,还适用类,方法等需要标识的地方。所以称为标识符命名规则:
标识符可以由字母(可以是中文等)、数字、下划线(_)组成。
标识符只能由 字母、下划线(_)开头,不可以是数字
标识符中不能包含空格
标识符不可以是关键字,但是可以包含关键字
(关键字是指Pyhon中已经使用并具有实际意义的字符,比如 False或者True 等等,具体有哪些关键字可以自行百度。使用关键字作为标识符Pyhon会报错!)
数据类型可以分为 数值类型和字符类型两大类
数值类型可以分为:整型,浮点型,复数
字符型可以分为:字符串和字节串
整型:即整数,不管是小的整数还是大的整数,正数,负数,Python都统称为整型(不像 java 还区分short、int、long等整型区分,不过两者都各有自己的优势,没有绝对的好坏之分,主要还是要看实际的应用场景)
浮点型:即带小数点的数值。有两种表达方式
十进制:整数部分+小数点+小数部分 比如 3.1415926
科学计数法:例如 3.14e2 代表 3.14 ×\times× 102。但是需要注意的是:Python中只有字符型的数据才可以用科学计数法表示。1e1 代表 1 ×\times× 101 虽然和10的值相等,但是 它依然是一个浮点数,而不是整数。Python会自动将这个数据变为 10.0。
字符串 简单的说就是一串字符,比如 ‘Hello world!’,单也可以是一个字符 比如’a’。字符串的数据必须用英文的引号括起来,可以是单引号也可以是双引号(和多行注释的时候一样,并不需要区分单引号和双引号)。
tips:当你的字符串中有单引号,则字符串用双引号括起来,如果字符串里面有双引号,则字符串用单引号括起来。比如: ‘这个用了"双引号",需要注意’ ; “这个用了’单引号’,也需要注意哦”
字节串 这个类型是Pyhon3(3.x版本)新增的类型。其实字符串和字节串的区别在于操作的数据单元不一样,字符串操作的数据单元是字符串(一个字符也当做字符串),而字节串操作的数据单元是字节(二进制格式)。
运算符运算符是一些具有特殊意义的符号,可以是表示运算、赋值、比较等意义。
Python的执行语句就是由运算符连接起一个或者多个的可以操作的数据形成的,可以实现特定的逻辑和功能。
分类:
赋值运算符:= 即赋值运算符。用来将一个数据赋值给一个变量。
算术运算符:所有的算术运算的符号。比如 + 、 -、 ×\times× 、 ÷\div÷ ( + 、- 、* 、/)
逻辑运算符:或、与、非 or 、and 、 not
比较运算符:用来比较的符号 比如大于,小于,等于,不等于等等
位运算符:用来直接操作 bit(位)数据的符号
索引运算符:[index] index就是索引。
特殊和扩展后的运算符等
在下一篇中将详细记录数值类型的细节知识点以及应用的Demo,
然后再下一篇是运算符的细节知识点和应用Demo