读书笔记之《编程小白的第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 开发零基础,凡涉足一件未知的任务,最好先理清任务的逻辑结构,然后有目的地逐步学习.为实现我们的需求和设计,必须要学习前端.后端.服务器等一系列暂时陌生的知识,在此, ...
随机推荐
- SpringBoot 整合SpringMVC 原理探究
https://blog.csdn.net/cml_blog/article/details/70196572 Spring Web MVC 的配置 Bean :WebMvcProperties
- the little schemer 笔记(3)
第三章 cons the magnificent (rember a lat)是什么,其中a是mint,lat是(lamb chops and mint jelly) (lamb chops and ...
- linux软件的安装。使用rpm、yum或wget下载软件
介绍 在linux中安装软件一般有一下几种方式: a.通过rpm包安装 b.通过yum在线安装(联网) c.weget url 在线下载软件(只负责下载,不安装) 1.通过rpm包来进行软件的安装和卸 ...
- hashTable 和 hashMap的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,HashMap把Hashtable的contains方法去掉了,改成containsvalue和contai ...
- DoTween学习笔记
using DG.Tweening: Tweener 首先dotween在游戏刚开始运行时会默认进行一次初始化 DOTween.Init(); 如果为了有更好的效率,可以手动控制最大同时进行dot ...
- qconbeijing2017
http://2017.qconbeijing.com/schedule 第一天 (2017年4月16日/星期日) 签到 专题 主题演讲 快速进化的容器生态 微服务与 DevOps 最佳实践(厂商 ...
- JavaScript整理
JavaScript是脚本语言 常用对话框: alert()——警告对话框,作用是弹出一个警告对话框 confirm()——带确定和取消按钮,返回True或false prompt()——弹出一个可以 ...
- python工具之日志记录
''' 写日志类 日志存放目录为当前应用程序的目录下的log目录中 日志产生规则:每小时产生一个文件 write by :wujf 2017-02-24 ''' import sys import o ...
- 【转】一个Java对象到底占多大内存?
最近在读<深入理解Java虚拟机>,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好 ...
- 5款好用的mysql客户端
1. EMS SQL Manager for MySQL 是一款高性能MySQL数据库服务器系统的管理和开发工具.它支持从MySQL 3.23到6.0的任一版本,并支持最新版本的MySQL的特点,包括 ...