python基础学习笔记(二)类和对象

  • 类和子类
class bird(object):
    def __init__(self,sound):       #magic mehod 前后两个下划线 如__add__()
        self.sound=sound            #__dict__()
        print("init sound:",sound)
        
    def chirp(self):                #self:该函数可在同一类中被调用
        print("bird")
        
    def echo(self,n):
        for i in range(n):
            self.chirp()
            
class swan(bird):                  #继承
    move="swin"
    edible=True
    
    def chirp(self):
        super().chirp()           #调用父类被覆盖的方法
        print("swan")
    
summer=bird("emm")
print(summer.sound)
summer.echo(10)               

winter=swan("ha")
print(winter.move)
winter.echo(5)

  • 列表操作
a=[1,2,5,3,5,6]
print(a.count(5))        #记录5的个数
print(a.index(3))        #从左开始找3的位置

a.append(7)              #在最后加上7
print(a)
a.sort() 
print(a)
a.reverse()              #逆序
print(a)
a.remove(2) 
print(a)
a.insert(0,9)            #在位置0插入数字9
print(a)
a.clear()
print(a)

  • 元组操作

字符串是特殊的元组

a="abc Bca"
sub="abc"
new_sub="lalala"
str="-"

a.index("c")
a.rindex("c")

a.count(sub)
a.find(sub)        #找不到返回-1
a.rfind(sub)
a.index(sub)       #找不到报错
a.rindex(sub)

a.isalnum()        #都是字母或数字
a.isalpha()
a.isdigit()
a.istitle()        #所有词的首字母字母都是大写
a.isspace()        #所有字符都是空格
a.islower()
a.isupper()

b=a.split(" ",1)   #以空格分割1次,所得字符串在一个表返回
#a.rsplit()
print("b:",b)

print(str.join(a)) #a-b-c- -B-c-a

b=a.replace(sub,new_sub)
print("replace:",b)

b=a.capitalize()   #首字母大写
print("cap:",b)

b=a.swapcase()     #大小写交换
print("swap:",b)   
b=a.lower()
print("lowe:",b)
b=a.upper()
print("upper:",b)

b=a.title()        #每个单词首字母大写
print("title:",b)

b=a.center(20,"*") #******abc Bca*******
print(b)
b=a.ljust(20,'*')  #abc Bca*************
print(b)
  • 词典对象
dict={"a":1,"b":2,"c":3}
for k in dict.keys():
    print(k)            #key 如a
    print(dict[k])
for v in dict.values():
    print(v)            #value 如1
for k,v in dict.items():
    print(k,v)          #k-v 如a 1
dict.clear()            #清空词典
  • 循环对象
生成器yield,每次调用函数在yield处暂停并返回yield后的值,下一次调用继续
def gen():
    a=100
    yield a
    a=a*2
    yield a
    yield 100
for i in gen():
    print(i)

__next__()类似手动for

exm=iter([1,2,3])
print(exm.__next__())
print(exm.__next__())
print(exm.__next__())
print(exm.__next__())       #StopIteration

  • 函数对象
class bird(object):
    def __call__(self,a):
        return a+2
summer = bird()
print(summer(2))
  • 模块对象
import time
time.sleep(10)
print("wake")

from time import sleep
sleep(10)
print("wake")

给模块重命名

import time as t
t.sleep(10)
将功能相似的模块放在一个文件夹中构成模块包,此文件夹中必须有__init__.py,此文件可以为空,每个对象都有一个属性:__name__来记录模块名字
  • 异常对象
try:
  ....
except ZeroDivision as e:       #e代表捕捉到的错误类型对象
  ....

猜你喜欢

转载自blog.csdn.net/scarletteshu/article/details/79644594