设为首页 收藏本站
查看: 1071|回复: 0

[经验分享] 深入Python(一)

[复制链接]

尚未签到

发表于 2015-4-22 06:20:18 | 显示全部楼层 |阅读模式
   Python 既是动态类型语言 (因为它不使用显示数据类型声明),又是强类型语言 (因为只要一个变量获得了一个数据类型,它实际上就一直是这个类型了)
  静态类型语言
  一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的。Java 和 C 是静态类型语言。
  动态类型语言
  一种在运行期间才去确定数据类型的语言,与静态类型相反。VBScript 和 Python 是动态类型的,因为它们确定一个变量的类型是在您第一次给它赋值的时候。
  强类型语言
  一种总是强制类型定义的语言。Java 和 Python 是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。
  弱类型语言
  一种类型可以被忽略的语言,与强类型相反。VBScript 是弱类型的。在 VBScript 中,您可以将字符串 '12' 和整数 3 进行连接得到字符串'123',然后可以把它看成整数 123 ,所有这些都不需要任何的显示转换。
  
当导入一个模块时,Python 在几个地方进行搜索。
  明确地,它会对定义在 sys.path 中的目录逐个进行搜索。它只是一个list (列表),您可以容易地查看它或通过标准的list方法来修改它。
  >>> import sys                 
  >>> sys.path                  
   ['', '/usr/local/lib/python2.2', '/usr/local/lib/python2.2/plat-linux2','/usr/local/lib/python2.2/lib-dynload', '/usr/local/lib/python2.2/site-packages','/usr/local/lib/python2.2/site-packages/PIL', '/usr/local/lib/python2.2/site-packages/piddle']
  >>> sys                        
  >>> sys.path.append('/my/new/path')
  在运行时,通过向 sys.path 追加目录名,就可以在 Python 的搜索路径中增加新的目录,然后当您导入模块时,Python 也会在那个目录中进行搜索。这个作用在 Python 运行时一直生效。
  Python 将搜索这些目录 (按顺序) 来查找一个与您正试着导入的模块名相匹配的 .py 文件。
  但不是所有的模块都保存为 .py 文件。有一些模块 (像 sys),是“内置模块”,它们实际上是置于Python 内部的。内置模块的行为如同一般的模块,但是它们的 Python 源代码是不可用的,因为它们不是用 Python 写的!(sys 模块是用 C 写的。)
在 Python 中一切都是对象,字符串是对象。列表是对象。函数是对象。甚至模块也是对象。
  sys 模块是一个对象,它有一个叫作 path 的属性;等等。
  
(字典)Dictionary 的值可以是任意数据类型,包括字符串、整数、对象,甚至其它的 dictionary。在单个 dictionary 里,dictionary 的值并不需要全都是同一数据类型,可以根据需要混用和匹配。
  Dictionary 的 key 要严格多了,但是它们可以是字符串、整数或几种其它的类型。
  

  extend (扩展) 与 append (追加) 的差别
  >>> li = ['a', 'b', 'c']
  >>> li.extend(['d', 'e', 'f'])
   >>> li['a', 'b', 'c', 'd', 'e', 'f']
  extend 接受一个参数,这个参数总是一个 list,并且把这个 list 中的每个元素添加到原 list 中
  >>> li = ['a', 'b', 'c']
  >>> li.append(['d', 'e', 'f'])
   >>> li['a', 'b', 'c', ['d', 'e', 'f']]
  append 接受一个参数,这个参数可以是任何数据类型,并且简单地追加到 list 的尾部
在 list 中搜索
  >>> li=['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
  >>> li.index("new")   
   2
  index 在 list 中查找一个值的首次出现并返回索引值

从 list 中删除元素
  >>> li=['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
  >>> li.remove("z")
  >>> li['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements']

remove 从 list 中删除一个值的首次出现
>>> li.pop()         

'elements'
pop 是一个有趣的东西。它会做两件事:删除 list 的最后一个元素,然后返回删除元素的值


使用 list 的运算符

>>> li = ['a', 'b', 'mpilgrim']
>>> li = li + ['example', 'new']
>>> li
['a', 'b', 'mpilgrim', 'example', 'new']

Lists 也可以用 + 运算符连接起来。list = list + otherlist 相当于 list.extend(otherlist)。但 + 运算符把一个新 (连接后) 的 list 作为值返回,而 extend 只修改存在的 list。也就是说,对于大型 list 来说,extend 的执行速度要快一些。

>>> li += ['two']               
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two']
Python 支持 += 运算符。li += ['two'] 等同于 li.extend(['two'])

>>> li = [1, 2] * 3              
>>> li
[1, 2, 1, 2, 1, 2]
* 运算符可以作为一个重复器作用于 list。li = [1, 2] * 3 等同于 li = [1, 2] + [1, 2] + [1, 2]


(元组)Tuple没有方法
Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
Dictionary key 必须是不可变的。Tuple 本身是不可改变的,Tuple 可以在 dictionary 中被用做 key,但是 list 不行。
Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个 list,并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple 返回一个 list。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59322-1-1.html 上篇帖子: 《转》python线程池 下篇帖子: 关于选用Python IDE的一些思考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表