day10函式作業詳解

2022-07-15 23:57:17 字數 4056 閱讀 4790

2,寫函式,接收n個數字,求這些引數數字的和。(動態傳參)

3,讀**,回答:**中,列印出來的值a,b,c分別是什麼?為什麼?

a=10

b=20

def test5(a,b):

print(a,b)

c = test5(b,a)

print(c)

4,讀**,回答:**中,列印出來的值a,b,c分別是什麼?為什麼?

a=10

b=20

def test5(a,b):

a=3b=5

print(a,b)

c = test5(b,a)

print(c)

print(a,b)

5,寫函式,傳入函式中多個實參(均為可迭代物件如字串,列表,元祖,集合等),將每個實參的每個元素依次新增到函式的動態引數args裡面.

例如 傳入函式兩個引數[1,2,3] (22,33)最終args為(1,2,3,22,33)

6,寫函式,傳入函式中多個實參(實參均為字典),將每個實參的鍵值對依次新增到函式的動態引數kwargs裡面.

例如 傳入函式兩個引數 最終kwargs為

7, 下面**成立麼?如果不成立為什麼報錯?怎麼解決?

7.1

a = 2

print(a)

7.2

a = 2

a += 1

print(a)

7.3

a = 1

def inner():

print(a)

inner()

7.4 a = 1

def inner():

a += 1

print(a)

inner()

8,寫函式,接收兩個數字引數,將較小的數字返回.

9,寫函式,接收乙個引數(此引數型別必須是可迭代物件),將可迭代物件的每個元素以』_』相連線,形成新的字串,並返回.

例如 傳入的可迭代物件為[1,'老男孩','武sir']返回的結果為』1_老男孩_武sir』

10,寫函式,傳入n個數,返回字典

例如:min_max(2,5,7,8,4) 返回:(此題用到max(),min()內建函式)

11,寫函式,傳入乙個引數n,返回n的階乘

例如:cal(7) 計算7*6*5*4*3*2*1

12寫函式,返回乙個撲克牌列表,裡面有52項,每一項是乙個元組

例如:[(『紅心』,2),(『草花』,2), …(『黑桃』,『a』)]

13 有如下函式:

def inner():

print(666)

你可以任意新增**,用兩種或以上的方法,執行inner函式.

14相關面試題(先從紙上寫好答案,然後在執行):

1,有函式定義如下:

def calc(a,b,c,d=1,e=2):

return (a+b)*(c-d)+e

請分別寫出下列標號**的輸出結果,如果出錯請寫出error。

print(calc(1,2,3,4,5))_____

print(calc(1,2))____

print(calc(e=4,c=5,a=2,b=3))____

print(calc(1,2,3))____

print(calc(1,2,3,e=4))____

print(calc(1,2,3,d=5,4))_____

2,(此題有坑)下面**列印的結果分別是_________,,

.

def extendlist(val,list=):

return list

list1 = extendlist(10)

list2 = extendlist(123,)

list3 = extendlist('a')

print('list1=%s'%list1)

print('list2=%s'%list2)

print('list3=%s'%list3)

3, 寫**完成99乘法表.(公升級題)

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

2.也可以用sum函式

def suma(*args):

num = 0

for i in args:

num +=int(i)

return num

3.a=20,b=10,c=none

變數a=10,b=20. 呼叫函式時test5(b,a)=test5(20,10),所以a=20,b=10.

test5沒有return返回值,所以返回值為none

4.函式內:a=3,b=5;全域性變數:c=none; a=10,b=20

函式內的a b變數重新定義了,所以是3 5. 全域性變數a b定義時,是10 20.

test5沒有return返回值,所以返回值為none

5.使用傳參打散

def func(*args):

return args

print(func(*[1,2,3],*(22,33)))

6.使用傳參打散

def func(**kwargs):

return (kwargs)

ret = func(**,**)

print(ret)

7.7.1:成立

7.2:不成立,a +=1等於a = a+1重新賦值給a,預設修改不了全域性的變數a

a = 2

global a

a += 1

print(a)

7.3:成立

a = 1

def inner():

nonlocal a

a += 1

print(a)

inner()

8.def func(a,b):

return a if a=1:

num *= n

n -= 1

return num

#12.使用演算法:笛卡爾積

import random

def func():

lst =

huase = ['紅心','黑桃','草花','方片']

dianshu = [2,3,4,5,6,7,8,9,10,"j","q","k","a"]

for i in huase:

for i2 in dianshu:

random.shuffle(lst) #把列表元素打亂,洗牌

return lst

print(func())

13. def inner():

print(666)

inner()

def inner():

print(666)

def inner2():

inner()

inner2()

def inner():

print(666)

return inner

ret()

14-1.自行算,不會就直接執行**

答案:2

error248

10error

14-2.預設引數陷阱

list1=[10, 'a']

list2=[123]

list3=[10, 'a']

14-3.九九乘法表

def func():

for i in range(1,10):

for j in range(1,i+1):

print("%d*%d=%d"%(i,j,i*j),end=' ')

print("")

func()

day 10 函式高階作業(部分完成)

1.寫乙個匿名函式,判斷指定的年是否是閏年 leap year lambda year 閏年 if year 4 0and year 100 0 or year 400 0else 平年 print leap year 2020 閏年 2.寫乙個函式將乙個指定的列表中的元素逆序 如 1,2,3 3,...

猜年齡函式版day10作業

age 18 prize dict n print 註冊成功 break def login 登入功能 print 遊戲登入 username inp input 輸入你的使用者名稱 pwd inp input 輸入你的密碼 with open username info.txt r encodin...

Day 10 遞迴函式

include long func int func函式呼叫 int main long func int n 呼叫形參 已知斐波那契函式1,2,3,5,8 n 1,n得到分段函式n 1時為1 n 2時為2 n 2時為 n 1 n 2 同理若求8的n次方時分段函式n 0時為1 n 1時為8 8 n ...