1. 程式人生 > >python學習筆記(六)- 函數

python學習筆記(六)- 函數

簡潔 oat 位置 修改 讀文件 abc 學習 情況 不用

1、函數:(方法、功能)

1.提高代碼的復用性

2.讓代碼更簡潔、簡化代碼

1)定義一個簡單的函數

def sayHello():     #函數名,定義函數
    print("hello")  #函數體
#函數不調用是不會被執行的
sayHello()  #調用函數

2)函數的參數:形參、實參

def calc(a,b):   #a,b叫形參(形式參數)#位置參數,也叫必填參數
    res = a * b
    print(%s * %s = %s % (a,b,res))
calc(7,8)  #調用函數時,傳入實參(實際參數),7傳給a,8傳給b

3)默認值參數

def op_file(filename,content=None): #content是默認值參數,非必填
    pass

2、局部變量和return

#局部變量(+ return使用)

函數裏面定義的變量,都是局部變量,只能在函數裏面用,出了函數就不能用了

#如果在函數外print(變量) 就會報錯

#return的作用

  1.return xxx #調用完函數之後,返回處理的結果

  2.結束函數,函數遇到return,函數會立即結束

def op_file(file_name,content=None): #文件名、需要寫入的內容(默認None)
f = open(file_name,a+,encoding=utf-8) f.seek(0) if content: #如果內容不為空(寫入) f.write(content) f.flush() #刷新,立即寫入到文件 else: #內容為空(讀) all_user = f.read() #局部變量,在函數裏面定義的變量,只能在函數裏面用,出了函數就不能用了 return all_user #調用完函數之後,返回處理的結果 f.close() #op_file(‘a.txt‘,‘aaaa\nbbbb‘) #content傳入值,寫入
res = op_file(a.txt) #content=None,讀文件,res接收函數的返回值 print(res)

【例】:return結束函數

def num():
    for i in range(5):
        print(i)
        if i==3:
            return   #只寫一個return,表示立即結束函數,相當於break,返回None
res = num()
print(res)

#>>> 0 1 2 None

【例】函數裏面如果沒有return的話,默認返回None,函數裏面return不是必須的,如果要接收函數的返回結果,就使用return,如果不需要函數結果,就不用return

import string
def check(pwd):
    #密碼長度6-7位,必須包含字母和數字
    if len(pwd)>5 and len(pwd)<12:
        if set(pwd) & set(string.ascii_letters) and set(pwd) & set(string.digits):
            print("密碼合法")
        else:
            print(密碼不合法)
    else:
        print(密碼長度6-11位)
res = check(123abcd)   #函數裏面如果沒有return的話,默認返回None
print(res)

3、【例】:寫一個 判斷一個數是否是合法的小數 的函數

#需求分析
    #定義一個函數
    # 1、小數點個數  .count()=1
    # 2、按照小數點進行分割 1.98 ->[1, 98]
    # 3、正小數:小數點左邊是正數;右邊也是整數 s.87  98.s
    # 4、負小數:左邊:小數點左邊以負號開頭,且只有一個負號;右邊是整數 -9.5
        #-9.5->[‘-9‘,5],再-9按‘-‘切割成[‘‘,9]
def is_float(s):
    s = str(s)
    if s.count(.) == 1:
        left = s.split(.)[0]
        right = s.split(.)[1]
        if left.isdigit() and right.isdigit():
            print("是正小數")
            return True
        elif left.startswith(-) and left.split(-)[1].isdigit() and left.count(-)==1 and right.isdigit():
            print("是負小數")    #左邊以‘-’開頭,且只有一個負號,左邊再按負號切割後的第二個元素是數字;右邊也是數字
            return True     #‘-1‘.split(‘-‘) -> [‘‘,‘1‘]

    print("不是小數")  #其它情況返回false
    return False

print(is_float(1.98))
print(is_float(-2.98))
print(is_float(-1))   #False
print(is_float(s.98))  #False
print(is_float(1.s98))
print(is_float(1.0))  #True
print(is_float(-.5))  #True
print(is_float(.98))  #False

4、常量:就是一個不變的值,一般全部用大寫字母來定義 #比如PORT = 3306 ,比如,文件名FILENAME = ‘a.txt‘

money = 500
def
test(consume): return money - consume def test1(money): return test(money) + money money = test1(money) print(money) >>> 500

5、全局變量:

公共的變量,都可以用的變量

如果要修改全局變量的話,那要先聲明一下修改的是全局變量

#少用全局變量:全局變量不安全,所有人都可以修改;全局變量會一直占著內存

python學習筆記(六)- 函數