day02 函数定义 对象定义 文件读写

一.函数定义

'''
普通函数
'''
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()

 

posted @ 2020-04-08 17:30  记得喝牛奶  阅读(240)  评论(0)    收藏  举报