本书电子版下载地址:百度网盘

写在前面:你需要这本书的原因

有没有那一个瞬间,让你想要放弃学习编程?

在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9点,同事都下班之后,独自留在办公室编程。

做任何事情一定有在短期内简单可行的办法。 学习不应该是苦差事,而应该是快乐的,重要的是找到适合自己的学习方法。

高效学习法的核心在于:

  1. 精简:学习最核心的关键知识;
  2. 理解:运用类比、视觉化的方法来理解这些核心知识;
  3. 实践:构建自己的知识体系之后,再通过实践去逐渐完善知识体系。

我不追求让你达到精通的程度,事实上我也很怀疑有哪本书真正做到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

  1. 比较运算符
符号 描述
== 左右相等时返回True
!= 左右不等时返回True
> 左边大于右边时返回True
< 左边小于右边时返回True
>= 左边大于等于右边时返回True
<= 左边小于等于右边时返回True
  1. 成员运算符与身份运算符in&is

in、not in,表示归属关系的布尔运算符 is、is not,表示身份鉴别的布尔运算符

  1. 布尔运算符
运算符 描述
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循环?

  1. 在循环过程中制造某种可以使循环停下来的条件P69
  2. 改变使循环成立的条件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)

  1. 列表中的每一个元素都是可变的;
  2. 列表中的元素是有序的;
  3. 列表可容纳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)

  1. 字典中数据必须以键值对的形式出现;
  2. 逻辑上讲,键不能重复,值可以重复;
  3. 字典中的键(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入门书》的更多相关文章

  1. 《HTML5与CSS3基础教程(第8版)》

    <HTML5与CSS3基础教程(第8版)> 基本信息 原书名:HTML and CSS:visual quickstart guide 作者: (美)Elizabeth Castro    ...

  2. HTML5与CSS3基础教程(第7版) 高清PDF扫描版​

    HTML5与CSS3基础教程(第7版)试读不仅介绍了文本.图像.链接.列表.表格.表单.多媒体等网页元素,也介绍了如何为网页设计结构.布局,添加动态效果.格式化等形式,此外还涉及调试和发布.聚合和吸引 ...

  3. HTML5与CSS3基础教程(第8版) PDF扫描版​

    <HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...

  4. 【02】HTML5与CSS3基础教程(第8版)(全)

    [02]HTML5与CSS3基础教程(第8版)(全)   共392页.   (魔芋:大体上扫了一遍.没有什么新东西,都是入门的一些基础知识.) 已看完.       [美]elizabeth cast ...

  5. HTML5与CSS3基础教程第八版学习笔记11~15章

    第十一章,用CSS进行布局 开始布局注意事项 1.内容与显示分离 2.布局方法:固定宽度和响应式布局 固定宽度,整个页面和每一栏都有基于像素的宽度 响应式布局也称为流式页面,使用百分数定义宽度 3.浏 ...

  6. HTML5和CSS3基础教程(第8版)-读书笔记(3)

    第11章 用CSS 进行布局 网站设计主要有两大类型:固定宽度和响应式. 对于固定(fixed)布局,整个页面和每一栏都有基于像素的宽度.顾名思义,无论是使用移动电话和平板电脑等较小的设备查看页面,还 ...

  7. HTML5和CSS3基础教程(第8版)-读书笔记(2)

    第7章 CSS构造模块 7.1 构造样式规则 样式表中包含了定义网页外观的规则.样式表中的每条规则都有两个主要部分:选 择 器(selector) 和 声 明 块(declaration block) ...

  8. HTML5和CSS3基础教程(第8版)-读书笔记

    第1章 网页的构造块 一个网页主要包括以下三个部分: n        文本内容(text content):在页面上让访问者了解页面内容的纯文字. n        对其他文件的引用(referen ...

  9. HTML5和CSS3基础教程(第8版)-读书笔记(4)

    第16章 表单 表单有两个基本组成部分:访问者在页面上可以看见并填写的控件.标签和按钮的集合:以及用于获取信息并将其转化为可以读取或计算的格式的处理脚本. 基本的表单字段类型包括文本框.单选按钮.复选 ...

  10. 读书笔记之《HTML5 与 CSS3 基础教程》

    1· 读前预期 考虑到对于 Web 开发零基础,凡涉足一件未知的任务,最好先理清任务的逻辑结构,然后有目的地逐步学习.为实现我们的需求和设计,必须要学习前端.后端.服务器等一系列暂时陌生的知识,在此, ...

随机推荐

  1. Python基础知识(1)

    Python 3 1:print:输出信息    例子:   ( 所有的标点符号都要是英文状态下输入,要不然会报错) print(“hello world”) 2:注意 : python 和 pyth ...

  2. Calculation 2 HDU - 3501

    https://vjudge.net/problem/HDU-3501 不会做啊...记一下做法 做法是计算小于n且与n互质的数的和:根据如果gcd(i,n)==1,那么gcd(n-i,n)==1,对 ...

  3. LCA UESTC 92 Journey

    题目传送门 题意:先给一棵树,然后有一条额外的边,问u走到v从现在最短的路走和原来不加边走的路节省了多少距离 分析:首先跑不加边的树的LCA,这样能求出任意两点的距离,那么现在x和y多连了一条边,如果 ...

  4. Codeforces Round #319 (Div. 2)

    水 A - Multiplication Table 不要想复杂,第一题就是纯暴力 代码: #include <cstdio> #include <algorithm> #in ...

  5. magento package

    Magento Local module file is relative to app/code/local/ Magento Community module file is relative t ...

  6. 18.5.1使用Proxy和InvocationHandler创建动态代理

    package d18_5_1; public interface Person { void walk(); void sayHello(String name); } package d18_5_ ...

  7. String的用法——构造方法

    package cn.itcast_01; /* 字符串:就是多个字符组成的一串数据,也可以看成一个字符数组 *通过API,我们得知: A: 字符串字面值,如abc,也可以看做一个对象 B:字符串是常 ...

  8. (一)Mybatis之初步接触

    Maven的安装及环境配置 安装及配置只需按照以下三个链接的步骤走 撸帝的博客https://www.funtl.com/zh/maven/Maven-%E5%AE%89%E8%A3%85%E9%85 ...

  9. 【转】哪个更快:Java堆还是本地内存

    译文出处: shenzhang   原文出处:原文链接 使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放.当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配.堆 ...

  10. 利用贝塞尔曲线绘制(UIBezierPath)自定义iOS动态速度表,可以自定义刻度,刻度值,进度条样式

    GitHub的Demo下载地址 使用UIBezierPath画图步骤: 创建一个UIBezierPath对象 调用-moveToPoint:设置初始线段的起点 添加线或者曲线去定义一个或者多个子路径 ...