zoukankan      html  css  js  c++  java
  • python基础语法汇编总结

    找帮助文档   dir(方法)   help(方法)

    例如:  dir(list)   找出列表的各种方法

    Python变量相当于一个标签,贴那大哪  ,指哪打哪

    输入: a=int(input(‘请输入一个整数:’))

    输出:print(‘这个整数的值为’,a)

    Python没有函数或者循环的边界括号,只根据缩进来识别那些代码是循环内的(即那些代码是循环体),

    条件语句即if else 或者while 语句后面都要加入: 即冒号

    Python变量不用定义,直接使用,更形象的说是一个标签

    缩进很重要,并没有悬挂else的现象,同一缩进级别的就是绑定的

    For循环,    与C不一样,Python的for循环可以自动的调用迭代器的next方法,并自动结束循环。很智能

    for 目标 in 表达式:

    循环体

    列表 是 C语言的数组

    定于  number=[1,2,3,4,5,5]

    Len()   求长度

    Range()  和 for 循环  是一对  

    Range(1:5)   生成1 到4 的序列        range(5)   生成0到4的序列

    列表 是 C语言的数组

    定于  number=[1,2,3,4,5,5]   列表里什么都可以放,同一列表中不同类型的数据也可以放    num=['123',123,4]      字符串 整数  对象 都可以往列表中扔

    num=[]   空列表

    向列表添加元素:

    Append方法       num.append(‘zhang’)   传入字符串  ‘zhang’  但是一次只能加入一个元素

    Extend     num.extend([‘zhang’,’li’])    以列表的形式进行扩展      可添加多个

    Insert(列表中的位置,插入的元素)

    向列表中插入元素:

    Remove(要移除的元素)   并不需要知道 要删除的元素存在哪个位置

    Del  删除整个列表

    Pop() 方法   取出最后一个元素,     并且将删除的元素返回

    Pop(索引值)  删除索引值对应的元素

    一次性获取多个列表元素:列表分片  或者切片

    Num[1:3]      获取索引值从1到2的元素      得到原来列表的拷贝,原来列表并没有改变   num[:3]   获取从第一个开始位置(索引为0)到索引2的元素

    num[2:]  获取从索引值为2到最后一个元素

    num[:]   全部元素

    其他操作:

      10 in num   假若10 在num中 返回1  否则 返回0

    10 not in num  假若10不在num中 返回1  否则返回0

    Num*3     将num列表中的元素 复制成三批  假若num=[1,2,3]    num*3 为

    [1,2,3,1,2,3,1,2,3]   此时的* 变成了重复操作符

    Num.count(123)   查找num中123  元素出现的次数 并返回

    Num.index(123)   返回元素123 在列表中的位置 (默认是第一个出现的元素)

    Num.index(123,3,7)    从三开始数 找123 的位置  一直到7

    num.Reverse()   整个列表元素原地反转

    Num.sort()    排序  默认从小到大排序    num.sort(reverse=true)   从大到小排列

    print('this is %.4f' %2.12345)

    this is 2.1235     格式输出

    元祖  中的元素定义后就不能改变了,不能删除和插入元素    但可以更新元祖  这一点和列表不一样。

    元祖创建时用小括号

    Tuple1=(1,2,3,,4,5,6,7,8)   元祖tuple1   访问元素的方法和列表一样

    一个元素的元祖的定义  tuple1=(1,) 或者tuple=1,   一定要有逗号  要不然就是整型了

    Tupl1=1,   

    Tuple2=(‘zhang’,’li’,’wang’ )   更新了元祖

    如何在元祖中插入元素       

    Tuple1=(‘李宁’,‘阿迪达斯’,‘耐克’,‘安踏’)

    加入361

    Tuple1=tuple1[:2]+(‘361’,)+tuple2[2:]     拼接

    合成   李宁 阿迪达斯  361  耐克  安踏

       

    字符串: str

    Str=’i love my school’

    Str[2]  找出索引为2的元素  也就是 l

    Python并没有字符的概念

    str=str[:2]+(‘361’,)+str[2:]     拼接      列表的一些基本操作   字符串也可以用   切片、 比较操作符,逻辑操作符  成员操作符 In  not in  都和列表是一样的  

    字符串格式化:  format 函数  接收位置参数 和关键字参数

    未知参数   '{0} love {1}.{2}'.format('i','you','now')       花括号是必须的    花括号代表代替字段

    'i love you.now'

    关键字参数     '{a} love {b}.{c}'.format(a=’i',b='you',c='now')

    结果一样

    '{{0}}'.format('你真牛逼')       输出 '{0}'    并不输出你真牛逼, 因为0已经被花括号包括,失去了之前的意义了、

    格式化:

    '{0:.2f}{1}'.format(2.345,'结果')         其中{0:.2f}  冒号表示 格式化的开始   后面跟的就是格式化操作符。   点2表示 保留两位小数    f 就是浮点数

    格式化字符串  和printF C语言 功能一样

     '%c'  % 97     打出 ‘a’   

     print('%c' %97)

    格式化整数:print('%d' %9.7)       输出  9

    列表  元祖 字符串 都是可以索引的, 且都是从0开始索引的  都可以分片  可以有一些基本的操作符 

    序列:列表  元祖 字符串的统称

    序列的常见的内置方法:

    List()  把一个对象转化为list列表 对象

    b='i love my school'

    b=list(b)

    B=['i', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'y', ' ', 's', 'c', 'h', 'o', 'o', 'l']

    Tuple()  把一个可迭代对象转化为元祖

    Len(a)   返回a的长度

    Max(a)   返回参数a(序列或者元祖的最大值)

    min(a)   返回参数a(序列或者元祖的最小值)

    Sum(a)    返回和                以上四者都需要 元素是统一的才可以

    Sorted()  排序

    Reversed()   反转   其结果并不是反转后的元祖 而是一=一个迭代器       我们使用:

    Tuple(Reversed())  或者list(Reversed())    即可返回反转后的元素

    list(enumerate(a))     枚举类型    a是一个列表   enumerate(a)  返回一个迭代器   需要加list  才可显示 

    [(0, 1), (1, 2), (2, 1), (3, 3), (4, 4), (5, 12)]  

    字典:

    字典用大括号定义  字典不是序列类型,他是映射类型,不能用索引来访问。

    dir1={'李宁':'一切皆有可能','耐克':'imposible is nothing','安踏':'永不止步',}

    李宁 是key   一切皆有可能就是值 value   他们用冒号隔开

    索引:

    print('安踏的口号是:',dir1['安踏'])

    安踏的口号是: 永不止步

    例:dir2={1:'zhang',2:'rui',3:'lin'}

    >>> dir2

    {1: 'zhang', 2: 'rui', 3: 'lin'}

    创建字典: dirct1={};

    使用dict函数     dict 仅是一个参数  

    dirt3=dict(((1,'zhang'),(2,'rui'),(3,'lin')))   所以要将三个元祖伪装成一个元祖   即三个括号(仔细理解下)

    >>> dirt3

    {1: 'zhang', 2: 'rui', 3: 'lin'}

    修改字典元素   原本:{1: 'zhang', 2: 'rui', 3: 'lin'}

     dirt3[1]='dashibi'

    >>> dirt3        

    {1: 'dashibi', 2: 'rui', 3: 'lin'}    即若字典中没有该索引,则自动添加一个。

    Fromkeys     创建一个新的键值 并返回   注意:只能定义  不能用于修改字典中的元素

    dict5=dict5.fromkeys((1,2,3),('one','two','three'))

    输出:

    {1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}

    dict5=dict5.fromkeys(1,('one',’zhang’)    以为修改字典中的第一个元素 ,其实不是、

    输出     dict5   为    1:zhang      即变成了一个新的字典

     e=dict5.fromkeys(range(12),'叼')

    >>> e

    {0: '叼', 1: '叼', 2: '叼', 3: '叼', 4: '叼', 5: '叼', 6: '叼', 7: '叼', 8: '叼', 9: '叼', 10: '叼', 11: '叼'}

    Keys()用法

    >>> for i in e.keys():

             print(i)

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    >>> 

    values()用法

    >>> for i in e.values(): 

             print(i)

    >>>

    获取元素 

    get() 方法

    检查索引值是否有

    例如 检查 键值32

    直接 32 in e    有就返回真  没有进返回 假     

    In  not in  是成员资格操作符

    清空字典

    Clear()

    Pop()   给定键弹出一个值

    Popitem()  弹出一个项

    Setdefault(5,’baba’)   加入键值为5   值为baba 

    Update()   用一个映射关系去更新字典

    dirt3={1:'zhang',2:'rui',3:'lin'}

    >>> dirt3

    {1: 'zhang', 2: 'rui', 3: 'lin'}

    >>> dirt3.pop(1)

    'zhang'

    >>> dirt3

    {2: 'rui', 3: 'lin'}

    >>> dirt3

    {2: 'rui', 3: 'lin'}

    >>> dirt3.setdefault(6,'baba')

    'baba'

    >>> dirt3

    {2: 'rui', 3: 'lin', 6: 'baba'}

    >>> b={'小白':'gou'}

    >>> dirt3.update(b)

    >>> dirt3

    {2: 'rui', 3: 'lin', '小白': 'gou', 6: 'baba'}

    集合:

    和字典是表兄弟  

    >>> jihe={12,3,4}    也是用大括号

    >>> type(jihe)

    <class 'set'>     这是集合    与字典的定义很像

    集合的元素是唯一的  重复的元素会被自动剔除

    集合是无序的   不能通过索引 

    创建集合:     jihe={1,2,3,,4}

    Set() 工厂函数   

    jihe=set([1,2,3,4])    set()函数的参数此时为列表  也可以为元祖 或者字符串

    >>> jihe

    {1, 2, 3, 4}     

    可以用for 循环去读取 每一个元素

    可以用 in  not  in 判断元素是否在集合中

    Add(1)   加入元素1

    Remove(1)  移除元素1

    文件操作

    f=open('E:\recovery.txt','rt')   打开E盘下的recovery文件    只读模式     f为文件对象

    f.read()   读取全部

    '张锐UI安徽人房间卡收费方式告诉 哈弗达就开始放假阿喀琉斯 爱上飞机哈克龙师傅就爱上了咖啡 afsjkfnalkf、 爱就开始发贺卡叫师傅好 '   

    此时的read指针指向最后了  

    >>> f=open('E:\recovery.txt','rt')

    >>> f.read(4)    读五个字符

    '张锐UI'

    >>> f.tell()         读出指针所在的位置

    7

    Python 很灵活     

    可以把文件对象转化为list 列表

    >>> f=open('E:\recovery.txt','rt')

    >>> list(f)

    ['张锐UI安徽人房间卡收费方式告诉 ', '哈弗达就开始放假阿喀琉斯 ', '爱上飞机哈克龙师傅就爱上了咖啡 ', 'afsjkfnalkf、 ', '爱就开始发贺卡叫师傅好 ']    即把内容包含起来了

    每一行都读取出来了

    >>> f=open('E:\recovery.txt','rt')

    >>> a=list(f)

    >>> for i in a:

             print(i)

    张锐UI安徽人房间卡收费方式告诉

    哈弗达就开始放假阿喀琉斯

    爱上飞机哈克龙师傅就爱上了咖啡

    afsjkfnalkf、

    爱就开始发贺卡叫师傅好

    写入文件:

    >>> file=open('E:\test.txt','w')

    >>> file.write('zhangruilin')   写入  zhangruilin

    11

    >>> file.seek(0,0)    指针归零

    0

    >>> for i in file:   输出

             print(i)

    模块: 

    OS模块中关于文件的一些操作

     Import os   导入模块

     os.getcwd()

    os.listdir('E:\')

    os.mkdir('C:\B')

    >>> os.remove('D:\从.jpg')

    >>> os.rmdir('C:\B')

    Os.path 模块很有用

    Pickle模块

    可以用到保存文件,保存为各种类型的文件,不仅仅局限于文本文件

    将列表 字典 等复杂的数据类型 转化为 二进制文件。

    >>> m_list=[123,3.14,'zhangruilin',['answer']]

    >>> pickl_file=open('my_list.pkl','wb')     后缀名无所谓  内容是不会改变的  WB 只读二进制  保存步骤

    >>> pickle.dump(m_list,pickl_file)     保存文件

    >>> pickl_file.close()

    >>> pickl_file=open('my_list.pkl','rb')

    >>> my_list=pickle.load(pickl_file)    回复出整个列表                        读出步骤

    >>> my_list

    [123, 3.14, 'zhangruilin', ['answer']]

    举例子:   将一些不必要的文件都通过 pickle模块   保存

    >>> m_list1=['123','234']

    >>> pickle1=open('C:\zhangruilin.pkl','wb')

    >>> pickle1=open('C:\zhangruilin.pkl','wb')

    >>> pickle.dump(m_list1,pickle1)

    >>> pickle1.close()

    >>> pickle1=open('C:\zhangruilin.pkl','rb')

    >>> a=pickle.load(pickle1)

    >>> a

    ['123', '234']

    异常:

    try :

        f=open('C:\AC.txt','w')

        print(f.write('我存在了'))

        sum=1+'1'

        f.close()

    except (OSError,TypeError) :

        print('出错啦')

    finally:

        f.close()

    丰富的else语句  else  能和while   和  try 匹配    

    当while中不执行了  就执行接下来的else语句 

    当try中没有错了,会执行else语句

    try :

        f=open('C:\AC.txt','w')

        print(f.write('我存在了'))

        sum=1+'1'

        f.close()

    except (OSError,TypeError) :

    print('出错啦')

    Else:

    Print(‘zhangrui;in’)       当try中没有错误了  就会执行else中的

    a=1

    while a!=2:

               print('nishishiba')

               A++

    else:                          当while不执行了    就执行else语句

            print('sadiyage')  

    With语句   抽象出文件的一些常见操作,帮助我们自动关闭文件 

    try :

        With open('C:\AC.txt','w') as f:      with 会关注这个文件什么时候没有用到  他会自动调用关闭

        print(f.write('我存在了'))

    sum=1+'1'

     except (OSError,TypeError) :

    print('出错啦')

    Puthon中 类大写字母开头, 函数小写字母开头

    Python是面向对象的    继承 封装  多态都有

    继承

    class a(list):      参数list 表示的含义是   类a 继承list类

    Pass        代表此类什么也不做 仅仅是演示

    >>> b=a()

    >>> b.append(34)    对象b  继承list类的一切功能

    >>> b

    [34]

    Python 的 self 和C++的this指针  即每个类的对象的标识符号(标识一个对象)

    定义    注意  在进行类的定义的时候 把self写进第一个参数就可以了

    class gun:

        def fun(self,name):

            self.name=name

        def shoot(self):

            print('the weapon function is %s'%self.name)

           

    >>> a=gun()

    >>> a.fun('机枪')

    >>> b=gun()

    >>> b.fun('自动步枪')

    >>> a.shoot()

    the weapon function is 机枪

    >>> b.shoot()

    the weapon function is 自动步枪

    魔法方法:

    _init_(self,canshu1,canshu2)  功能就是C++的构造函数  注意是双下划线

    class Gun:

      

        def __init__(self,name):     

            self.name=name    当对象建立的时候 自动调用

        def shoot(self):

            print('the weapon function is %s'%self.name)

    >>> b=Gun('重机枪')     调用的时候不用管第一个参数

    >>> b.shoot()

    the weapon function is 重机枪

           

    私有变量  Python中定义私有变量   在变量名或者函数名前加上两个下划线

    Super.加上需要的父类的方法()    super即可帮我们调用父类定义好的方法

    例如:

    import random as r

    class fish:

        def __init__(self):

            self.x=r.randint(0,10)

            self.y=r.randint(0,10)

        def move(self):

            self.x-=1

            print('我的位置是:',self.x,self.y)

    class  goldfish(fish):

        pass

    class salman(fish):

        pass

    class carp(fish):

        pass

    class shark(fish):

        def __init__(self):

            super().__init__()    不用给定任何基类的名字

            self.hungry=True

        def eat(self):

            if self.hungry:

                print('吃货的梦想就是天天吃')

                self.hungry=False

            else:

                print('吃饱了,吃不下了')

       

    >>> Shark=shark()

    >>> Shark.move()

    我的位置是: 9 1

  • 相关阅读:
    Jenkins结合.net平台综合应用之通过SSH方式拉取代码
    Jenkins结合.net平台综合之监听git仓库并自动摘取最新代码编译
    XCode插件因为升级不能用了怎么办?几个步骤教你搞定
    如何写一个FMDB帮助类?看看runtime吧
    ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(五) 补充:历史记录 和 消息提醒
    【转】iOS的APP资源,开源的哦
    活到老学到老:iOS开发中的基础知识(一)
    融云SDK:获取用户Token的方法
    对接融云即时通讯组件SDK,轻松实现App聊天室
    【iOS】那些年,遇到的小坑
  • 原文地址:https://www.cnblogs.com/zhangruilin/p/5841596.html
Copyright © 2011-2022 走看看