如何突破自身,成为编程高手
- 第一节
- 三个学习步骤
- 第二节
- 第三节
- 第四节
一步一个脚印、巩固基础,查漏补缺
第一节
从工程的角度去学习 Python
- 明确区分
- 根据不同需求选择不同语言
- 能够充分理解每种编程语言的特点
三个学习步骤
一、打好基础,勤加练习
- 多上手操作,练习的越多,掌握的越牢固
- 必要的基础:从基本数据类型,条件选择,于循环,到函数,即是第一步,这个时候就可以多去练习啦
- 网上找小项目去实现,积累代码经验(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 列表与元组的存储差异(知识遗漏补充)
列表是动态的,因此每次存放数据的时候都会动态的开辟新的内存
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个字节
程序截图
元组的
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 黑箱 —— 输入与输出
七、循环与判断
循环补充:只要是可以迭代的数据(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)