嗯,今天就這點東西.
嗯,今天就這點東西.
今日主要內容
認識函數
函數: 對功能或者動作的封裝
語法:
def 函數名(形參):
函數體
函數名(實參)
函數的返回值
return, 終止函數的運行
1. 函數內部不寫return, 默認在最後返回None
2. 函數只寫了return 返回None
3. return 值 有一個返回值
4. return 值1, 值2, 值3 .... 有多個返回值
返回值返回給調用方
函數的參數(一部分)
形參: 在函數聲明位置的變量 1. 位置參數 2. 默認值參數 3. 混合 位置, 默認值 4. 動態傳參, *args, **kwargs 實參: 在函數調用的時候給函數傳遞的具體的值 1. 位置參數 2. 關鍵字參數 3. 混合參數 順序: 位置, 關鍵字 傳參: 把實參賦值給形參的過程
作業
### 1,整理函數相關知識點, 寫博客。
2,寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者。
def measure(lst):
lst2 = []
for n in lst:
if n % 2 != 0 and n != 0:
lst2.append(n)
return lst2
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(measure(lst))
3,寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5。
def measure(s):
if len(s) > 5:
return (‘TURE‘)
else:
return (‘FALUS‘)
print(measure(‘1234‘))
4,寫函數,檢查傳入列表的長度,如果大於2,將列表的前兩項內容返回給調用者。
def compare(lst):
if len(lst) > 2:
return lst[:2]
lst = [1, 2, 3]
print(compare(lst))
5,寫函數,計算傳入函數的字符串中, 數字、字母、空格
以及
其他內容的個數,並返回結果。
def count(s):
digit = 0
alpha = 0
space = 0
other = 0
for n in s:
if n == ‘ ‘:
space += 1
elif n.isalpha():
alpha += 1
elif n.isdigit():
digit += 1
else:
other += 1
return digit, alpha, space, other
s1 = ‘asdasfesadasdff85 2456#$%^&*(‘
digit, alpha, space, other = count(s1)
print(digit, alpha, space, other)
6, 寫函數,接收兩個數字參數,返回比較大的那個數字
def compare(a, b):
if a > b:
return a
if b > a:
return b
else:
return ‘=‘
k = compare(1, 1)
print(k)
7,寫函數,檢查傳入字典的每一個value的長度, 如果大於2,那麽僅保留前兩個長度的內容,並將新內容返回給調用者。
dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
PS: 字典中的value只能是字符串或列表
def count(dic):
dit = {}
for n, j in dic.items():
if len(j) > 2:
dit[n] = j[:2]
return dit
print(count(dic))
8, 寫函數,此函數只接收一個參數且此參數必須是列表數據類型,此函數完成的功能是返回給調用者一個字典,此字典的鍵值對為此列表的索引及對應的元素。例如傳入的列表為:[11, 22, 33]
返回的字典為
{0: 11, 1: 22, 2: 33}。nc(‘a’, ’b’)
def change(lst):
dit = {}
i = 0
for n in lst:
dit[‘%d‘ % (i)] = n
i += 1
return dit
lst = [11, 22, 33]
print(change(lst))
9,寫函數,函數接收四個參數分別是:姓名,性別,年齡,學歷。用戶通過輸入這四個內容,然後將這四個內容傳入到函數中,此函數接收到這四個內容,將內容追加到一個student_msg文件中。
def save(name, sex, age, edu):
dit = {}
dit[‘name‘] = name
dit[‘sex‘] = sex
dit[‘age‘] = age
dit[‘edu‘] = edu
with open(r‘syudent_msg‘, ‘a‘, encoding=‘utf-8‘)as f:
f.write(str(dit) + ‘\n‘)
save(‘j‘, ‘m‘, ‘50‘, ‘bk‘)
10,對第9題升級:支持用戶持續輸入,Q或者q退出,性別默認為男,如果遇到女學生,則把性別輸入女。
def ip(name, sex=‘男‘):
k = print(name, sex)
while 1:
name = input(‘請輸入你的姓名,輸入Q退出‘)
if name.upper() == ‘Q‘:
break
sex = input(‘請輸入你的性別‘)
if sex == ‘女‘:
ip(name, sex)
else:
ip(name)
11,寫函數,用戶傳入修改的文件名,與要修改的內容,執行函數,完成文件的修改操作(升級題)。
def rename(name, content):
with open(‘%s‘ % (name), ‘r‘, encoding=‘utf-8‘)as f:
n = f.read()
return n.replace(content, ‘asdasdasda‘)
12,寫一個函數完成三次登陸功能,再寫一個函數完成註冊功能(升級題)
def sign():
n = 3
name1 = 1
password1 = 2
while n:
name = input(‘name‘)
password = input(‘password‘)
if name == name1 and password == password1:
print(‘登錄成功‘)
break
n -= 1
if n == 0:
print(‘登錄失敗‘)
sign()
def register():
print(‘你進入註冊功能‘)
name = input(‘輸入你的用戶名:‘)
password = input(‘輸入你的密碼‘)
print(‘註冊成功‘)
register()
嗯,今天就這點東西.