python 学习笔记1

目录


 一、开发IDE pycharm破解

           去官方下载(https://www.jetbrains.com/pycharm/download/#section=windows)最新版,然后选择license server,输入: http://xidea.online。破解。现在很好用,以后不好说。

二、pip

         (windows版)默认的python 没有安装,需要去官方下载。下载完成,用管理员命令行,进入pip目录,然后输入:python setup.py install。安装包直接用 python pip install requests,

         

三、python 类型

            python是弱类型的语言,不用声明变量类型名称:如:name=zhang

3.1 int和long

            当一个int的变量超过2*32-1的时候会自动变成long。

3.2.bool类型

           True和False   注意这里的True和False 首字母都是大写。

3.3 str类型字符串

3.3.1 普通字符串

     ‘str’ 字符 “str” 都表示字符串。普通字符串末尾加 \ (反斜杠)表示换行。

       例子:s='s'   单引号和双引号都表示字符串     ss="ss"

 

3.3.2 、 长字符串 

        ‘’‘ ’‘’和”“” “”“ 都表示长字符串,可以跨多行。

          sssr=''' s s

                   s '''

3.3.3 、原始字符串

         原始字符串以r开头,在原始字符串当中反斜杠 \ 不会当成特殊字符处理。(但是结尾不能是\(反斜杠) 会报错。因为python不知道是否要结束原则字符串,需要额外转义)。

        

3.3.4 、Unicode字符串

      又称为unicode对象。Python中普通的字符串是以8为的ascll存储的,而uncode字符串存储为16位的unicode字符,这样能表示更到字符集,支持大多数语言的特殊字符。

      

 

3.4 repr 函数

         repr(函数)和 ``(反逗号,3.0版本中已经去掉),都可以将值创建一个字符串,以合法的python表达是表示。

        

3.5 万恶的+号

        其内部原理,python 没有字符串,字符串实际是连续的字符数组。当字符串添加字符的时候,放弃原有的字符数组,新建立新的连续字符数组。用+拼接可想而知。

        print("hello "+"zhang!"+"\nmy name is"+"wang")

        print("hello %s!\nmy name is %s" %("zhang","wang")) # 这个的效率更高,因为只有一个字符串。 

       这样,也是一样的效果,同print('hello %s' %('zhang'))

3.6 注释

          pyhton 单行注释用# ,多行注释用(三个点)。选中多行按下ctrl+/ 可注释选中的行。  

# 这是单行注释

''' 
我是多行注释 
'''

 

3.7 input()

         相当于C# Console.ReadLine()。将所有输入信息看作字符串,以字符串返回,然在2.0版本input(),如果输入的是数字,返回的也是数字类型。在2.0版本所有输入返回字符串函数是 raw_input(),但是3.0时候raw_input()去掉了,直接是input()。

四 、列表和元组         

4.1 、  通用的序列操作。//序列包括6种:列表、元组其他内建序列类型、Unicode字符串、buffer对象、xrange对象。

            1、索引  []  ,Python 索引是从0开始的,最后一个是-1。(字符串也是一个由字符组成的字符数组)

            2、切片 [<开始下标>:<分片之后剩余元素的开始下标>],分片是指取一定范围的元素。

                 2.1、 [<开始下标>:<分片之后剩余元素的开始下标>:<获取元素是,间隔多少个元素取下一个。默认是 1>],如果想从右到左获取元素,【10:3:-1】将间隔元素变成负数(这里注意,变成负数,是从最后一个元素开始算起的)。

                 2.2、[<开始下标>:] ,这里不设置,剩余原始的开始下标,表示取到数组的最后一个元素。开始为空,表示第一个元素开始。

           3、序列相加。

              【1,2,3】+【4,5,6】=【1,2,3,4,5,6】

               ‘hello '+'world'='hello world'

                [1,2,3]+'hello' ==error ,序列可以相加,但是必须相同类型的。

          4、乘法。

               ['序列']*5得到包含5次重复的这些序列。.。注意 None,Python内置函数,表示什么都没有,可以使用[None]*5,生成占5位的空值序列。

          5、成员资格

               检查成员是否存在使用in,包含2种类型,

               1、'world' in ['hello', 'world']     得到True //这里判断的是 ,(逗号)分隔的元素整体

               2. 'worl' in 'hello world' 得到true   //这里判读是,序列当中是否含有,连续的字符。

                

               6.长度,最小值,最大值

                           内建函数 len,min和max非常有用,len返回序列中元素个数,min和max分别返回序列中的最小值和最大值。

           

                

4.2 、列表:Python的苦力。

         1.list函数 。通过list函数,也可以把元组转为列表。

         2基本的列表操作

            2.1 改变列表:元素赋值

                 列表的赋值,使用索引:x[3]=1 //不能为不存在元素的位置赋值。

           2.2删除元素

               x=[1,2,3]        delx[2]  //删除下标为2的元素。

          2.3分片

              修改,替换

             

             插入新元素

           

                            删除元素

 

      3、列表的方法

           3.1、append(<value>)  //在列表尾部添加新的元素

           3.2、count(<value>)   //计算某个元素在列表中出现的次数。

           3.3、extend(<list>)  //在列表的尾部,添加新的多个元素。也可以说,用另一个列表扩展现有列表。(特别注意:extend()和原始连接(也就是“” + “ ”)很像但不是,原始连接时返回全新的列表。而extend和分片是一样的,只是扩展原来的列表。)

           3.4、index(<value>)   //从列表中找出某个值第一个匹配项并返回它的下标。(如果值不存在,会报异常。)

 

           3.5、insert(<index>,<value>)  //将值插入列表的指定位置。可用分片实现 number[3:3]=[4]

           3.6、pop()和pop(<index>) //无参数默认移除并返回最后一个项的值,也可移除指定下标项的项,并返回该项的值。(移除不存在的项会报错)

           3.7、remove(<value>)  //移除和某个值在列表中的第一个匹配项。注意该方法没有返回值

           3.8、reverse()     //想列表中的项,反向存放。注意没有返回值。

           3.9、sort()  //对列表进行排序  sorted(<list>)方法也是一样的排序。按python的默认规则排升序。sorted(<list>).reverse(),反转成降序。

           3.10、sort(key=none,reverse=False)  //高级排序 ,其中的key是排序的规则,reverse是是否反转。

      4、元组 //不可变的序列

           元组和list一样是一种序列,唯一不同是元组不能修改。元组定义非常简单,用逗号(,)分割一些值就可以定义。

         空元组          也可以用(33,)定义。

           

      4.1、tuple(<list>)  //可以把list转换为元组。

      4.2、基本操作

                   元组和list基本操作一样,除了没有修改操作,获取操作是一样的。要注意的是,元组的值得子集,是可以修改的。

五、使用字符串

    5.1、 字符串的基本操作

          所有的序列操作字符串都可以用(索引,分片,乘法,判读成员资格,求长度,取最小值,取最大值)等。但因为字符串不可变,随意分片赋值不可以用。

     5.2、字符串格式化:精简版  在字符串内部%,为字符串格式化操作符。输出的时候,%左边为格式化字符串,%右边,可以一个字符串的数字、字符,或多个值得,元组和字典。(要输出%号,必须使用%%)

     5.3、字符串格式化完整版

          基本的转换说明符

            %字符:标记转换说明符的开始。

            转换标志(可选):-表示左对齐;+表示在转换值之前要加上正负号;“ ”(空白字符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充。

            (.)后跟精度值(可选):如果转换的是实数,精度值表示出现小数点后几位数,如果是字符串表示该数字表示的最大字段宽度。如果是*那精度将从元组中读取。

            转换类型:d,i 数字  o 不带符号的八进制 u不带符号的十进制 x不带符号的十六进制(小写)X不带符号的十六进制(大写)e/E科学计数浮点(小写/大写) f.f十进制浮点 g/G 指数大约-4或者小于精度值则与e/E相同,其他情况与f相同

                           C  单个字符 r(repr)字符串  s(str)字符串

            

       5.4、字符串的方法

            1、find() //在一个子字符串中查找子字符串,并返回字字符串所在下标的左端索引。如果没找到返回-1。

            2、join()  //非常重要的字符串方法。是split方法的逆向。用来在队列中添加元素:注意必须是字符类型。

            3、lower() //返回字符串的小写字母版。

            4、replace() //然后所有匹配项都被替换以后的字符串。

            5、split() //非常重要的方法,是join方法的逆向。用来将字符串分割成序列。‘1+2+3’.split('+')

            6、strip()/strip(<value>)  //返回去除两侧空格或者两侧指定匹配字符的字符串。

            7、translate() //据说和replace差不多,不多只能处理单个字符。没搞懂。

六、字典      

           1、创建和使用字典。

            personinfo={'name':'张', 'age':16}

           2、dict 函数(dict是类型,同str、list、tuple)

                  可以通过其他字典,或者键值序列建立字典。也可通过dict关键字建立字典。

            3、基本操作类型

                  len(d) //返回字典d中项(键值对应)的个数;

                  d[k]  //返回关联到键k上的值;

                  d[k]=v //将值v关联键k上;

                  del d[k] //删除键为k 的项;

                  k in d //检查d中是否含有键位k的项;

                  键类型  //字典的键可以定义多种类型:整数型、浮点型、字符串和元组等不可变类型。

                  自动添加 // 即使某个键不再字典中,也可为他创建一个值,字典会创建新项。

                  成员资格   // k in d(d为字典) 查找的是键而不是值。注意 v in l(l为列表),查找的是值,而不是索引。

             4、字典的格式化字符串

              在每个转换说明符%字符后面,加上(用圆括号括起来的)键,后面再跟上其他说明元素。

            5、字典的方法

                5.1、clear() //清除字典中所有的项。类型list.sort()方法无返回值(返回None)。

                两种情况,x和y指向同一个字典。例1 x用新字典来清空,对y没有一点影响。他还是关联到原来的字典。可能是特意为之,但如果真的想清空原字典的所有想,必须使用clear。这样对应的y也被清空。

               5.2、copy()  //返回一个具有相同键值对的新字典(这个方法实现的是浅复制(shallow copy),因为值本身是相等的(指向同一个值),而不是副本)。

                     可以看出,当副本中的值替换的时候,原字典不受影响。但当修改某个值得时候(原始修改,而不是替换),原始的字段也会改变,因为同样值也存在元字典上。避免以上的问题可以使用深拷贝(deep             copy),复制其所有包含的值。可以使用copy模块的deepcopy函数来完成操作

                     

            5.3、formkeys() //使用给定的键建立新的字典,每个键默认对应值None。

            5.4、get() //更加宽松的访问字典项的方法。get(<key>,<defaultValue>),当用get方法,访问字典中不存在的键时候,默认返回None(不会报错,用dic[<key>]访问不存在的键会报错),也可以指定当访问的键不存在时默认返回的值。

            5.5、has_key()  //检查字典是否包含给定的键。在python3.0以后已经没有该方法,__contains__()方法实现同样的功能。

            5.6、items()和iteritems() //item方法将所有的字典项以列表的形式返回,这些列表项中的每一项都来自(键,值),但是没有顺序。iteritem()是针对item迭代器更高效(3.0已经没有该方法)。

                      

             5.7、keys()和iterkeys() //keys()将字典的key以列表的形式返回。iterikeys()是针对列表键的迭代器。

                      

            5.8、pop() //用来获取给定键的值,然后将这个键值对从字典中移除。

            5.9、popitem() //从字典中随机移除一个项,因为字典是无序的所以不能和list.pop一样移除最后一项。

            5.10、setdefault(<key>,<defaultValue>) //该方法类似get,返回字典中和该键匹配的对应的值,如果不存在该key,那就再字典中添加新项并且设置键值。注意如果不设置值,这默认None.

                     

             5.11、update() //可以利用字典项更新其他字典。

                     

              5.12、values()和itervalues()   //values 方法一列表的方式返回字典的值。注意和返回键不同,返回的列表可以有重复的值。

              小结:映射,映射可以使用任何不可变对象标识元素,其中最长用的类型是字符串和元祖。python中唯一内建映射是字典。字典还可以格式化字符串。

 主要学习资料,python基础教程(第二版)     

posted @ 2017-07-31 11:36  WangwangJie  阅读(367)  评论(0编辑  收藏  举报