跟着廖雪峰老师学python (1)

若想技术精进,当然得把基础知识打得牢牢的。

廖雪峰的官方网站  python3教程,该网站提供的教程浅显易懂,还附带了讲学视频,非常适合初学者正规入门。

以下是通过廖雪峰python官方网站学习的个人查漏补缺。

一、精进一下对python编程语言的认知

Life is short, You need Python  --python programming

跟着廖雪峰老师学python (1)_第1张图片

在windows中 cmd进入命令行窗口  键入python  然后再输入import antigravity  就能够跳出该画面。能带你飞的python。

使用python是加强版的《乌鸦喝水》:

跟着廖雪峰老师学python (1)_第2张图片

python的优点:简单、易学、面向对象、可扩展、跨平台、第三方库支持很多

python的缺点:

跟着廖雪峰老师学python (1)_第3张图片
截图来自廖雪峰网站: python       总之,python优点大于缺点

python解释器类别:CPython、IPython、PyPy、Jython、IronPython

CPython:这个解释器是用C语言开发的,所以叫CPython。CPython是使用最广的Python解释器。

IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

***区别提示***CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。所以在命令行中>>>提示符是用的CPython解释器,在PyCharm或者Jupiter Notebook中 [序号] 提示符是用的IPython解释器。

Jypthon:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

****小结****Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

python交互模式和命令行模式的区别:

python交互式模式的代码是输入一行,执行一行;python命令行模型是直接运行.py文件,一次性执行该文件的所有代码。       



二、精进一下python编程中的基础知识点

1.  关于python的输入、输出(input/print)

print()函数可以解释多个字符串,用逗号“,”隔开。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格,因此,输出的字符串会有空格拼接起来。

自行添加空格拼接
!!!用逗号分隔,这样就不用使用str(100+200)强制转换了  
input()从控制台中接受输入信息,无论什么信息都视为str类型,若想转换成其他数据类型,则使用函数强制转换即可

关于python编程好习惯的养成:python程序大小写敏感,如果写错,程序会报错。   少用“复制--粘贴”功能,缩进会失效。  坚持使用4个空格的缩进,在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格

2.  数据类型

整型:和数学上的写法一样

浮点型:即小数,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。     (注意::整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

字符串:字符串是以单引号'或双引号"括起来的任意文本。如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识。

转义字符\可以转义很多字符,比如\n表示换行\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

转义字符  \  (斜杠)

注意:如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。

r' ' 内部字符串默认不转义

Python允许用'''...'''的格式表示多行内容。

...是提示符,不是代码的一部分

跟着廖雪峰老师学python (1)_第4张图片
...是提示符

布尔类型:  True、False 。 布尔值用and、or、not运算。

空类型:None

list列表类型:list是一种有序的集合,可以随时添加和删除其中的元素。 1)list是一个可变的有序表,所以,可以往list中追加元素到末尾:append()方法 。        2)把元素插入到指定的位置,比如索引号为1的位置:insert(位置,内容)方法。        3)删除list末尾的元素:pop()方法 ;要删除指定位置的元素,用pop(i)方法,其中i是索引位置。         4)要把某个元素替换成别的元素,可以直接赋值给对应的索引位置。                 注:python中的列表是“打了激素的列表”,意思是里面什么数据类型都能装。

tuple元组类型:tuple和list非常类似,但是tuple一旦初始化就不能修改。list用name_list=[’Michael‘,’Bob‘,’Tracy‘]  ;   tuple用name_tuple=(’Michael‘,‘Bob’,‘Tracy’) ,tuple元组类型没有append(),insert()这样的方法,也不能给元素赋值更换。不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。注:t=(1)定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:t=(1, )

***********list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。************

dict字典类型:Python内置了字典,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度,但是需要占用大量的内存,内存浪费多。使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。         ####避免key不存在导致错误的两种办法:一是通过in判断key是否存在;二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value。要删除一个key,用pop(key)方法,对应的value也会从dict中删除。

跟着廖雪峰老师学python (1)_第5张图片
避免key不存在导致错误的两种办法     注:字典dict内部存放的顺序和key放入的顺序是没有关系的。

set集合类型:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key,重复元素在set中自动被过滤。1)通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果。    2)通过remove(key)方法可以删除元素。       3)set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集  &并集  |等操作。

***************可变对象和不可变对象**************

跟着廖雪峰老师学python (1)_第6张图片
’abc‘对象没有被改变,对象自身调用replace()方法等其他方法会创建新的对象返回。  这就保证了不可变对象本身永远是不可改变的。

小结:print()输出    input()输入    数据类型:整形、浮点型、字符型、布尔型、空类型、list列表类型、tuple元组类型、dict字典类型、set集合类型。



三、精进一下python编程中的函数知识点

1.  内置函数

Python内置了很多有用的函数,我们可以直接调用。

>>> dir(__builtins__)//查看内置函数(BIF)列表

>>> help(input)//查看内置函数(BIF)功能描述

跟着廖雪峰老师学python (1)_第7张图片
图片截至: 菜鸟教程

Python内置函数详解——总结篇

2.  自定义函数

有简单实用的内置函数,当然也可以灵活定义自己想要的函数,注:函数定义中为了安全起见,有一个参数检查步骤,自定义函数中可写,可不写。但是一个规范的、合格的编程者是应该写的。

跟着廖雪峰老师学python (1)_第8张图片
自定义函数my_abs(),对参数类型做检查,只允许整数和浮点数类型的参数。数据类型检查用内置函数isinstance()实现。

函数可以同时返回多个值,表面上是多个值,但实际返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

跟着廖雪峰老师学python (1)_第9张图片

3.  函数的参数

1)位置参数:power(x, n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。      

2)默认参数:把第二个参数n的默认值设定为2,power(x, n=2)。设置默认参数时,有几点要*******注意:一是必选参数在前,默认参数在后,否则Python的解释器会报错。二是如何设置默认参数。

当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。使用默认参数有什么好处?最大的好处是能降低调用函数的难度。默认参数有个最大的坑:定义默认参数要牢记一点:默认参数必须指向不变对象!

3)可变参数:可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数。

跟着廖雪峰老师学python (1)_第10张图片
*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

4)关键字参数:可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

跟着廖雪峰老师学python (1)_第11张图片
**kw  关键字参数    dict类型

5)命名关键字参数:和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。

跟着廖雪峰老师学python (1)_第12张图片
*   命名关键字参数

6)参数组合:在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。  *args可变参数,相当于传入一个tuple   **kw关键字参数 ,相当于传入一个dict     *  命名关键字参数

跟着廖雪峰老师学python (1)_第13张图片
虽然可以组合多达5种参数,但不要同时使用太多的组合,否则函数接口的可理解性很差。

关于函数参数的有用小结:

跟着廖雪峰老师学python (1)_第14张图片

4.  递归函数

1)使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。2)针对尾递归优化的语言可以通过尾递归防止栈溢出。尾递归事实上和循环是等价的,没有循环语句的编程语言只能通过尾递归实现循环。3)Python标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的问题。

学习进度条:

跟着廖雪峰老师学python (1)_第15张图片
学完 函数

参考文章:

【1】廖雪峰的官方网站  python3教程

【2】Life is short, You need Python

【3】Life is short, you need Python

【4】Python内置函数详解——总结篇

你可能感兴趣的:(跟着廖雪峰老师学python (1))