一.函数定义
''' 普通函数 ''' def func(a,b,c): print(a) print(b) print(c) func(12,c=25,b=50)#位置参数必须在关键字参数前面 print('----------') ''' 函数可带默认参数 ''' def func1(d,e=10):#默认参数 print(d) print(e) func1(4) print('----------') ''' 不定长位置参数 ''' def func(a,*args): print(a) print(args) print(*args) func(1,2,3,4,5) print('----------') ''' 不定长关键字参数 ''' dic={'name':'miao','age':22} def myfunc(a,*args,**kwargs): print(a) print(args)#不定长关键字 print(kwargs)#不定长位置 myfunc(1,2,3,4,dic)#不解包就把dic当成前面args的一个位置参数 myfunc(1,2,3,4,**dic) print('----------') ''' lambda形式的函数 ''' func=lambda x,y: x+y print(func(3,4))
#题目一 def func(n): if n==1: return 1 else: return func(n-1)+n print(func(3)) print('----------') #题目二 def count(pstr,sstr,begin=0,end=0): print(pstr.count(sstr,begin,end)) count('adssdsadsd','ads',0,9) print('----------') #题目三 def myfunc(*args,**kwargs): if (len(args)+len(kwargs))<4: print("参数不足4个请检查") else: if args:#判断位置参数是否为空 print(args) if kwargs: for value in kwargs: print(value) myfunc(6,7,5,c=5,d=6,r=7,a='d') print('----------') #题目四 def addition(*args): s=0; for item in args: s=s+item print(s) addition(1,2,3) print('----------') # 题目五 # 方法一 def r(s): print(s) r(3/4) #方法二 def add(x,y): return x+y x=int(input('x:')) y=int(input('y:')) op=input('op:') dic={'+':add} print(dic[op](x,y)) print('----------') #题目六 def mfunc(s): if isinstance(s,int): print(s + 1) if isinstance(s,str): print(s+'1') if isinstance(s,list): s.append(1) print(s) mfunc(1) mfunc('fd') mfunc(['d',1,5,'df']) print('----------') #题目七 def f(): s=[] x=input('输入:') while(x!='quit'): s.append(x) x = input('输入:') print(s) f() print('----------') #题目八 fu=lambda x,y:pow(x,y) print(fu(2,3))
二.模块
from random import randint,randrange#导入某一个模块的具体功能
import demo #调用时,没在if __name__ == '__main__':下的都被执行
三.方法
实例方法第一个参数必须是self
实例权限最高
类方法就是每次都是做同样的事情。例如math中的pow方法,math.pow(x,y)使用,而不用创建一个对象进行调用
三.继承
四.文件读取
读取
写入
练习:
print('题目一') class student: def __init__(self,name,age,score): self.name=name self.age=age self.score=score def get_name(self): return self.name def get_age(self): return self.age def get_course(self): return max(self.score) def get_avg(self): x=sum(self.score)/len(self.score) return x stu=student('jim',22,(50,60,70)) print(stu.name) print(stu.age) print(stu.get_course()) print(stu.get_avg()) print('题目二') import random class AutoRobot: gameDic=['石头','剪刀','布'] d={'石头':2,'剪刀':1,'布':0} a=0 b=0 def play(self): c=0 while(c<5): x=random.choice(self.gameDic) y=random.choice(self.gameDic) print(c,x,y) i=self.d[x] j=self.d[y] if i>j and i-j==1: self.a=self.a+1 if i>j and i-j==2: self.b=self.b+1 if i<j and j-i==1: self.b=self.b+1 if i<j and j-i==2: self.a = self.a + 1 c=c+1 print('最后比分:',self.a,self.b) a=AutoRobot() a.play()
题目二的方法二:
import random class auto: gameDic=['石头','剪刀','布'] @classmethod def play(cls): guize=[['布','石头'],['石头','剪刀'],['剪刀','布']] result1=random.choice(cls.gameDic) result2=random.choice(cls.gameDic) if result2==result1: print('draw') elif [result1,result2] in guize: print('robot1 win') else: print('robot2 win') a=auto(); a.play()