zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    Python操作Mongo数据库
    Python正则模块
    Python时间模块
    Python协程(下)
    Python协程(中)
    Python协程(上)
    aiohttp
    常用排序算法的Python实现
    江苏省各地级市58同城租房数据
    百合网
  • 原文地址:https://www.cnblogs.com/miaobo/p/12661325.html
Copyright © 2011-2022 走看看