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

2021-12-09 14:56:51 浏览数 (1)

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

  • 第一节
    • 从工程的角度去学习 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 的排名

截图于 2019年5月15日00:07:02

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

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

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

基本的介绍在下面的网站中介绍的比较清楚,我这里就不重复了 1、 登录网站: Jupyter初次使用 2、选择在游览器中使用 Jupyter Notebook

3、或者直接在命令行中 pip install jupyter,在本地也可以使用 Jupyter Notebook

接下来就是在云端的基本使用

4、进来之后是这样的,可能今天的人比较多,所以进不进去的就要随缘了,哈哈

5、等了很有一会,还是打开了,其实我本地的环境也安装好了,我用的编辑器是 Pycharm,环境搭建好了是可以直接创建 Jupyter Notebook的文件

6、新建好的文件就是这样的,网页端同样也是这个样子的

7、这里我写一个简单的脚本,打印1~100的偶数

8、我们这里写好了,但是需要运行,然后它会提示你要添加一个网址,也就是我们上面的网址,也就是刚才半天打不开的网址

9、我们新建一个 file,然后把网址输入到 pycharm 中。这样做,你写的代码也会同步上传到这个云端网站

10、运行结果如下

本地的使用大致就是这样,云端的使用它还支持保存,导出的功能,保证你的写的代码能保留

第三节

3.1 列表与元祖的选择

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

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

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

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

代码语言:javascript复制
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个字节

程序截图

元组的

代码语言:javascript复制
tup=()
print(tup.__sizeof__()) # 24

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

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

第四节

4.1 字典与集合的使用

4.1.1 python中的创建字典与集合
代码语言:javascript复制
# 字典
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 集合、字典可以存放混合数据
代码语言:javascript复制
s = {1,"2",3.0}
t = {1:"2","3":4.0}
4.1.3 字典、集合的元素索引操作

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

代码语言:javascript复制
print(s[0])

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

第五节 —— 字符串问题

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

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

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

七、循环与判断

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

代码语言:javascript复制
for item in iterator

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

  • 需要使用 values() 方法【获得键对应的值的集合】
  • 通过 items()【获得键值对的集合】
代码语言:javascript复制
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) 

0 人点赞