读书笔记之《编程小白的第1本Python入门书》
本书电子版下载地址:百度网盘
写在前面:你需要这本书的原因
有没有那一个瞬间,让你想要放弃学习编程?
在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9点,同事都下班之后,独自留在办公室编程。
做任何事情一定有在短期内简单可行的办法。 学习不应该是苦差事,而应该是快乐的,重要的是找到适合自己的学习方法。
高效学习法的核心在于:
- 精简:学习最核心的关键知识;
- 理解:运用类比、视觉化的方法来理解这些核心知识;
- 实践:构建自己的知识体系之后,再通过实践去逐渐完善知识体系。
我不追求让你达到精通的程度,事实上我也很怀疑有哪本书真正做到21天从入门到精通。精通一门语言,需要在实际项目开发中踩过许多坑,需要熟悉计算机运作的底层原理......对于实用主义的开发者来说,更应该追求的是达成而不是精通。先掌握项目所需的最少必要知识,然后把热情和精力投入到搭建真实项目中,而不是死磕半年的基础知识,直到把所有兴趣都耗竭了也没做出什么像样的东西。
大多数读者都能在一周内读完本书。
第一章 为什么选择Python ?
1.1 Python追求的是找到最好的解决方案。
1.2 Python有很丰富的库,有官方的,也有第三方开发的,你想做的功能模块很有可能已经有人写好了,你只需要调用,不需要重新发明轮子。
第二章 现在就开始
2.1 安装最新版的Python程序。
2.2 使用IDE工具:PyCharm 社区版是免费的,专业版是付费的。对于初学者来说,两者的差异微乎其微,用社区版就够了。
- 快速上手中文视频(简单介绍如何安装、创建文件、设置皮肤)
https://v.youku.com/v_show/id_XODMyMzM1NzQ4.html
- 如何高效利用PyCharm系列文档(图文并茂的介绍了很多高效技巧)
https://pedrokroger.net/getting-started-pycharm-python-ide/
第三章 变量与字符串
3.1 初学者经常会遇到的困惑是,看书或者听课都懂,但还是不明白要怎么编程。这是因为缺乏足够多的实践......学习时,模仿示例敲一遍代码。
3.2 变量 变量会暂时性地储存你放进去的东西。
3.3 字符串
- 单引号其实和双引号完全一样
- '''三个引号被用于过于长段的文字或者是说明,只要三引号不完你就可以随意换行写下文字'''
- 字符串格式化符format()
print('{} a word she can get what she {} for.'.format('With','came'))
print('{ab} a word she can get what she {cd} for.'.format(ab = 'With', cd = 'came'))
print('{a1} a word she can get what she {a2} for.'.format(a2 = 'came', a1 = 'With'))
# 这三个语句,输出结果一样:
With a word she can get what she came for.
With a word she can get what she came for.
With a word she can get what she came for.
第四章 函数的魔法
4.1 内建函数(自带函数)
Python3.7.3 版本有69个内建函数,具体使用说明见官方文档:
Built-in Function
| Built | in | Function | ||
|---|---|---|---|---|
| abs() | delattr() | hash() | memoryview() | set() |
| all() | dict() | help() | min() | setattr() |
| any() | dir() | hex() | next() | slice() |
| ascii() | divmod() | id() | object() | sorted() |
| bin() | enumerate() | input() | oct() | staticmethod() |
| bool() | eval() | int() | open() | str() |
| breakpoint() | exec() | isinstance() | ord() | sum() |
| bytearray() | filter() | issubclass() | pow() | super() |
| bytes() | float() | iter() | print() | tuple() |
| callable() | format() | len() | property() | type() |
| chr() | frozenset() | list() | range() | vars() |
| classmethod() | getattr() | locals() | repr() | zip() |
| compile() | globals() | map() | reversed() | __import__() |
| complex() | hasattr() | max() | round() |
4.2 开始创建函数
- def :定义一个函数
- arg :参数
- return :返回结果
- 缩进 :表名语句和逻辑的从属关系
def function(arg1, arg2):
return 'Sometihing' def 函数名(参数1, 参数2):
缩进 return '结果'
求直角三角形斜长边:
def length_bian(a,b):
c = (a**2 + b**2)**(1/2)
return c
dd = length_bian(3,4)
print(dd)
- 位置参数、关键词参数
de(1,2,3) # 位置参数
de(dup = 1, ddown = 2, dheight = 3) # 关键词参数
- open()函数
file = open('c://python/hello.txt','w')
file.write("HelloWorld!")
- 数学运算符
假设 a=10, b=20
| 符号 | 描述 | 实例 |
|---|---|---|
| + | 相加 | a+b = 30 |
| - | 相减 | b-a = 10 |
| * | 相乘 | a*b = 200 |
| / | 相除 | b/a = 2 |
| % | 取余 | b%a = 0 |
| ** | 次方 | a**b = 10^20 |
| // | 取商 | b//a = 2 |
第五章 循环与判断
5.1 逻辑判断True&False
- 比较运算符
| 符号 | 描述 |
|---|---|
| == | 左右相等时返回True |
| != | 左右不等时返回True |
| > | 左边大于右边时返回True |
| < | 左边小于右边时返回True |
| >= | 左边大于等于右边时返回True |
| <= | 左边小于等于右边时返回True |
- 成员运算符与身份运算符in&is
in、not in,表示归属关系的布尔运算符 is、is not,表示身份鉴别的布尔运算符
- 布尔运算符
| 运算符 | 描述 |
|---|---|
| not x | 如果x是True,返回Flase |
| x and y | 如果x和y同时为True,返回True |
| x or y | 如果x和y同时为False,返回False |
5.2 条件控制if...else
# 如果...条件是成立的,就做...;反之,就做...
if condition:
do something
elif condition:
do something
else :
do something if 成立条件(冒号)
(缩进)执行什么
elif 成立条件(冒号)
(缩进)执行什么
else(冒号)
(缩进)执行什么
5.3 循环(Loop)
- for循环
于...其中的每一个元素,做...事情
for item in iterable:
do something
for 元素 in 集合(冒号)
(缩进)执行什么
- 嵌套循环(Nested Loop)
for i in range(1,10):
for j in range(1,10):
print('{} * {} = {}'.format(i,j,i*n))
- while循环 只要...条件成立,就一直做...
while condition:
do something
while 成立条件(冒号)
(缩进)执行什么
如何控制while循环?
- 在循环过程中制造某种可以使循环停下来的条件P69
- 改变使循环成立的条件P70
第六章 数据结构
- 数据结构(Data Structure) 6.1 储存大量数据的容器,在Python称为内置数据结构(Build-in Data Structure)
6.2 Python有四种数据结构:列表,字典,元组,集合。
list = [val1, val2, val3, val4]
dict = {key1 : val1, key2 : val2}
tuple = (val1, val2, val3, val4)
set = {val1, val2, val3, val4}
6.3 列表(list)
- 列表中的每一个元素都是可变的;
- 列表中的元素是有序的;
- 列表可容纳Python中的任何对象。
列表的增删改查
fruit = ['apple', 'orange']
fruit.insert(1,'grape') #增
fruit[0:0] = ['banana'] #增
fruit.remove('grape') #删
del fruit[0:2] #删
fruit[0] = 'Grapefruit' #改
fruit.extend('b1', 'b2') #增
6.4 字典(Dictionary)
- 字典中数据必须以键值对的形式出现;
- 逻辑上讲,键不能重复,值可以重复;
- 字典中的键(key)是不可变的,而值(value)是可变的。
字典的增删改查
url_code = {'b' : 'baidu', 's' : 'sina'}
#增
url_code['t'] = 'tmall'
url_code.update({'fb' : 'facebook', 'tb' : 'taobao'})
#删
del url_code['fb']
6.5 元组(Tuple) 元组不可修改,类似稳定版的列表
6.6 集合(Set) 每一个集合中的元素是无序的、不重复的任意对象。可以通过集合去判断数据的从属关系,也可以通过集合去掉数据结构中的重复的元素。
a_set = {1, 2, 3, 4}
a_set.add(5) #增
a_set.discard(5) #删
6.7 多重循环
sorted(num_list,reverse = True) sorted函数,先将列表复制后按照长短、大小、字母顺序进行排序,但不改变列表本身。
num_list [4,6,7,9,1,8,3,2]
print(sorted(num_list))
整理列表时,如果同时需要两个列表怎么办?
for a,b in zip(num,str):
print(b, ' is ', a)
6.8 推导式
a = []
for i in range(1,10):
a.append(i)
b = [i for i in range(1,10)]
# 两种执行效果一样,第二种效率更高
# 看几个例子
a = [i**2 for i in range(1,10)]
b = [j+1 for j in range(1,11)]
c = [n for n in range(1,10) if n % 2 == 0]
d = [letter.lower() for letter in 'ABCDEFG'] e = {i:i+1 for i in range(4)}
f = {i:j for i,j in zip(range(1,6),'abcde')}
g = {i:j.upper() for i,j in zip(range(1,6),'fghij')}
6.9 循环列表获取元素索引
letters = ['a','b','c','d','e']
for num,letter in enumerate(letters):
print(letter, ' is ', num+1)
第七章 类与可口可乐
第八章 开始使用第三方库
8.1 令人惊叹的第三方库
- 当你想搭建网站时,可以选择功能全面的Django、轻量的Flask等web框架;
- 当你想写小游戏时,可以使用PyGame框架;
- 当你想做一个爬虫时,可以使用Scrapy框架;
- 当你想做数据统计分析时,可以使用Pandas数据框架...
- 丰富的资源可以帮我们高效快捷地做到想做的事,就不需要再重新造轮子。
- 第三方库
8.2 安装第三方库
8.2.1 在PyCharm中安装 1,路径:File>>settings>>Project TestCode>>Project Interpreter
2,我的PyCharm版本:PyCharm2019.1.1
3,注意:破解版因屏蔽上网,无法安装库
8.2.2 在命令行中安装
1,安装pip
在Python3.4之后,安装好Python环境就可以直接支持pip,可以在命令行输入命令检查一下:
2,使用pip安装库
# 如果你想安装到python2中,把pip3 换成 pip
pip3 install 库名称
# 如果你安装了python2和python3两种版本,可能会遇到安装目录问题,可以换成:
python3 -m pip install 库名称
# 如果想装到python2中,把python3 换成 python
# 介绍几个pip常用指令
pip install --upgrade pip #升级pip
pip uninstall 库名称 #卸载库
pip list #查看已安装库
3,手动安装 (1)下载库文件(pypi站)
进入pypi站,搜索要安装的库,这是有3种可能。 *1. exe文件,点击安装。 *2. .whl类文件,可以自动安装依赖的包 *3. 源码文件,如.zip、tar.zip、tar.bz2等格式,要求用户已安装这个包所依赖的其他包。
(2).whl文件安装
pip3 install wheel
cd whl文件所在目录
pip3 install whl文件
(3)源码文件安装
cd 源码文件所在目录
python3 setup.py install
读书笔记之《编程小白的第1本Python入门书》的更多相关文章
- 《HTML5与CSS3基础教程(第8版)》
<HTML5与CSS3基础教程(第8版)> 基本信息 原书名:HTML and CSS:visual quickstart guide 作者: (美)Elizabeth Castro ...
- HTML5与CSS3基础教程(第7版) 高清PDF扫描版
HTML5与CSS3基础教程(第7版)试读不仅介绍了文本.图像.链接.列表.表格.表单.多媒体等网页元素,也介绍了如何为网页设计结构.布局,添加动态效果.格式化等形式,此外还涉及调试和发布.聚合和吸引 ...
- HTML5与CSS3基础教程(第8版) PDF扫描版
<HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...
- 【02】HTML5与CSS3基础教程(第8版)(全)
[02]HTML5与CSS3基础教程(第8版)(全) 共392页. (魔芋:大体上扫了一遍.没有什么新东西,都是入门的一些基础知识.) 已看完. [美]elizabeth cast ...
- HTML5与CSS3基础教程第八版学习笔记11~15章
第十一章,用CSS进行布局 开始布局注意事项 1.内容与显示分离 2.布局方法:固定宽度和响应式布局 固定宽度,整个页面和每一栏都有基于像素的宽度 响应式布局也称为流式页面,使用百分数定义宽度 3.浏 ...
- HTML5和CSS3基础教程(第8版)-读书笔记(3)
第11章 用CSS 进行布局 网站设计主要有两大类型:固定宽度和响应式. 对于固定(fixed)布局,整个页面和每一栏都有基于像素的宽度.顾名思义,无论是使用移动电话和平板电脑等较小的设备查看页面,还 ...
- HTML5和CSS3基础教程(第8版)-读书笔记(2)
第7章 CSS构造模块 7.1 构造样式规则 样式表中包含了定义网页外观的规则.样式表中的每条规则都有两个主要部分:选 择 器(selector) 和 声 明 块(declaration block) ...
- HTML5和CSS3基础教程(第8版)-读书笔记
第1章 网页的构造块 一个网页主要包括以下三个部分: n 文本内容(text content):在页面上让访问者了解页面内容的纯文字. n 对其他文件的引用(referen ...
- HTML5和CSS3基础教程(第8版)-读书笔记(4)
第16章 表单 表单有两个基本组成部分:访问者在页面上可以看见并填写的控件.标签和按钮的集合:以及用于获取信息并将其转化为可以读取或计算的格式的处理脚本. 基本的表单字段类型包括文本框.单选按钮.复选 ...
- 读书笔记之《HTML5 与 CSS3 基础教程》
1· 读前预期 考虑到对于 Web 开发零基础,凡涉足一件未知的任务,最好先理清任务的逻辑结构,然后有目的地逐步学习.为实现我们的需求和设计,必须要学习前端.后端.服务器等一系列暂时陌生的知识,在此, ...
随机推荐
- 删除一个ppa
https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ 总结如下: 1: 桌面删除,进入software & update,然后 ...
- Jmeter安装说明
本文主要介绍Jmeter工具的安装 一.安装JDK 1.下载jdk,到官网下载jdk,下载jkd1.8即可,地址:http://www.oracle.com/technetwork/java/java ...
- JAVA常用知识总结(五)——Linux
简单介绍一下 Linux 文件系统? 在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡.磁盘驱动器.打印机.输入输出设备.普通文件或是目录都被看作是一个文件. 也就是说在LINUX系统 ...
- getAttribute()方法的第二个参数
对于一个img元素,我们想获取它的src属性时可以有两种方式: 1.xxx.getAttribute("src") 2.直接通过xxx.src获取属性值 在src的属性值为相对路径 ...
- RHEL6.5---LVS(IP-TUN)
实验环境: 主机名 IP 所需软件 master eth0==>192.168.30.160(RIP) eth0:1==>192.168.30.130(VIP) ipvsadm node ...
- Jenkins视图使用--添加删除视图
job建立的特别多的时候,我们可能不太容易找到自己的某个job,这时,我们就可以在Jenkins中建立视图.job的视图类似于我们电脑上的文件夹.可以通过一些过滤规则,将已经建好的job过滤到视图中, ...
- 基于Java实现的冒泡排序算法
冒泡排序是一种简单基础的排序算法,相信在大学课堂里老师已经讲过了,现在我基于Java来实现一遍. 简述 冒泡排序正如其关键词一样,杂乱的气泡经过浮动,最后大的气泡飘到了上面而小的气泡在下面,无序的元素 ...
- docker最新版本以及docker-compose安装脚本
docker最新版本以及docker-compose编排工具安装脚本 git clone https://github.com/luckman666/shell_scripts.git cd shel ...
- 迅为iMX6UL Cortex-A7架构单核ARM开发板接口介绍-支持定制
支持商业级和工业级核心板 1. POWER 电源接口电源输入为 5V/2A+,给核心板提供 5V 电源,给底板供电.原理图部分如下图所示. 电源接口位置如下图所示. 2. SWITCH 电源开关轻触电 ...
- mybatis 存储过程的写法
(注意事项: 在使用游标的时候,不能在游标声明之前,使用crud) 存储过程示例 CREATE DEFINER=`root`@`::` PROCEDURE `earnings_proceduce`() ...