zoukankan      html  css  js  c++  java
  • Python小知识点汇总(持续更新)

    1.Python2 中print x的x不需要加括号,但Python3的print(x) 需要加括号

    2.幂的运算符:**

    3. x=input("Please enter a value") : input返回的x是个字符串,如果要转换成int,则需要 int(x)

    4.创建一个字符串,用单引号或者双引号把字符串引起来,如果字符串内部还有单引号,则整个字符串可以用双引号引起来,反之亦然。

    如果字符串里有特殊字符,比如换行,tab键,则需要用 来转义,如 ,

    5. 一个字符串加数字合并成一个大字符串的时候,数字需要用str(x)转换,否则报错:

    s= 'sadfsf'+str(987)

    s='sadfsf987'

    6. int/float...可以将非十进制的字符串转换成对应的数字,需要加上字符串表示的进制数,比如int("10010",2)表示将2进制的字符串转换成int, float('F04A',16)则是把16进制F04A字符串转换成float

    7.获取长度的是len('ssfsf'), 在C#中是("sfdsfd").length()

    8.查找一个字符串在另一个字符串中的位置,用find:

    >>>s='asdfsdfsdf'

    >>>s.find('df')

    >>>2 //index是从0开始的,如果不存在,返回-1

    9.截取字符串用[x:y], 从x-1位置开始截取到y,//index从0开始

    s='abcdefg'

    s[2:5] 

    cdef 

    可以省略x,y中的任意数字,省略xji表示从开始截取到y,省略y表示从x开始截取到结束

    可以用负数,表示从倒数位置(反向顺序)截取,比如s[-3:]表示从

    10.字符串替换用replace,比如:

    s='sfsfsfdsdfsdfsdf',

    s.replace('d','X').

    sfsfsfXsXfsXfsXf

    注意s字符串本身没变,如果要s字符串本身变出替换后的,需要重新赋值:s=s.replace()

    s.toupper(), tolower(), 也是同样道理

    字符串分割得到一个列表:

    "abc,def,ghi".split(',')    //['abc','def','ghi']

    11.if x>10:

    xxx

    elif x<10:

    xxx

    else:

    xxx

    11.逻辑运算符:and or not, C#是 && | !

    12. for i in range(1,11)

      print(i)  //打印1-10,包含1不包含11

     for i in range(10):

      print(i)     //则会打印0~9,共10个

    13. while True:

        s=input('please input a number:')

        if s=='X':

          break

    14. 定义函数:函数名和变量名都一样是小写,如果多个单词用‘_’连接

    def function_name(param1, param2):

      function body

      return data

    函数返回多个值:

    def cal_temperature(kelvin):

          celcus = kelvin-273;

          farenhit = celcus*9/5+32

          return celcus,farenhit

    x,y = cal_temperature(230)

    print(x)

    print(y)

         

     15. 列表list:

    a=[123,'ad',1.2]

    len(a)  //确定长度

    a[0]  //访问元素

    a[0]=5.3   //改变元素值

    a.append(1.687)  //添加一个值

    a.insert(2,'newstr') //在指定位置添加元素

    a=[123,125]

    a.extend(b) //链接两个list

    a.pop()  //弹出最后一个元素

    a.pop(2) //弹出特定位置元素

    16. 遍历list

    a=[123,'ad',1.2]

    for x in a:

         print(x)

    for x in rang(len(a)):

         print(x, a[x])

    17. list 排序: a.sort() //这样会改变a本身,如果不要改变a本身,则需要先把a复制给b, 对b排序

    import copy

    b=copy.copy(a)

    b.sort()

    18.分割列表: a[1:3], a[-1:], a[2:]

    19.字典:键-值对

    a ={'key1':123, 'key2',"1234", 125:'123'}

    a['key1']  //获取值

    a['key1'] ='1231'  //改变key对于的值

    a.pop('key1')  //删除一个元素

    for x in a:

         print(x)  //遍历键名字

    for x,y in a:

        print(x +“ ”+y) //遍历键和值

    20. 定义类, 需要有 _init_(self,x,y) 作为构造函数,类中所有的 方法 都要包含self参数, 这跟前面的(module中的)函数有点不同,且类中的函数在调用类中其他函数时要在函数前加self

    class Person:

            ''' this is doc '''

           def __init__(self, param1, param2):       //注意init的前后是双下划线 

                sefl.name = param1           //self 后面的是成员变量,无需申明,可被类中所有成员使用

                self.age = param2

          def fun1(self):

                return self.name+":"+self.age

    >>>Person.__doc__   //能查看上述类说明, 注意前后是双下划线 

    p= Person('Simon', 15)

    p.name  //>>>Simon

    21.类的继承

    class Employee(Person):

             def __init__(self, name, age, phone_number, salary):

                   super._init_(name,age)  //调用父类初始化

                   self.salaray = salary   //初始化自己的变量

        self.number = phone_number

        def pay_bonus(self, amount):

                   self.salary = self.salary+amount

    22. 序列化:pickling

    import pickle

    class Person:
      '''this is doc'''
      def __init__(self,_name,_age):
        self.name=_name
        self.age=_age
      def func1(self):
        print(self.name+":"+str(self.age))


    >>> p=Person('jason',60)
    >>> p.func1()
    jason:60

    >>> f=open('c:\test.pickle','wb')     //pickle默认是以binary方式读写的,所以必须加b
    >>> pickle.dump(p,f,0)  //0表示以string方式把对象保存到文件中,此时文件里面是string, 可以打开看的,如果没有最后0,则对象以binary保存,打开乱码
    >>> f.close()
    >>> f=open('c:\test.pickle','rb')     //pickle默认是以binary方式读写的,所以必须加b

    >>> newclass = pickle.load(f)
    >>> newclass
    <__main__.Person object at 0x0076A670>


    >>> newclass.name    //load出来的就是之前保存的对象,可以直接调用成员及变量
    'jason'
    >>> newclass.func1()
    jason:60

     23. 异常处理:

    try:

        //do somthing

    except Exception as e:  //使用as之后获取异常的信息

             print(e)//发生异常的处理

    else:

       //未发生异常的处理

    finally:

      print('do somthing')

    24.模块

    如果只是import xxx则在使用xxx模块里面的函数或者变量的时候需要明确加上xxx做前缀即xxx.func()

    如果import xxx as x, 则后面调用模块里面的函数的时候,直接x.func()

    如果想要省略前缀,则需要使用from xxx import *  #导入xxx模块里面所有的函数/变量,后面可以直接使用func()而无需加前缀xxx.func(),但是这样可能会造成函数名跟其他模块的里面的函数冲突。

    也可以from xxx import xx, 只导入xxx module里面的xx函数

  • 相关阅读:
    WebRTC视频采集中的约束有哪些和具体的使用方法
    解决WebRTC中不同的浏览器之间适配的问题
    WebRTC如何获取音频视频设备
    用C#调用外部DLL
    null值与非null只比较大小时,只会返回false
    jsonp实现js跨域请求
    同一域名的ASP.NET网站实现Session共享
    machinekey相关信息
    从bbs.3dmgame.com与qq的登录解析oauth2.0协议
    asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理
  • 原文地址:https://www.cnblogs.com/keeprealblog/p/12770824.html
Copyright © 2011-2022 走看看