极客时间 Python技术核心与实战 学习笔记

如何突破自身,成为编程高手

  • 第一节
    • 从工程的角度去学习 Python
      • 三个学习步骤
        • 一、打好基础,勤加练习
        • 二、代码规范,必不可少
        • 三、开发经验
  • 第二节
    • 初次接触 Jupter Notebook
        • 一、Jupyter Notebook为什么这么火?
        • 二、Jupyter Notebook的基本使用(云端+本地)
  • 第三节
    • 3.1 列表与元祖的选择
    • 3.2 列表与元组的存储差异(知识遗漏补充)
  • 第四节
    • 4.1 字典与集合的使用
        • 4.1.1 python中的创建字典与集合
        • 4.1.2 集合、字典可以存放混合数据
        • 4.1.3 字典、集合的元素索引操作
  • 第五节 —— 字符串问题
  • 六、Python 黑箱 —— 输入与输出
  • 七、循环与判断

一步一个脚印、巩固基础,查漏补缺

第一节

从工程的角度去学习 Python

  1. 明确区分
  2. 根据不同需求选择不同语言
  3. 能够充分理解每种编程语言的特点

三个学习步骤

一、打好基础,勤加练习

  • 多上手操作,练习的越多,掌握的越牢固
  • 必要的基础:从基本数据类型,条件选择,于循环,到函数,即是第一步,这个时候就可以多去练习啦
  • 网上找小项目去实现,积累代码经验(Github,Stack Overflow)

二、代码规范,必不可少

  • 规范书写格式
  • 函数命名,变量名的命名做到见其名知其意
  • 严格要求自己,才能保证代码质量,也能和同伴的代码相互 review

三、开发经验

  • 完成项目积累经验
  • 多对自己的代码进行优化等等

edited by gorit on 2019年5月10日

第二节

初次接触 Jupter Notebook

一、Jupyter Notebook为什么这么火?

  • Jupyter 是一个几乎支持所有语言,能够把软件代码计算输出解释文档多媒体资源的一个多功能运算平台

  • 再来看看 GitHub 上 Jupyter 的排名
    极客时间 Python技术核心与实战 学习笔记_第1张图片
    截图于 2019年5月15日00:07:02

由此可见,此时不学Jupyter,更待何时?

其实 这么火是有原因的,Jupyter能够在你打完一行代码,自动给你运行出结果,这样能极大提高我们的开发效率

二、Jupyter Notebook的基本使用(云端+本地)

基本的介绍在下面的网站中介绍的比较清楚,我这里就不重复了
1、 登录网站: Jupyter初次使用
2、选择在游览器中使用 Jupyter Notebook
极客时间 Python技术核心与实战 学习笔记_第2张图片
3、或者直接在命令行中 pip install jupyter,在本地也可以使用 Jupyter Notebook

接下来就是在云端的基本使用
极客时间 Python技术核心与实战 学习笔记_第3张图片
4、进来之后是这样的,可能今天的人比较多,所以进不进去的就要随缘了,哈哈
极客时间 Python技术核心与实战 学习笔记_第4张图片

5、等了很有一会,还是打开了,其实我本地的环境也安装好了,我用的编辑器是 Pycharm,环境搭建好了是可以直接创建 Jupyter Notebook的文件
极客时间 Python技术核心与实战 学习笔记_第5张图片
6、新建好的文件就是这样的,网页端同样也是这个样子的
极客时间 Python技术核心与实战 学习笔记_第6张图片
7、这里我写一个简单的脚本,打印1~100的偶数
极客时间 Python技术核心与实战 学习笔记_第7张图片
8、我们这里写好了,但是需要运行,然后它会提示你要添加一个网址,也就是我们上面的网址,也就是刚才半天打不开的网址
极客时间 Python技术核心与实战 学习笔记_第8张图片
9、我们新建一个 file,然后把网址输入到 pycharm 中。这样做,你写的代码也会同步上传到这个云端网站
极客时间 Python技术核心与实战 学习笔记_第9张图片
10、运行结果如下
极客时间 Python技术核心与实战 学习笔记_第10张图片
本地的使用大致就是这样,云端的使用它还支持保存,导出的功能,保证你的写的代码能保留

第三节

3.1 列表与元祖的选择

列表和元祖均是可以存放任意数据类型的有序集合。这和集合不太一致,集合必须保证元素的类型都是一样的

  • 列表:是动态的,长度大小不固定,可以随意的增加,删除修改元素
  • 元祖:是静态的,长度大小固定,无法删除更改元素,如果需要添加元素,就需要创建一个新的元祖,开辟新的内存空间,但是元组的性能比列表会好一些

3.2 列表与元组的存储差异(知识遗漏补充)

列表是动态的,因此每次存放数据的时候都会动态的开辟新的内存

l=[] #创建一个空列表
print(l.__sizeof__()) #空列表,分配了20个空间

l.append(1)
print(l.__sizeof__())# 变成 36

l.append(2)
print(l.__sizeof__())# 还是 36

l.append(3)
print(l.__sizeof__())# 还是 36

l.append(4)
print(l.__sizeof__())# 4x4=16字节,int类型占四个字节,20+16=36字节的内存空间,刚好存满

l.append(5)
print(l.__sizeof__())# 52=36+16,每次申请空间自动申请16个字节

程序截图
极客时间 Python技术核心与实战 学习笔记_第11张图片
元组的

tup=()
print(tup.__sizeof__()) # 24

元组无法添加元素,所以只会预先分配一个int类型大小的内存空间

所以使用元组会比列表的效率往往会更高,但是要根据实际的情况来使用

第四节

4.1 字典与集合的使用

4.1.1 python中的创建字典与集合

# 字典
d1 = {'name':'jack','age':18,'gender':'male'}
d2 = dict({'name':'jack','age':18,'gender':'male'})
d3 = dict([('name','jack'),('age',18),('gender','male')])
d4 = dict(name='jack',age=18,gender='male')
print(d1 == d2 == d3 == d4)

# 集合
s1 = {1,2,3}
s2 = {3,1,2}
print(s1 == s2) 

返回值均为真,以上均为等价的

4.1.2 集合、字典可以存放混合数据

s = {1,"2",3.0}
t = {1:"2","3":4.0}

4.1.3 字典、集合的元素索引操作

前面的学习笔记中
我们接着上面的代码,我们试试打印集合的第一个元素

print(s[0])

在这里插入图片描述
报错了,我们发现集合不支持直接通过索引值(index),其实集合的实质是哈希表,集合中的每一个值都有一个固定的 HashCode,因此集合是无序的

第五节 —— 字符串问题

  • Python中的字符串用单引号,双引号,三引号处理,不过三引号常常用于多行注释
    eg:
a='111'
b="111"
c='''111'''
print(a == b == c) # True
  • 字符串使用 '+" 进行拼接操作,也可以使用join()函数,不过字符串中的值无法被修改
  • 字符串格式化输出
    eg:
# 格式化输出函数
name="Bob"
age=13

print("姓名:{},年龄:{}".format(name,age))
print("姓名:%s,年龄:%d"%(name,age))

六、Python 黑箱 —— 输入与输出

极客时间 Python技术核心与实战 学习笔记_第12张图片

七、循环与判断

循环补充:只要是可以迭代的数据(iterable),比如列表,元组,集合。都可以通过以下方式遍历

for item in iterator

字典只有键是可迭代的,也就是说,如果要获得键对应的值

  • 需要使用 values() 方法【获得键对应的值的集合】
  • 通过 items()【获得键值对的集合】
a = {"a":1,"b":2,"c":3,"d":4}
#取键
for i in a:
    print (i, end=" ")
print ()
#取值
for i in a.values():
    print(i,end=" ")
print()
# 取键值集合
for i in a.items():
    print (i, end=" ")

# 输出
# a b c d 
# 1 2 3 4 
# ('a', 1) ('b', 2) ('c', 3) ('d', 4) 

极客时间 Python技术核心与实战 学习笔记_第13张图片

你可能感兴趣的:(学习笔记,Python学习,进阶)