1. 程式人生 > >2-16 階段考核

2-16 階段考核

png bubuko 第一個 n) 字符串 tee 可變集合 ood 圖片

1,口述問題

  1. 學會看英文文檔,源碼目前不涉及
  2. 好的程序員,不能只懂一門語言,
  3. C語言,底層,推薦書目
  4. 變量命名規則和團隊保持一致
  5. 編碼格式(比較模糊)

技術分享圖片

技術分享圖片

2.不會的問題

編碼格式:

    python2解釋器是ASCII
    python3解釋器是UTF-8

python2中
    bytes = str
    Unicode是獨立的類型
    

python3
    str是unicode編碼
    所有的unicode字符編碼後都是bytes格式

3.考題

    技術分享圖片

    技術分享圖片

# -*- coding:utf-8 -*-

# s = "www.luffycity.com"
# print(s.split(.))

# 2. 切割字符串"luffycity""luffy","city"

# s1 = "luffycity"
# s1_1 = s1[0:5]
# s1_2 = s1[5:]
# print(s1_1,s1_2)

# 5. 有如下字符串:n = "路飛學城"
#     - 將字符串轉換成utf-8的字節,再將轉換的字節重新轉換為utf-8的字符串
#     - 字符串轉換成gbk的字節,再將轉換的字節重新轉換為utf-8的字符串

# n 
= "路飛學城" # # # print(n,type(n)) # print(n.encode(utf-8)) # print(n.encode(utf-8).decode(utf-8)) # print(n.encode(gbk)) # print(n.encode(gbk).decode(utf-8)) # 列表[alex,egon,yuan,wusir,666] # - 1.把666替換成999 # - 2.獲取yuan索引 # li = [alex,egon,yuan,wusir,666
] # # li[-1] = 999 # li.index(yuan) # li[-3:] # 2. 將列表[alex, steven, egon] 中的每一個元素使用 ‘\_’ 連接為一個字符串 # li = [alex, steven, egon] # # print(\_.join(li)) # 4. 對列表進行增刪改查。 # - [alex,egon,wusir,wen,jing] # li = [alex,egon,wusir,wen,jing] # li.remove(li[2]) # li.insert(2,json) # print(li) # 對字典進行增刪改查 # dic = {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"} # del dic[Development] # dic[Development] = 開發小哥 # 3. 編寫一個python程序,輸入兩個數,比較它們的大小並輸出其中較大者。 a = input("輸入數字a:") b = input("輸入數字b:") if a.isdigit() and b.isdigit(): if int(a) > int(b): print(a) else: print(b) else: print("請重新輸入")

4.frozenset:不可變集合

  set()和 frozenset()工廠函數分別用來生成可變和不可變的集合。如果不提供任何參數,默認
  會生成空集合。如果提供一個參數,則該參數必須是可叠代的,即,一個序列,或叠代器,或支持
  叠代的一個對象,例如:一個列表或一個字典。

>>> s=set(cheeseshop)  使用工廠方法創建
>>> s
{h, c, o, s, e, p}
>>> type(s)
<type set>

>>> s={chessseshop,bookshop}直接創建,類似於list的[]和dict的{},不同於dict的是其中的值,set會將其中的元素轉換為元組
>>> s
{bookshop, chessseshop}
>>> type(s)
<type set>

不可變集合創建:
>>> t=frozenset(bookshop)
>>> t
frozenset({h, o, s, b, p, k})

 1 >>> s.add(z)  #添加
 2 >>> s
 3 set([c, e, h, o, p, s, z])
 4 >>> s.update(pypi) #添加
 5 >>> s
 6 set([c, e, i, h, o, p, s, y, z])
 7 >>> s.remove(z) #刪除
 8 >>> s
 9 set([c, e, i, h, o, p, s, y])
10 >>> s -= set(pypi)#刪除
11 >>> s
12 set([c, e, h, o, s])
13 >>> del s  #刪除集合

只有可變集合能被修改。試圖修改不可變集合會引發異常。

1 >>> t.add(z)
2 Traceback (most recent call last):
3 File "<stdin>", line 1, in ?
4 AttributeError: frozenset object has no attribute add

5.函數:string.join()

Python中有join()和os.path.join()兩個函數,具體作用如下:
    join():    連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串
    os.path.join():  將多個路徑組合後返回

1、join()函數

語法:  sep.join(seq)

參數說明
sep:分隔符。可以為空
seq:要連接的元素序列、字符串、元組、字典
 上面的語法即:以sep作為分隔符,將seq所有的元素合並成一個新的字符串

返回值:返回一個以分隔符sep連接各個元素後生成的字符串



2、os.path.join()函數

語法:  os.path.join(path1[,path2[,......]])

返回值:將多個路徑組合後返回

註:第一個絕對路徑之前的參數將被忽略

#對序列進行操作(分別使用‘ ‘與‘:‘作為分隔符)
 
>>> seq1 = [hello,good,boy,doiido]
>>> print  .join(seq1)
hello good boy doiido
>>> print :.join(seq1)
hello:good:boy:doiido
 
 
#對字符串進行操作
 
>>> seq2 = "hello good boy doiido"
>>> print :.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
 
 
#對元組進行操作
 
>>> seq3 = (hello,good,boy,doiido)
>>> print :.join(seq3)
hello:good:boy:doiido
 
 
#對字典進行操作
 
>>> seq4 = {hello:1,good:2,boy:3,doiido:4}
>>> print :.join(seq4)
boy:good:doiido:hello
 
 
#合並目錄
 
>>> import os
>>> os.path.join(/hello/,good/boy/,doiido)
/hello/good/boy/doiido

---恢復內容結束---

2-16 階段考核