1. 程式人生 > >嗯,今天就這點東西.

嗯,今天就這點東西.

spl view 元素 pri count bottom stx inpu blank

嗯,今天就這點東西.

今日主要內容

認識函數

函數: 對功能或者動作的封裝
語法:
	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()

嗯,今天就這點東西.