文档章节

python学习—基础

 随性_
发布于 2015/10/15 10:28
字数 2609
阅读 111
收藏 5
点赞 0
评论 0

python目录中有两个关键性的目录:lib和Script

lib:包含了python的内置模块;当下载的第三方模块则在lib\site-packages内;

Script:包含了脚本exe文件;etc : pip.exe;easy_install.exe等;


python安装第三方模块的方式汇总:

一、方法1: 单文件模块
直接把文件拷贝到 $python_dir/Lib/site-packages/

二、方法2: 多文件模块,带setup.py
下载模块包,进行解压,进入模块文件夹,执行:
python setup.py install

三、 方法3:easy_install 方式
先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package了。
easy_install packageName
easy_install package.egg

四、 方法4:pip 方式
先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下。)
        安裝:pip install PackageName
        更新:pip install -U PackageName
        移除:pip uninstall PackageName
        搜索:pip search PackageName
        帮助:pip help

注:当前建议使用pip进行安装第三方模块

python的基本数据类型:

  • 空(None)
    表示该值是一个空对象,类似于java中的Null
  • 布尔类型(Boolean)                                              
    在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也被当作False,其他对象均为True
  • 整形(Int)                                                      
    在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制
    整形做取余和除算法的时候,按floor取值:
    17/10 # 1
    17/-10 # -2
    -17/10 # -2
    
    17%10 # 7
    17%-10 # -3
    -17% 10 # 3

  • 浮点数(float)                                          
    Python的浮点数就是数学中的小数,类似C语言中的double。之所以称之为浮点数,即是因为用科学计数法表示时,浮点数中的小数点是可以变动的;如:
    1.2e8  <==> 0.12e9
    注:在运算中,整数与浮点数运算的结果是浮点数

  • 字符串(String)
    Python字符串即可以用单引号也可以用双引号括起来,甚至还可以用三引号括起来
    'ab c' # 有四个字符:a、b、空格、c
    'i\'m ok' # \用来做转义字符
    r'\\\t\\\' # r表示''内部的字符串默认不转义
  • 针对字符串的操作:
    # 去空格及特殊符号
    # strip:在首尾部分去除指定的字符串;当没有指定字符时,去除首尾空格
    # lstrip: 去除左边的指定字符串
    # rstrip:去除右边的指定字符串
    theString = 'saaaay yes no yaaaass'
    print theString.strip('say') 
    print theString.strip('say ') #say后面有空格 
    print theString.lstrip('say') 
    print theString.rstrip('say') 
    
    结果:
    yes no 
    es no 
    yes no yaaaass 
    saaaay yes no
    
    # 字符串包含 判断操作符:in,not in
    
    # string模块,还提供了很多方法,如
    S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
    S.rfind(substring,[start [,end]]) #反向查找
    S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
    S.rindex(substring,[start [,end]])#同上反向查找
    S.count(substring,[start [,end]]) #返回找到子串的个数
    
    S.lowercase()
    S.capitalize()      #首字母大写
    S.lower()           #转小写
    S.upper()           #转大写
    S.swapcase()        #大小写互换
    S.split(str, ' ')   #将string转list,以空格切分
    S.join(list, ' ')   #将list转string,以空格连接
    
    处理字符串的内置函数
    len(str)                #串长度
    cmp("my friend", str)   #字符串比较。第一个大,返回1
    max('abcxyz')           #寻找字符串中最大的字符
    min('abcxyz')           #寻找字符串中最小的字符
    
    string的转换
                
    oat(str) #变成浮点数,float("1e-1")  结果为0.1
    int(str)        #变成整型,  int("12")  结果为12
    int(str,base)   #变成base进制整型数,int("11",2) 结果为2
    long(str)       #变成长整型,
    long(str,base)  #变成base进制长整型,


  • 列表(List)
    用符号[]表示列表,中间的元素可以是任何类型,用逗号分隔。list类似C语言中的数组,用于顺序存储结构;list取元素可以顺序也可以倒序取;如:
  • list = ['a', 'b', 'c']
    print list[2] # 取list中的最后一个元素,len(list)-1即是list最后一个元素的位置
    print list[-1] # 倒数第一个元素
    print len(list) # 获得list中元素的个数
    
    #--------list是可变的有序表,所以可以动态的增删改查list中的元素
    list.append('d') # 默认追加到尾元素 a,b,c,d
    list.insert(0, 'd') # 指定索引添加元素 d,a,b,c
    在列表中插入一个值
    sample_list[0:0] = ['sample value']
    list.pop(...) # pop不带参数默认删除尾元素,参数指定list元素索引,#返回最后一个元素,并从list中删除
    list.remove(var)   #删除第一次出现的该元素
    L.count(var)    #该元素在列表中出现的个数
    L.index(var)    #该元素的位置,无则抛异常 
    L.extend(list)  #追加list,即合并list到L上
    L.sort()        #排序
    L.reverse()     #倒序
    [1,2]+[3,4] #为[1,2,3,4]。同extend()
    [2]*4       #为[2,2,2,2]
    del L[1]    #删除指定下标的元素
    L1 = L[:]   #L1为L的克隆,即另一个拷贝。
    用in语法判断list是否包含该元素
    print 1 in list
    list[0] = 'e' # 直接替代元素 e,b,c  # list中的数据类型可以不一致,类似java中的数组,list中可以包含list
  • 元祖(tuple)
    元组是和列表相似的数据结构,但它一旦初始化就不能更改,速度比list快,同时tuple不提供动态内存管理的功能,需理解一下规则:
    tuple可以用下标返回一个元素或子tuple
    表示只含有一个元素的tuple的方法是:(d,)后面有个逗号,用来和单独的变量相区分
    tuple = (1, 'a', ['x', 'b'])
    print tuple # 1, 'a', ['x', 'b']
    tuple[2][0] = 'y'
    tuple[2][1] = 'c'
    print tuple # (1, 'a', ['y', 'c']) # 发现tuple中元素有变,其实tuple指定的list内存地址是没有变化的,变化的是list中的元素
  • 集合(Set)
    集合是无序的,不重复的元素集,类似数学中的集合,可进行逻辑运算和算术运算

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    要创建一个set,需要提供一个list作为输入集合:

    >>> s = set([1, 2, 3])
    >>> s set([1, 2, 3])
    注意,传入的参数[1, 2, 3]是一个list,而显示的set([1, 2, 3])只是告诉你这个set内部有1,2,3这3个元素,显示的[]不表示这是一个list。
    可以通过add,remove添加和删除元素
    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错
  • 字典(dict)
    字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dictionary = {key:value}。关键字为不可变类型,如字符串、整数、只包含不可变对象的元组,列表等不可作为关键字。如果列表中存在关键字对,可以用dict()直接构造字典
    dict中的元素可以动态通过key增加,由于一个key只能对应一个value;当后key相同时,后面的value会将前面的值进行重置;
    dict = {'java': 'diffcult', 'python':'middle'}
    print dict['java'] # diffcult
    print dict.get('java') # diffcult
    dict.pop('java')
    print dict # {'python': 'middle'}
    dict定义的方式和特性:
    info = dict(name = 'old') # {'name':'cold'} # 更优雅
    info = {'name': 'old'} # {'name':'cold'} 
    
    key = 'name'
    info = {key: 'old'} # {'name':'cold'}
    info = dict(key='old') # {'key':'cold'}
    
    #Python字典还有一种初始化方式,就是使用字典的fromkeys方法可以从列表中获取元素作为#键并用None或fromkeys方法的第二个参数初始化
    info = {}.fromkeys(['name', 'blog']) # {'blog': None, 'name': None}
    info = dict().fromkeys(['name', 'blog']) # {'blog': None, 'name': None}
    info = dict().fromkeys(['name', 'blog'], 'linuxzen.com') # {'blog': 'linuxzen.com', 'name': 'linuxzen.com'}
    
    # 但是如果获取不存在的键的值就会触发的一个KeyError异常,字典有一个get方法,可以使用字典get方法更加优雅的获取字典
    info.get(key) # None
    
    #我们看到使用get方法获取不存在的键值的时候不会触发异常,同时get方法接收两个参数,#当不存在该键的时候就会返回第二个参数的值 我们可以看到使用get更加的优雅
    info.get(key, default) # default
    
    # 同时Python字典的update方法也可以更新和添加字典
    info = dict(name='cold', blog='linuxzen.com')
    info.update({'name':'cold night', 'blogname':'linuxzen'})
    info.update(name='cold', blog='www.linuxzen.com') # 更优雅
    
    结果:
    {'blog': 'www.linuxzen.com', 'name': 'cold', 'blogname': 'linuxzen'}
    
    # 字典删除
    del info['name']
    info.pop('name')
    # 字典查找
    info.has_key(key)      #有该键返回TRUE,否则FALSE
    info..clear()           #清空字典,同del dict 
    info.copy()      #拷贝字典
    info.cmp(dict1,dict2)  #比较字典,(优先级为元素个数、键大小、键值大小)  #第一个大返回1,小返回-1,一样返回0


    和list比较,dict有以下几个特点:
  • 查找和速度极快,不会随着key的增加而增加
  • 需要占用大量的内存,内存浪费多
    而list相反:
  • 查找和插入的时间随着元素的增加而增加
  • 占用空间小,浪费内存很少

    python有内置模块types:
    NoneType = type(None)
    TypeType = type
    ObjectType = object
    IntType = int
    LongType = long
    FloatType = float
    BooleanType = bool
    StringType = str
    BufferType = buffer
    TupleType = tuple
    ListType = list
    DictType = DictionaryType = dict
    ClassType = type(_C)
    InstanceType = type(_x)
    FileType = file


  • 常见的函数:
  • range(5) : 生成大于等于0,小于5的整形;
  • raw_input() :读取的内容永远以字符串显示返回
  • abs() : 取绝对值,只能传一个参数,且参数类型是整形或浮点型
  • cmp(x,x): 比较函数,需要两个参数
  • int(),float(),str(),unicode(),bool(): 数据类型转换
  • isinstance(x,int): 数据类型进行检查,判断该数据是否为某种类型
  • 函数中的return返回的是tuple类型
  • capitalize() : str对象的方法,将字符串首字母大写,其它为小写的方法
  • type(): 判断对象类型
  • dict(): 如果要获得一个对象的所有属性和方法,可以使用dir()函数,它返回一个包含字符串的list
  • len():获取一个对象的长度


© 著作权归作者所有

共有 人打赏支持
粉丝 8
博文 16
码字总数 18722
作品 0
南昌
机器学习的最佳学习路线原来只有四步

AI这个词相信大家都非常熟悉,近几年来人工智能圈子格外热闹,光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。 在机器学习领域,Python已...

ufv59to8
05/12
0
0
七步教你Python进行机器学习

网络上有很多Python学习资源和机器学习学习资源,对于一个新手而言,如何开始呢?本篇文章将教你七步学会使用Python进行机器学习。 万事开头难。面对纷繁万千的网络学习资源,不知如何下手,...

断桥残雪断桥残雪
2015/11/20
0
0
什么样的人学Python比别人快?Python的学习大纲有哪些?

什么样的人学Python比别人快? 为什么会是这些人?前两类大家应该都没什么意见,为什么最后两类会学得快?这两类说白了就一个关键词:转行!既然决定转行,有太多需要学习的东西,太多不适应...

帅帅程序员
04/28
0
0
荐书丨确认过眼神,这份Python书单一定是你的菜

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 Python 是军刀型的开源工具,被广泛应用于Web 开发、爬虫、数据清洗、自然语言处理、机器学习和人工智能等方...

csdnsevenn
05/05
0
0
新课上线|Python实现图片拼接与混合、XML-RPC文件共享程序等

关注「实验楼」,每天分享一个项目教程 最近又上线了哪些新课程?快来看看吧~ 会 员 课 一、《Python3 实现图片拼接与混合》 课程来源:selfim 课程简介:本课程主要是利用 Python 的第三方...

moy37rqw1jarn33bgzk
05/12
0
0
一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者
04/25
0
0
python掀起了全民学习的热潮?

1、 要说这两年最火的关键词,一定是大数据和人工智能,连国务院都在去年7月发布了我国首个人工智能国家规划——《新一代人工智能发展规划》,从国家层面对人工智能进行顶层设计。 人工智能时...

qq_41597912
04/13
0
0
干货 | 学习Python的正确姿势

前段时间和大家一起分享了一篇关于学习方法内容《大牛与搬运工的差距——学习方法的力量》。我们将学习过程分成八步,并借鉴了敏捷开发的迭代思想,以达到自我迭代学习的效果。行胜于言,理论...

GavinHsueh
06/28
0
0
IT届各位大佬告诉你,为什么学习AI之前要学习Python!

在之前的全国高中信息“新课标”出炉!要想报考这些专业,必须得会……中,我们从政策上给大家阐述了为什么要学Python。今天,我们就来听听IT届各位大佬是怎么说的。 编程是一项社交活动。 ...

python达人
04/30
0
0
5本必读Python入门书籍,你都看过吗?(附福利)

今天技术学派为大家准备了5本Python入门书籍,除了书籍小编还整理了3个常用的资源网站分享给大家。 1.Python基础教程 《Python基础教程》是经典的Python入门教程书籍,本书层次鲜明,结构严谨...

Python燕大侠
06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试感想(一)

最近跟北京的同事朋友聊天,深深的发现自己的技术已经和主流技术脱轨了,目前公司求稳为主,使用的技术略有些过时,因此萌生出了换工作的念头,正值三伏天,可以说真是顶着一颗偌大的决心去参加面试...

勤奋的蚂蚁
2分钟前
0
0
Kafka设计解析(一)- Kafka背景及架构介绍

原创文章,转载请务必将下面这段话置于文章开头处。(已授权InfoQ中文站发布) 本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要   Kafka是由LinkedI...

mskk
11分钟前
0
0
使用Service Mesh整合您的微服务架构

在微服务架构的世界中,它正在达到这样的程度,即管理系统的复杂性对于利用它带来的好处变得至关重要。 目前,如何实现这些微服务不再是一个问题,因为有很多可用的框架(Spring Boot,Vert....

xiaomin0322
15分钟前
0
0
看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
33分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
36分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
38分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
40分钟前
1
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
44分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
47分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部