第四次全天課筆記:python
1. 26個字母大小寫寫成對打印,例如:Aa,Bb,Ccgit
1 for i in range(26): 2 print(chr(ord("A")+i),chr(ord("a")+i))
2. 一個list包含數字或字母,而後生成新的list,list的全部數字+1.app
list1 = [1,2,3,4,5,6,7,8,9,10,」A」,」B」] list2 = []
for i in list1: if isinstance(i,(int,float)): list2.append(i+1) else: list2.append(i) print(list2)
3. 倒序取出每一個單詞的首字母dom
1 s = "I am a good boy!" 2 list2 = [] 3 4 list1 = s.split(" ") 5 list1.reverse() 6 7 for i in list1: 8 list2.append(i[0]) 9 10 print(list2)
或者函數
1 s = "I am a good boy!" 2 list2 = [] 3 4 for i in s.split(" ")[::-1]: 5 list2.append(i[0]) 6 7 print(list2)
4. 請你們找出 s="aabbccddxxxxffff"中出現次數最多的字母單元測試
s="aabbccddxxxxffff" max_occurence_times_letters = [] max_occurence_times = 0 for i in s: if s.count(i) > max_occurence_times: max_occurence_times_letters=[] max_occurence_times_letters.append(i) max_occurence_times = s.count(i) elif s.count(i) == max_occurence_times: max_occurence_times_letters.append(i) print(list(set(max_occurence_times_letters))) print(max_occurence_times)
方法2:測試
s = "aabbccddxxxxffff" letters_dict = {} for c in s: letters_dict[c] = s.count(c) for k,v in letters_dict.items(): if letters_dict[k] == max(letters_dict.values()): print(k)
一個字典,查詢出出現次數最好的字母
方法1:spa
d = {"a":1,"b":2,"c":3,"d":4,"e":4} letters= [] times = 0 for k,v in d.items(): if v > times: letters = [] times = v letters.append(k) elif v == times: letters.append(k) print(letters) print(times)
方法2:設計
d = {'a':1,"b":2,"c":3,"d":4,"e":4} max_value= max(d.values()) result = [] for k,v in d.items(): if v == max_value: result.append(k) print(result)
本身寫一個count函數code
def count_occurence(s,letter): times = 0 for i in s: if letter ==i: times+=1 return times print(count_occurence("aaaajjjjj33jjd","j")) print(count_occurence("aaaajjjjj33jjd","m"))
原碼/反碼/補碼
二進制:0、1
>>> bin(10)
'0b1010'
八進制:
>>> oct(9)
'0o11'
十六進制:
>>> hex(30)
'0x1e'
原碼
[+1]原 = 0000 0001
[-1]原 = 1000 0001
因此8位二進制數的取值範圍就是:[1111 1111 , 0111 1111],即:[-127 , 127]
反碼的表示方法是:
正數的反碼是其自己;負數的反碼是在其原碼的基礎上, 符號位不變,其他各個位取反。
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
補碼:
補碼的表示方法是:正數的補碼就是其自己;負數的補碼是在其原碼的基礎上, 符號位不變, 其他各位取反, 最後+1. (即在反碼的基礎上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]補
[-1] = [10000001]原 = [11111110]反 = [11111111]補
除法
>>> round(0.5)
0
>>> round(0.51)
1
>>> round(0.556,2) #取2位
0.56
>>> divmod(5,2) #同時取商和餘數
(2, 1)
如何本身寫出這個函數?
def divmod1(a,b):
c = a // b
d = a % b
return c,d
print(divmod1(5,2))
>>> bin(3)
'0b11'
>>> bin(3)[2:].zfill(8) #將0b去掉,前面補齊0
'00000011'
>>> int(bin(3),base=2)
3
>>> int(bin(3)[2:],base=10) #默認base=10
11
邏輯運算:
and or not
什麼樣的是False: 0 「」 [] {} None False
>>> if 0:
... print("hh") #數字0是False
...
>>> if "0":
... print("hh") #字符串0是True
...
Hh
敏捷:
每一個需求階段:1周到1月,推薦2周。只作明確的需求。
自動化測試:UI測試、接口測試、單元測試
微軟、谷歌、facebook:單元測試
緣由:顆粒度最細,執行很快,全員能夠參與
敏捷:
1. 不強調文檔,強調溝通
2. 不過分設計,只作明確需求
3. 使用自動化測試,單元測試最好
Tdd:測試驅動開發
先寫測試用例,再寫代碼,讓測試用例經過。
4. 持續集成: jenkins
5. 上線:測試上線比較好,對上線內容的控制力,把控質量標準
探索式測試:華爲公司作得比較好
成員運算符,測試實例包含了一系列的成員,包括字符串,列表,元組等。 (in, not in)
>>> "a" in "dddd"
False
>>> "a" in {"a":1,"b":2}
True
>>> "a" in ["a","b"]
True
>>> "a" in ("a","b")
True
>>> "a" in set(["a","b"])
True
身份運算符
》256以後,地址就不同了
>>> a=1
>>> b=1
>>> a is b
True
>>> a=1000
>>> b=1000
>>> id(a)
29994704
>>> id(b)
34630320
>>> a is b
False
>>> eval("1+2")
3
>>> s="print('hhhh')"
>>> exec(s) #直接執行python語句
Hhhh
Import operator
print (operator.add(1,1))
print (operator.sub(2,1))
print (operator.mul(2,3))
print (operator.truediv(6,2))
print (operator.contains("ab","a"))
print (operator.pow(2,3))
print (operator.ge(1,1))
print (operator.ge(2,1))
print (operator.le(1,2))
print (operator.eq(1,1))
標準輸出
>>> import sys
>>> sys.stdout.write("hihihi")
hihihi6
標準錯誤輸出
>>> sys.stderr.write("hhhhh")
5
hhhhh>>>
標準讀入
>>> a=sys.stdin.read()
jjj
hhhh
^Z
>>> a
'jjj\nhhhh\n'
把字符串中的全部數字刪除掉
s = "a1b2c3b4d5" no_digit_list = [] for i in s: if i not in "0123456789": no_digit_list.append(i) result = "".join(no_digit_list) print(result)
一行的表示:
>>> "".join([i for i in "a1b2c3b4d5" if i not in "0123456789"])
'abcbd'
推倒列表
數字函數
給3個數排序
a = [1,2,3,4,5] def max(a): #找到列表的最大值 max_num = a[0] for i in a: if i > max_num: max_num =i return max_num l=[1,2,3] a=max(l) l.remove(a) b=max(l) l.remove(b) c=l[0] print(a,b,c)
>>> import random
>>> random.random() #從0到1 的小數
0.7250679200707006
>>> int(random.random()*100) #獲取兩位整數
99
>>> int(random.random()*100)
31
>>> random.randint(0,100) #獲取0-100的隨機整數
37
>>> random.randint(0,100)
練習:
生成混合的9位數字字母的密碼
import string import random pass_wd = "" for i in range(9 ): if random.randint(0,1): pass_wd+=string.ascii_letters[random.randint(0,51)] else: pass_wd+="0123456789"[random.randint(0,9)] print (pass_wd)
if random.randint(0,1):
#就是隨機位置,當if 0時,就是false,那就執行else的代碼塊,若是if 1時,就是true那就執行if中的代碼塊,這樣就實現了,字母和數字的混合
>>> random.uniform(1,10)
4.086943225277189
>>> random.uniform(1,1000)
359.14498595535434
程序退出