幾道練習題20200905

2022-08-21 21:21:10 字數 2748 閱讀 1825

github 幾道練習題20200905

python可變物件不可變物件:

可變物件與不可變物件的區別在於物件本身是否可變。

可變物件:list、dict、set

不可變物件:typle、string、int、float、bool

a = [1,2,3,none,(),,""]

print(len(a))

不管list裡面是什麼,都不會影響它的長度,所以是7

print(0xa +0xb + 0xc)
結果是33。這裡考察的是十六進製制。a-f表示10~15。

class parent:

def __init__(self, param):

self.v1 = param

class child(parent):

def __init__(self, param):

self.v2 = param

obj = child(100)

print('%d %d' % (obj.v1, obj.v2))

attribute error.

修改正確:

class child(parent):

def __init__(self, param):

# parent.__init__(self, param) # 呼叫父類的建構函式

super().__init__(param) # 呼叫父類的建構函式

self.v2 = param

super() 函式是用於呼叫父類(超類)的乙個方法。

super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序(mro)、重複呼叫(鑽石繼承)等種種問題。

mro 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

class account:

def __init__(self, id):

self.id = id

id = 666

acc = account(123)

print(acc.id)

結果:123

self.id 是例項變數,因此呼叫時,是__init__中的self.id=id 時賦的值,類初始化方法中id=666 為區域性變數

import re

sentence = "we are humans"

matched = re.match(r"(.*)(.*?)(.*)", sentence)

print(matched.groups())

結果:('we are humans', '', '')

第乙個(.*)是貪婪匹配,這樣會把整個字串都匹配到,後續兩個正則就無法匹配到資料了

x = ["ab", "cd"]

for i in x:

python3中會被kill掉,我認為是不停的迴圈自己然後不停的新增,陷入無限迴圈,占用系統資源越來越大,就被kill。

我自己測試了下,過然是這樣,可以將該程式寫入乙個指令碼(或者在ipython中執行),然後通過top命令觀察程序所佔資源的變化,我這裡觀察到,cpu,記憶體使用都接近百分之百,然後就被kill了。(可以在未被kill之前找到程序的程序號,然後通過top -p 程序號,只檢視該程序的資源占用情況,這樣比較直觀)

for i in [1,2,3,4][::-1]:

print(i)

4 3 2 1

考察的時python的切片操作

print("abcdefcdghcd".split("cd", 2))

print("abcdefcdghcd".split("cd", 1))

['ab', 'ef', 'ghcd']

['ab', 'efcdghcd']

第二個引數表示分割次數

class count:

def __init__(self, count = 0):

self.__count = count

c1 = count(2)

c2 = count(2)

print(id(c1)==id(c2))

s1="good"

s2="good"

print(id(s1)==id(s2))

false true

s1 s2 指向同一記憶體空間。c1 c2時不同的例項物件

def f(x, l=):

for i in range(x):

print(l)

f(2)

f(3,[3,2,1])

f(3)

[0, 1]

[3, 2, 1, 0, 1, 4]

[0, 1, 0, 1, 4]

幾道練習題

使用map函式 將字串列表 轉化 lxx.ab 形式 方法一 迭代器形式解題 name lxx lj dsvsf def func item name中的每一項都傳過來 循壞item return item sb name1 map func,name map 函式名,可迭代的 name1是乙個迭代...

C語言中的幾道練習題(三)

時隔一月,我又回來了。1.首先來看一道面試題.請問以下這段 可以迴圈多少次?includeint main 答案 迴圈執行0次,因為for語句的執行條件為k 0,這是一條賦值語句,在c語言中,0表示false,所以直接跳出迴圈,執行0次。2.設計一段 讓字串由兩邊向中間逐步出現。include in...

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...