import random #导入多个模块且模块内有同名功能.调用这个同名功能,调到的是后面导入的模块的功能 #一个模块文件中有`__all__`变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素,对 ‘ import xxx ’ 这种方式无效 __all__=["name","age","func_name"] # 单行注释 """ 多行注释,使用变量接收它就是字符串,不接收就是多行注释 """ # name=input("这里面可以写输入提示语") # num=random.randint(1,13) name="zhangSan" age=29 sex=None #import到其他py不会被执行 if __name__=='__main__': print(5/2) #2.5 直接除 print(5//2) #2 取整 print(5%2) #1 取余 print(2**3) #8 次方 print("姓名"+name,f"{age+1}","字符串不能和非字符串类型直接进行拼接") message="这是个名字%s这是个年龄%s" %(name,age) # %d %f # for x in name: for x in range(1,9,2): print(x,end='') # continue结束就近当次循环,break结束就近循环 print(type("显示内容的数据类型")) def func_name(x): global age #全局变化 age=200 ls=["str",13,13.5,[1,3]] # ls.clear() ls.append(1) ls.append([1,2,3]) #整体加入 ls.extend([1,2,3]) #元素加入 ls.insert(2,4) #位置2插入4 del ls[0] ls.pop(0) #不写从尾部删 ls.remove(2) #删除第一个元素2 ls.count(1) #里面有多少个1 ls.index(1) #第一个元素1所在位置 不存在就报错 len(ls) ls[1:5:2] #起始,结尾,步长(可负[::-1]反转)取值 |列表,元组,字符串 #不可以修改元组的内容,但可以修改元组内list元素(增删改查反转等) #字符串不可修改,操作都生成新字符串 name.index("a") #字符串所在开始位置 name.strip("ab") #前后a/b都去掉 name.count("it") #存在it个数 s=set() #add remove pop随机取出 clear len ss={1,2,3,4,5,2,1,3} s.difference(ss) #取出差集 s.difference_update(ss)#s中删除和ss相同的元素,s被修改,ss不变 s.union(ss) d=dict() #d={} dd={1:1,2:2} #dd[key]=value 既是添加,又是更新 # kv可为任何类型,k不可为字典 #dd.pop(key) clear keys len(dd) for k in dd.keys(): print(k,dd[k]) #len(容器) max(容器) min(容器) #list(容器) str(容器) tuple(容器) set(容器) 将容器转换为对应的类型 #list=sorted(容器) 对容器进行排序 返回list #函数参数可传入函数,传递逻辑不传递计算 def multi_return(para="default",*paras,**kvparas): #元组,字典 return 1,2 x,y=multi_return() #x1 y2 f=open("python.txt","r",encoding="UTF-8") #read write无则建,有则覆盖写 append无则建,有则追加 f.read() #可给参数 读几个字节 f.readline() #一次读一行 f.readlines() #一次全读,一行一个,返回list f.close() for line in open("python.txt","r"): print(line) #操作完会自动关闭 with open("python.txt","r") as f: f.readlines() ff=open("python.txt","w",encoding="UTF-8") ff.write("hello world") ff.flush() #执行它才会真正的写入 try: print("可能出错的代码") except Exception as e: print("有异常执行这里") else: print("无异常执行这里") finally: print("有无异常都要执行这里")
class Person: def __init__(self,name,age): self.name=name self.age=age #定义成员方法时必须有self,传参时可以忽略 def eat(self,food): print(self.name+" eat "+food) def __str__(self): return self.name+self.age def __lt__(self, other): return self.age<other.age def __le__(self, other): return self.age<=other.age def __eq__(self, other): return self.age==other.age #名字以两个_为开头就是私有的,只能本类中用,子类和对象皆没有 __private_val=None def __private_func(self): print("私有方法") #可以多继承,如有同名成员,从左向右优先保留 class Man(Person,Person,Person): name="这是子类重写父类属性" #super().变量/方法 只能在子类内调用父类的同名成员 more_val="这是子类多加的属性" def speak(self): #含有抽象方法的类为抽象类 pass #类型注解仅仅是提示性的 并不会纠错 vo=1 # type:int v1:int=10 v2:str="abc" v3:Person=Person("lisi",19) v4:list=[1,2,3] v5:tuple=(1,2,3) v6:set={1,2,3} v7:dict={1:2} my_list:list[int]=[1,2,3] my_tuple:[str,int,bool]=("abc",18,True) my_set:set[int]={1,2,3} my_dict:dict[int,int]={1:2} def add(x:int,y:int)->int: return x+y from typing import Union my_list2:list[Union[str,int]]=[1,2,"abc"] my_dict2:dict[str,Union[str,int]]={"name":"zhagnsan","age":31} def ad(x:Union[int,str])->Union[int,str]: pass #表示空,保证定义的完整性