python-while-函數


    1. while循環(只有在條件表達式成立的時候才會進入while循環)
      while 條件表達式:
        pass

      while 條件表達式:
        pass
      else:
        pass
      不知道循環次數,但確定循環條件的時候用while

      # 如果說年利率是6%,存入1000到第幾年本錢翻倍 
      1 money = 10000 2 year = 0 3 while money < 20000: 4 money = money*(1+0.06) 5 year += 1 6 print('第 {0} 年本錢翻倍了,總共有 {1} 元'.format(year,money))
      1. 函數 :一個函數實現一個功能
        規則:def  函數名([形參]):
                  pass
        命名規則:注意不要使用大駝峰,默認小駝峰,大駝峰命名只用於類的命名
          1.函數的參數與返回值        返回值:函數執行的結果
          1. 函數參數的定義與使用

            def hello(name):
                print("你好嗎,{}".format(name))
              return "函數中止執行,后面不管有多少句代碼都不會被執行"
              print("這句話不會被執行")
            person = 'Tom'
            hello(person)

            rst = hello("John") #函數也可以這么調用,如果有返回值會將返回值賦值給變量

            函數的返回值

              表示函數執行的結果,如果函數中沒有return系統自動返回None,函數一旦執行return語句,則無條件返回,意味着return下面的語句將不再執行,只要遇到return,函數自動中止執行。
            參數詳解:普通參數 默認參數 收集參數 關鍵字參數
              - 普通參數:定義的時候直接定義變量名,平時用的最多的參數
                              def 函數名(參數1, 參數2, ....):
                          調用: 函數名(參數1, 參數2, ...)
              - 默認參數: 函數中默認給定義好的參數,參數有默認值
                              def 函數名(value1, canshu = value2):  其中的canshu = value2 就是默認參數,典型的例子就是 print(value1, value2, ...,sep=" ", end= '\n',..)
               調用的時候,如果沒有特殊要求 ,默認參數可以不用進行傳值
            def hello(name, gender = 'boy'):
                if gender = 'boy':
                    print("welcome,{0},you are a good {1}".format(name, gender))
                else:
                    print("welcome,{0},you are a good {1}".format(name, gender))
            
            hello('Tom')
            hello('Siri', 'girl')

              - 關鍵字參數:注意與默認參數區分,好處就是實參與形參位置可以不用一一對應
                           def fun(p1=v1, p2=v2, ...):
                                   pass
                          fun(p1=value1, p2=value2, ....)

        def student(name=None, age=None, gender=None):
            print("我是一個學生,我的名字是 {0}, 我今年 {1} 歲, 我是個 {3}生")
        
        name = 'Tom'
        age = 12
        gender = ''
        student(age=age, gender=gender, name=name)

                             - 收集參數:
                                     把沒有位置,不能和定義時的參數位置相對應的參數,放入一個特定的數據結構中
                                      def fun(*args):
                                          pass
                                   調用:fun(p1, p2, p3, ...)
                                參數名可以不用 args,但推薦這么用,約定俗成. 注意前面的 " * " 不能省略, 調用的時候可以不傳入參數值
                                收集參數傳參的時候不能直接傳入關鍵字參數,例如 fun(name='Tom'Z)

        def stu( *args ):
            print("大家好, 簡單自我介紹一下:")
            for i in args:
                print(i, end='=>')
        
        stu("小明", 18, "山東省")
        stu('小紅')

                      - 收集參數之關鍵字收集參數
                               把關鍵字參數以字典的形式放入收集參數, 訪問kwargs需要用訪問字典的方式
                                        def fun( **kwargs ):
                                           pass
                                  #調用
                                   fun(p1=v1, p2=v2, ....)
                               

      2. 各種類型參數混合使用的順序問題:
         使用的規則一般是:普通參數 關鍵字參數優先 
        定義的時候一般找普通參數 , 收集參數(args),關鍵字參數, 收集參數(kwargs)
        def stu(name, age, *args, hobby='沒有', **kwargs):
            print('大家好')
            print("我叫 {0}, 我今年 {1} 大了.".format(name, age))
            if hobby == '沒有':
                print('我沒有愛好')
            else:
                print("我的愛好是{0}".format(hobby))
            for i in args:
                print(i)
            for k, v in kwargs.items():
                print(k, ' ------', v)
        
        
        name = 'tom'
        age = 19
        
        stu(name, age, '王曉靜', '小紅', hobby='sing', addr='beijing', phone='123213')
        def stu(**kwargs):
               print(大家好,我先自我介紹一下)
               # 對於字典的訪問,Python2 與 Python3 有區別
               for k,v in kwargs.items():
                   print(k,'--------', v)
        stu(name='wangxiaojjing', age=10, addr='北京')   

        收集參數的解包問題(unpack)
        - 把參數放入list或者dict中,直接把list/dict中的值放入收集參數中
        def stu(*args):
          for i in args:
        print(i)
        l = list()
        l.append('aafd') # 在列表的最后插入值
        l.append(1321)
        stu(l) # 打印的結果是['aafd', 1321] 不是理想中的結果
        stu(*l) # 解包符號 * 加上以后就是理想中的結果

        對於dict類型的收集參數一樣可以解包,但是需要加兩個 *,


        ## 返回值
        函數和過程的區別就是: 有無返回值,如果函數中沒有顯式返回值,即return value 則默認返回None
        例如:
        def func1():
        print('aaa')
        return 1

        def func2():
        print('a')

        f1 = func1() # 結果是 1
        f2 = func2() # 結果是 None
        建議所有的函數不管有沒有返回值在最后都加上一個return

        # 函數文檔
        - 用來解釋函數的作用以及利用方式
        - 文檔的寫法:
        在函數內部開始的第一行使用三引號括起來
        一般具有特定格式
        例如
        def stu(name, age):
        '''這是
        文檔
        '''
        print(name, age)
        return None
        - 查看文檔的方式: 使用help(函數名)
        使用 函數名._doc_


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM