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

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

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

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

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

Life is short, You need Python  --python programming

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

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

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

python的缺点:

截图来自廖雪峰网站: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允许用'''...'''的格式表示多行内容。

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

...是提示符

布尔类型:  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中删除。

避免key不存在导致错误的两种办法     注:字典dict内部存放的顺序和key放入的顺序是没有关系的。

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

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

’abc‘对象没有被改变,对象自身调用replace()方法等其他方法会创建新的对象返回。  这就保证了不可变对象本身永远是不可改变的。

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



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

1.  内置函数

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

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

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

图片截至:菜鸟教程

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

2.  自定义函数

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

自定义函数my_abs(),对参数类型做检查,只允许整数和浮点数类型的参数。数据类型检查用内置函数isinstance()实现。

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

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个参数。

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

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

**kw  关键字参数    dict类型

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

*   命名关键字参数

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

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

虽然可以组合多达5种参数,但不要同时使用太多的组合,否则函数接口的可理解性很差。

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

4.  递归函数

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

学习进度条:

学完 函数

参考文章:

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

【2】Life is short, You need Python

【3】Life is short, you need Python

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,656评论 0 5
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,645评论 0 1
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,680评论 0 5
  • 本教程基于Python 3,参考 A Byte of Python v1.92(for Python 3.0) 以...
    yuhuan121阅读 3,034评论 1 6
  • 今天下午在舞蹈学习开始前,我拿出了眉笔和口红准备化妆。与我一起跳舞的的同学有些不解地看着我说:“你为什么这个时...
    真峥阅读 447评论 0 0