zoukankan      html  css  js  c++  java
  • 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!"+" my name is"+"wang")

            print("hello %s! my 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基础教程(第二版)     

  • 相关阅读:
    logcat 自动清屏
    eclipse debug (调试) 学习心得
    黑马面试题
    如何分析解决Android ANR
    植物大战僵尸(一)
    cocos2d-小游戏
    VIM编辑器的使用
    面试题之排序总结
    面试题链表总结
    微软大楼设计方案(中等)(2017 计蒜之道 初赛 第六场)
  • 原文地址:https://www.cnblogs.com/Blogs-Wang/p/python.html
Copyright © 2011-2022 走看看