1. 程式人生 > >12.16作業

12.16作業

1.以下程式輸出結果是什麼

a = 1
def fun(a):
    a = 2
fun(a) 
print (a)   #1

a = []
def fun(a):
    a.append(1)
fun(a)
print(a) #[1]

2.請簡要說明什麼是類變數,什麼是例項變數,並觀察以下程式的輸出結果

類變數:所有的例項個體都可以使用
例項變數:只有例項個體可以使用

class Person:
    name="aaa"
p1=Person()
p2=Person()
p1.name="bbb"
print(p1.name)  #bbb
print(p2.name)  #
aaa print(Person.name) #aaa

3.以下語句有什麼弊端,name是元祖的時候,程式會是什麼樣的結果,如何避免

"hi there %s" % name

%s 是字串的佔位符,
name是元組的時候使用.format()

4.閱讀下面的程式碼,寫出A0,A1至An的最終值。
A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5))) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
A1 = range(10) #range(0, 10)
A2 = [i for i in A1 if i in A0] #[ ]
A3 = [A0[s] for s in A0] #[1, 2, 3, 4, 5]
A4 = [i for i in A1 if i in A3]# [1, 2, 3, 4, 5]
A5 = {i:i*i for i in A1} #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
A6 = [[i,i*i] for i in A1] # [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
5.這兩個引數是什麼意思:*args,**kwargs?我們為什麼要使用它們?

*args:代表任何型別(int,float,str)
**kw:是代表任何鍵值對
在對函式傳引數時,不能確定引數的型別,使用*args,**kwargs可以接受任何的引數。

6.請寫出一段Python程式碼實現刪除一個list裡面的重複元素

l = ['a','b','c','a','b','s','c']
l2 = []
[l2.append(i) for i in l if i not in l2]
print(l2)
l = ['a','b','c','a','c','b']
l = set(l)
print(l)

7.單引號,雙引號,三引號的區別

單引號和雙引號沒區別,都是用來定義字元
三引號可以註釋,可以用來換行

8.寫一個函式, 輸入一個字串, 返回倒序排列的結果

def re(a):
    l = []
    s = ''
    for i in a:
        l.append(i)
    l1 = sorted(l,reverse=True)
    for i in l1:
        s+=i
    #print(s)
    return s
m = 'abcdef'
b=re(m)
print(b)

9.列表[1,2,3,4,5],請使用map()函式輸出[1,4,9,16,25],並使用列表推導式提取出大於10的數

l = [1,2,3,4,5]
def ping(a):
    return a**2
l1 = map(ping,l)
l1 = list(l1)
l2 = [i for i in l1 if i > 10]
print(l2)