自学Python一 迷茫中的开端!

  有心学习一下Python,多门技术多条路啊。经历了找教程,看代码,写demo,这东西入门容易精通难啊!又因为请了两周婚假彻底忘光光。想了想自己还是边复习边写点什么东西吧。很多技术,新东西都是看了n多,看了n多但是却不会写,不会用。一是没有实践,二是没有养成那种思维方式!这篇就当是一篇流水账好了!

Python 是 What?

1.解释性语言(运行前不需要编译,如php)

  2.动态类型语言(声明变量的时候不需要说明变量类型)

面向对象的Python

  Python非常适合oop。函数和类都是第一类对象,函数既能返回函数类型也可以接受函数输入。支持通过组合和继承的方式定义类。注意:Python中没有访问说明符(public,private),这么设计的依据是“大家都是成年人了 23333”

Python安装及编译器配置及基础教程

这个就根据自己喜好了,可以用文本编辑器Vim或者Sublime Text,或者Pycharm,或者用Eclipse+Pydev 或者 VS2013 + python tools (请允许我保留我大vs一席之地!)

  入门教程:基础教程 博客类教程: Vamei大哥的python系列 廖雪峰老师的博客教程

  我接下来写的基础部分基本都是综合了两位大神的一些内容进行了实践,链接已上!支持开源,保护版权!

  那么接下来,我将尝试根据自己遇到的困难,克服自己的懒惰与眼高手低,逐一的去记录python的优雅!

  Action!

Python中的屠龙刀(用好了妙用无穷哦!)

  一、 切片

  list!众所周知,列表。有一系列内置方法的列表,如len(filelist) ,  filelist.append('xx.jpg')   , filelist.insert(1,'xx.jpg')  , filelist.pop()  filelist.pop(index)等

  tuple!元组,与list不同的是 元组初始化之后无法改变,所以没有list的insert() append()等方法,也不能重新赋值!

  有一个tuple如下:

1 t = ('a','b',['c','d'])
2 t[0] = 'A'    #error
3 t[3][0] = 'C'  #right

  好了,其实这也没什么难得,比c指针哪里好理解多了!谈这两个的原因是因为他设计到了python的高级特性:切片!

  对于一个list,打印出其所有元素怎么办,首先想到的是for循环遍历,在python中你可以这样:

 1 >>>L = list(range(100))
 2 >>>L
 3 [0,1,2,3,4,5...,99]
 4 
 5 >>>L[:]
 6 [0,1,2,3,4,5...,99]
 7 
 8 >>>L[0:10] #取索引0-索引10之间的数字(索引从0开始可以省略为L[:10])
 9 [0,1,2,3,4,5,6,7,8,9]
10 
11 >>>L[-10:] #取倒数索引后10个数字
12 [90,91,92,93,94,95,96,97,98,99]
13 
14 >>>L[10:20:2] #取索引10-索引20之间的数,每隔2个取一个
15 [10,12,14,16,18]

  tuple也可以这样,切片后得到的还是一个tuple,字符串也支持切片!

1 >>>'ABCDEFG'[:3]
2 'ABC'
3 >>>'ABCDEFG'[::2]
4 'ACEG'

  list排序

  1.list.sort(func=None,key=None,reverse=False)

  2.sorted(list)

  当然,访问list或者tuple的时候要注意索引不要超出,毕竟大家都是成年人了。。。不得不说,这个切片太方便了。

  二、迭代

  这个就不用多说了,在c#中经常用到,在访问数组,List,字典等等的时候经常foreach了!在Python中也一样,只要是Iterable类型就可以进行迭代!

 1 >>>from collections import Iterable
 2 >>>isinstance('abc',Iterable)#字符串是否可迭代
 3 True
 4 >>>ininstance([1,2,3],Iterable)#列表是否可迭代
 5 True
 6 
 7 #迭代时可以引用多个变量 
 8 >>>for x,y in [(1,1),(2,2),(3,3)]:
 9             print(x,y)
10 1 1
11 2 2
12 3 3
13 #等价于
14 >>>for item in [(1,1),(2,2),(3,3)]:
15             print(item[0],item[1])
16 
17 #python 内置的enumerate可以变列表变成索引-元素对
18 >>>for i,value in enumerate(['a','b','c'])"
19             print(i,value)
20 0 a
21 1 b
22 2 c

(未完待续。。。下一篇,lambda函数 列表生成器 装饰器)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

程序员C语言C加加新手小白入门基础最容易犯的17种错误,你中了几个?

相信这么努力的你 已经置顶了我 C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考...

2295
来自专栏Golang语言社区

Go语言中反射的正确使用

介绍 反射是元数据编程的一种形式,指的是程序获得本身结构的一种能力。不同语言的反射模型实现不一样,本文中的反射,仅仅指的是Go语言中的反射模型。 反射有两个问题...

36316
来自专栏北京马哥教育

深入 Python 字典的内部实现

字典是通过键(key)索引的,因此,字典也可视作彼此关联的两个数组。下面我们尝试向字典中添加3个键/值(key/value)对: 这些值可通过如下方法访问: 由...

36815
来自专栏zingpLiu

python基础(一)

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚...

2322
来自专栏微信公众号:Java团长

探秘Java中的String、StringBuilder以及StringBuffer

  相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilde...

802
来自专栏机器学习算法与Python学习

Python: 早点知道这些就不会这样了

现在在Python 2的代码中都用import from future来导入Python 3的输出和除法。现在用到的几乎所有库都支持Python 3,因此会很快...

2714
来自专栏我是攻城师

10行Java代码实现最近被使用(LRU)缓存

3704
来自专栏杨建荣的学习笔记

任务调度并行算法的Java简单实现

今天下午抽空写了下并行调度算法的Java版本,是想把这个思路先实现了,后面改写Python版作为参考,调试这个版本之后,再来写Python版,发现差别还不小。 ...

3526
来自专栏Golang语言社区

Go语言中反射的正确使用

介绍 反射是元数据编程的一种形式,指的是程序获得本身结构的一种能力。不同语言的反射模型实现不一样,本文中的反射,仅仅指的是Go语言中的反射模型。 反射有两个问题...

3608
来自专栏python3

python 递归与高阶函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

1494

扫码关注云+社区

领取腾讯云代金券