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函数

原文地址:https://www.cnblogs.com/keeprealblog/p/12770824.html