1. 程式人生 > >while - 函數

while - 函數

定義和使用 string format 函數的參數 我不 輸入 默認值 per abcd

while 循環?

  • 一個循環語句
  • 表示到某個條件成立的時候,就循環
  • 不知道具體循環的次數,但能確定循環的成立條件的時候用while循環
  • while語法:

    while 條件表達式:
           語句塊
    
       # 另外一種表達方法
     while 條件表達式:
            語句塊1
     else:
            語句塊2
    
In [4]: ?x
# 如果說年利率是6.7%,本利每年翻倍,則多少年後本錢會翻倍
benqian = 10000
year = 0
while benqian < 20000:
    benqian = benqian * (1+0.067)
    year += 1 # 指 year = year + 1
    print("第{0}年拿了{1}塊錢".format(year, benqian))
第1年拿了10670.0塊錢
第2年拿了11384.89塊錢
第3年拿了12147.677629999998塊錢
第4年拿了12961.572031209998塊錢
第5年拿了13829.997357301068塊錢
第6年拿了14756.607180240238塊錢
第7年拿了15745.299861316334塊錢
第8年拿了16800.23495202453塊錢
第9年拿了17925.85069381017塊錢
第10年拿了19126.88269029545塊錢
第11年拿了20408.383830545245塊錢
. . . In [5]:
# 如果拿到的前翻倍,則用 print 語句慶祝一下
benqian = 10000
year = 0
while benqian < 20000:
    benqian = benqian * (1+0.067)
    year += 1 # 指 year = year + 1
    print("第{0}年拿了{1}塊錢".format(year, benqian))
else:
    print("終於可以娶媳婦了")
    print("找媳婦去了")
第1年拿了10670.0塊錢
第2年拿了11384.89塊錢
第3年拿了12147.677629999998塊錢
第4年拿了12961.572031209998塊錢
第5年拿了13829.997357301068塊錢
第6年拿了14756.607180240238塊錢
第7年拿了15745.299861316334塊錢
第8年拿了16800.23495202453塊錢
第9年拿了17925.85069381017塊錢
第10年拿了19126.88269029545塊錢
第11年拿了20408.383830545245塊錢
終於可以娶媳婦了
找媳婦去了
. . .
#  函數
 - 代碼的一種組織形式
 - 一個函數一般完成一項特定的功能
 - 函數使用
    - 函數需要先定義
    - 使用函數 稱為調用

函數?

  • 代碼的一種組織形式
  • 一個函數一般完成一項特定的功能
  • 函數使用
    • 函數需要先定義
    • 使用函數 稱為調用
In [6]:
# 定義一個函數
# 如果只定義而不調用這個函數,函數是不會執行的
# 1.def 是個關鍵字,後面跟一個空格
# 2.函數名,自己定義,起名需遵循指令取名規則,約定俗稱,大駝峰只給類用來命名
# 3.後面的括號和冒號不能省略,括號內可以有參數
# 4.函數內所有代碼都得有縮進
def fun():
    print("函數")
    print("可以完成一個功能")
    print("再見")
. . . In [9]:
# 函數的調用
# 直接用函數名和後面跟括號
fun()
函數
可以完成一個功能
再見
. . .
###  函數的參數和返回值
 - 參數:負責給函數傳遞一些必要的數據和信息
      — 形參(形式參數):在函數定義的時候用到的參數沒有具體值,只是一個占位符,稱之為形參
      - 實參(實際參數):在調用函數的輸入的值
 - 返回值:函數的執行結果
       - 返回值使用 return 關鍵字來表明這函數
       - 如果沒有 return 默認返會 None
       - 函數一旦執行 return 語句,則無條件返回,即結束函數執行

函數的參數和返回值?

  • 參數:負責給函數傳遞一些必要的數據和信息 — 形參(形式參數):在函數定義的時候用到的參數沒有具體值,只是一個占位符,稱之為形參
    • 實參(實際參數):在調用函數的輸入的值
  • 返回值:函數的執行結果
    - 返回值使用 return 關鍵字來表明這函數
    - 如果沒有 return 默認返會 None
    - 函數一旦執行 return 語句,則無條件返回,即結束函數執行
    
In [11]:
# 參數的定義和使用
# 參數 person 只是一個符號,代表的是調用時的某一個數據
# 調用的時候,會用 a 代替函數中所有的 person
def hello(person):
    print("{0},你怎麽了".format(person))
    print("sir,你不理我那我走了")
a = "ruirui"
hello(a)    
ruirui,你怎麽了
sir,你不理我那我走了
. . . In [15]:
# retuyn 語句基本使用
# 函數打完招呼後返回一句話
def hello(person):
    print("{0},你怎麽了".format(person))
    print("sir,你不理我那我走了")

    return "我已經跟{0}打招呼了,{1}根本不理我".format(person,person)

a = "ruirui"
rst = hello(a)
?
print(rst)
ruirui,你怎麽了
sir,你不理我那我走了
我已經跟ruirui打招呼了,ruirui根本不理我
. . . In [17]:
# return 案例2
def hello(person):
    print("{0},你怎麽了".format(person))
    return "哈哈,我不理你了"
    print("sir,你不理我那我走了")

    return "我已經跟{0}打招呼了,{1}根本不理我".format(person,person)
a = "ruirui"
rst = hello(a)
print(rst)
ruirui,你怎麽了
哈哈,我不理你了
. . . In [20]:
# 九九乘法表
# version 1,0
for row in range(1,10):
    # 打印一行
    print("{0}....a line".format(row))
1....a line
2....a line
3....a line
4....a line
5....a line
6....a line
7....a line
8....a line
9....a line
. . . In [39]:
for row in range(1,10):
    for col in range(1,row+1):
        # print 函數默認任務打印完畢後執行換行
        print( row * col,end=" ")
    print("......")   
1 ......
2 4 ......
3 6 9 ......
4 8 12 16 ......
5 10 15 20 25 ......
6 12 18 24 30 36 ......
7 14 21 28 35 42 49 ......
8 16 24 32 40 48 56 64 ......
9 18 27 36 45 54 63 72 81 ......
. . . In [24]:
# 查找函數幫助文檔
# 1.用 help 加上函數名
help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

. . . In [48]:
# 定義一個函數
def printis(row):
    for col in range(1, row+1):
        # print 函數默認任務打印完畢後執行換行
        print( row * col,end=" ")
    print(" ")  
    pass
. . . In [49]:
# 九九乘法表
# version 2,0
for row in range(1,10):
    printis(row)
1  
2 4  
3 6 9  
4 8 12 16  
5 10 15 20 25  
6 12 18 24 30 36  
7 14 21 28 35 42 49  
8 16 24 32 40 48 56 64  
9 18 27 36 45 54 63 72 81  
. . .
### 參數詳解
 - 【參考資料】(http://www.cnblogs.com/bingabcd/p/6671368.html)(博客園)
 - python 參考資料:headfirst python -->零基礎入門學習python(小甲魚寫的)-->習題-->後期可以去看免費的公開課跟著練習
 - 參數分類
    - 普通參數
    - 默認參數
    - 關鍵參數
    - 收集參數
- 普通參數
  - (參見上面的例子)
  - 在定義的時候直接定義變量名
  - 調用的時候直接把變量或值放入指定位置
  
  
                 def 函數名 (參數1....參數2,.....):
                     函數體
                     
                  # 調用
                  函數名 (value1, value2.....)之會按位置調用
                  
                  # 調用的時候,具體值參考的時位置,按位置賦值
                  
  - 默認參數
      - 形參帶有默認值
      - 調用的時候,如果沒有對相應的參數值,則會使用默認參數值
      
      
            def funt name(p1=v1, p2=v2......):
                 funt_block
                 
               # 調用2
               valut1= 100
               valut2= 200
               funt_name(valut1,valut2)

參數詳解?

  • 參數分類
    • 普通參數
    • 默認參數
    • 關鍵參數
    • 收集參數
      • 普通參數
      • (參見上面的例子)
      • 在定義的時候直接定義變量名
      • 調用的時候直接把變量或值放入指定位置
             def 函數名 (參數1....參數2,.....):
                 函數體

              # 調用
              函數名 (value1, value2.....)之會按位置調用

              # 調用的時候,具體值參考的時位置,按位置賦值
  • 默認參數
    • 形參帶有默認值
    • 調用的時候,如果沒有對相應的參數值,則會使用默認參數值
        def funt name(p1=v1, p2=v2......):
             funt_block

           # 調用2
           valut1= 100
           valut2= 200
           funt_name(valut1,valut2)
In [55]:
# 默認參數示例
#報名參數,需知學生性別
#學習 python 的學院基本都是男的,所有,報名的的時候如果沒有特殊指定,就默認是男的
def reg(name, age, gender="male"):
    if gender == "male":
       print("{0} is {1}, and he is a good student".format(name,age))
    else:
        print("{0} is {1}, and she is a good student".format(name,age))
. . . In [56]:
# 調用默認參數值案例
reg("ruirui",21)
reg("ruiuri",21,"female")
ruirui is 21, and he is a good student
ruiuri is 21, and she is a good student
. . . In [ ]:

while - 函數