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基础教程(第二版)     

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/Blogs-Wang/p/python.html
Copyright © 2011-2022 走看看