Python(Head First)学习笔记:一
目录:
1 认识Python:Python的特点、安装、开发环境搭建
2 共享代码:连接共享社区、语法、函数、技巧
3 文件与异常:调试、处理错误、迭代、改进、完善
4 持久存储:文件存储、读写
5 推导数据:处理数据、格式、编码、解码、排序
6 定制数据对象:数据结构自定义
7 Web开发:开发Web应用
8 移动应用开发:自动处理应用
9 管理数据:应用程序扩展(从Web接收数据)
10 扩展Web应用之动真格的
11 处理复杂性:数据加工和应用定位
12 补充和完善:问题分析、测试、拓展、等
1 认识Python:Python的特点、安装、开发环境搭建
关于一个概念: 元认知
乍一看,就像是大脑的神经元,
再一看,其实讲的确实和大脑的记忆有关,
它强调自我暗示:这么书很重要,掌握它很重要,对,就是这样。。。
他们是这么做的:所见即所得,
通过使用大量的图片,简单、清晰的用图形来说明情况,
还是用了不同形式的重复说明,以便加强记忆的效果,
没错,还有:交谈式风格、实践活动、多种学习模式、左右脑互用、不断练习。。。
感觉下了很多功夫,嘿嘿~
不过在我看来,最重要的还是坚持和实践吧?
这本书是面向Python3的,所以......开始吧!
Python的特点之列表:
共同处:语句、表达式、操作符、函数、模块、方法和类等;
不同处:列表
安装Python3
开发环境:VMware虚拟机——>ubuntu16 64位
打开Terminal,输入python3 -V,查看安装的python3版本。(关于ubuntu安装python可以用sudo apt-get install python)
关于Python的IDLE(Integrated Development GUI Environment即:Python的可视化集成开发环境):
在Terminal下使用python3,加回车来启动IDLE,
基本功能有:编辑代码、调试、运行等,
启动后,在>>>后输入:
print("hello world~"),回车,
屏幕输出hello world~
此外,IDLE可以帮助自动缩进代码行,比较智能吧~
TAB键的作用:缩进,提示,建议等;
Ctrl+P:往后一步,相当于:Previous;
Ctrl+N:往前一步,相当于:Next;
创建简单的Python列表:
实例:
The Holy Crail
The Life of Brian
The Meaning of Life
Python:
movies = ["The Holy Crail",
“The Life of Brian”,
“The Meaning of Life”]
注:Python的变量标识符没有类型。
BIF:build-in functions,即:IDLE内置函数。
列表就像数组,Python的解释器会在内存中创建一个类似数组的数据结构来存储数据,放到一个堆栈中(FIFO)。
可以用print(movies[0])这样的语句来访问列表的数据,当然,这里是列表movies的第一项(下标从0开始)。
此外,还可以通过print(movies)直接输出整个列表,可以用print(len(movies))输出列表项的个数,
可以用movies.extend(["hero","007","KongFu"])扩充列表,
可用movies.append(“Gill”),在列表末尾增加一个数据项,
用movies.pop(),在列表末尾删除一个数据项,
用movies.remove("hero")来删除一个特定的数据项,
用movies.insert(0,"Superman")在特定位置前增加一个数据项。
在列表中混合其他数据:在Python的列表中可以混合存放字符串、数字及其它任意类型的数据。
实例:
实现列表:["The Holy Crail",1975,“The Life of Brian”,1979,“The Meaning of Life”,1983]
方法一:可以使用insert(数据项序号,"数据项名")来实现,
方法二:重新写一个列表。
使用迭代:通过使用Python内置的for循环实现
关于for循环:主要是为了处理列表和Python中的其他迭代结构
目标标识符:target identifier,
格式:for 目标标识符 in 列表:
组suit:列表处理代码
注意:组之前一定要记得加缩进符,也就是空格。否则会报错:IndentationError:expected an indented block.
如:for each_item in movies:
空格print(each_item)
可以用while组合语句实现同样的效果:
count = 0
while count < len(movies):
空格print(moives[count])
空格count = count + 1
问答:
列表,打了激素的数组,
Python2,3中都支持列表,
但,Python3才是未来,
使用单引号或双引号来创建字符串,效果一样,但不可以混着用,
在一个字符串中嵌套另一个双引号,使用 \"来转义,这个我还没试,
Python对字符大小写是敏感的。
在列表中存储列表:
在列表中嵌套任意个列表是可以的。
如:列表:movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]
输出第一层:print(movie[i]),i是列表项序号,从0开始计;
输出第二层:print(movie[6][j]),j是第二层嵌套列表项的序号;
输出第三层:print(movie[6][1][z]),z是第三层嵌套列表项的序号;
在列表中查找列表:
使用if...else...模块:
格式:if 判断条件 :
空格“true”组
else :
空格"false"组
使用isinstance(标识符,类型),这个内置函数BIF来判断某个列表项是不是一个列表,如:
>>>names = ["Suane","Wang"]
>>>isinstance(names,list)
True
>>>num_names = len(names)
>>>isinstance(num_names,list)
False
或者
>>>isinstance(len(names),list)
False
关于BIF,Python3中大概有70多个BIF,使用dir(__builtins__),可以查看到Python提供的内置方法列表,
查看某个BIF的具体使用方法:比如:input,则用help(input)。
注意:builtins的前后各有两个下划线。
通过这些BIF,几乎可以帮助完成大多数工作,再加上Python的标准库,使得Python变得功能强大。
实例:对于movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]
现在使用isinstance()来判断嵌套列表,并输出:
for each_items in movies:
空格if isinstance(each_items,list):
空格for new_item in each_items:
空格空格print(new_item)
空格else:
空格print(each_items)
这样处理输出结果还是不理想,仍然有一个嵌套没有展开。
当然,仍然可以再增加一个if...else...嵌套来判断,然后展开输出列表项,
不过,如果嵌套真的很多,这样的方式显然并不理想。
处理多层嵌套列表:
通过创建函数,将重复的代码封装在里面,然后调用,可以有效处理此类问题。
定义函数的标准格式:def 函数名 ():
缩进 函数代码组
实例:编写一个函数,
实现列表:movies = ["The first",1997,"The second",1998,"The third",1999,["The next",["The last",2000,"The final",2001]]]的列表项展开输出。
def print_lol(the_list):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item)
else:
print(each_item)
使用:
>>>print_lol(movies)输出结果。
这个函数是一个递归函数,Python3默认递归深度不能超过100,即列表中的嵌套列表不能超过99个,不过这个上限应该是可以改的。
注:列表可以随需要伸缩,数据使用的内存由Python自己管理。
---------------------------------The End of First Chapter-------------------------------
Python(Head First)学习笔记:一的更多相关文章
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
- python网络爬虫学习笔记
python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...
- Python Built-in Function 学习笔记
Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...
- Python快速入门学习笔记(二)
注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...
- python数据分析入门学习笔记
学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...
- python网络爬虫学习笔记(二)BeautifulSoup库
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...
- Python之xml学习笔记
XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过&l ...
- python网络爬虫学习笔记(一)Request库
一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- python数据分析入门学习笔记儿
学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...
随机推荐
- WEB基础(二)--servlet的生命周期
Servlet的生命周期一般可以用三个方法来表示: init():仅执行一次,负责在装载Servlet时初始化Servlet对象 service() :核心方法,一般HttpServlet中会有get ...
- Go中sync包学习
前面刚讲到goroutine和channel,通过goroutine启动一个协程,通过channel的方式在多个goroutine中传递消息来保证并发安全.今天我们来学习sync包,这个包是Go提供的 ...
- 9个tcpdump使用实例
tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看. 以下将给出9 ...
- Struts1.x 跨站脚本(XSS)漏洞的解决
一. 演示XSS 当访问一个不存在的网址时,例如[url]http://localhost:8080/demo/noAction.do[/url],那么Struts处理后都会跳到提示“Invali ...
- linux100day(day4)--文本处理三剑客
在介绍三剑客之前,先来认识一下通配符和正则表达式 通配符 正则表达式 作用:通过一些特殊字符,来表示一类字符内容 1.字符匹配 . 任意一个字符 [ ] 范围内的任意一个字符 [^ ] 取 ...
- JSP引擎、JSP容器、Web服务器
JSP引擎与JSP容器指的都是同一样的东西,他们都是用来同一管理和运行Web引用程序的“软件”.常见的JSP引擎有Tomcat.JRun.Resin 广义上来说,JSP引擎是用来管理和运行Web应用程 ...
- sea.js的同步魔法
前些时间也是想写点关于CMD模块规范的文字,以便帮助自己理解.今天看到一篇知乎回答,算是给了我一点启发. 同步写法却不阻塞? 先上一个sea.js很经典的模块写法: // 定义一个模块 define( ...
- SPP NET (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)
1. https://www.cnblogs.com/gongxijun/p/7172134.html (SPP 原理) 2.https://www.cnblogs.com/chaofn/p/9305 ...
- ECMAScript---变量
上上篇我们说到ESMAScript是JS的语法规划,JS中的变量.数据类型.语法规范.操作语句.设计模型等都是ES规定的,现在咱们聊一下JS中的变量和常量 变量(variable) 它不是具体值,只是 ...
- C#开发BIMFACE系列6 服务端API之获取文件信息
在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...