路飛學城-7天集訓-第二章

開發工具 pycharm
功能:     ,後兩個功能須要用professional版(收費)
用它建立文件夾 --Directory,建立文件 --Python File.。   console,terminal,run,debuge功能區
 
個人安裝過程:
官網進入,點擊download,兩個版本,先 選擇community 下載
 
安裝選項,Create Associations是否關聯文件,選擇之後打開.py文件就會用PyCharm打開。Create Desktop Shortcut建立桌面快捷方式,一個32位,一個64位,64位系統選擇64位。勾選Download and install JRE x86 by JetBrains,會下載安裝JetBrains版的x86 JRE運行環境,沒有安裝的,能夠選擇勾選。
 
問題:我沒選下載JRE,之前安裝java 時候裝過,如今還須要麼?
 
 
 
2018/6/13-6/15
熟練pycharm和完成第一章做業
列表list    數據類型-數據集  
1,建立    使用[] 、‘’單引號或雙引號  和,
 
2.查詢
len()可查看列表長度 len(L2)
 
3, 切片 取列表中間的一部分  
    L2[0:3] 0和3中間爲冒號,表示取列表中序列從0到2的值 ['a','b','c'](顧頭不顧尾),也可寫爲L2[:3]從頭取冒號前面可不寫,從尾取,冒號後面可不寫,如 L2[-3:] 的值爲 ['e',1,2] 
    方括號還可使用第二個冒號,表示步長。如 L2[:3:2] 的值爲  ['a','c']   每兩個/隔一個取值
    
 
4,增長,修改,刪除元素
追加 .append('') 一個參數   如L2.append('3')會 加到L2結尾
插入 .insert(index,'')  兩個參數如 L2.insert(0,3) 將3加入索引爲0的位置
修改 直接賦值  L2[2]=3   則L2變爲 ['a','b',3,'d','a','e',1,2]
批量修改   L2[1:3] = 'AB CD'  左右兩邊的數量能夠不一致,能夠將後邊全部元素放到左邊所選的位置,可能會增長或減小列表數量   此時 L2 = ['a','A','B',' ','C','D','d','a','e',1,2]
刪除   .pop() 無參數 值爲最後一個元素,並將列表中最後一個元素刪除L2.pop()爲2,此時 L2 爲['a','b','c','d','a','e',1]
          .remove('') 一個參數 移除遇到的第一個元素  L2.remove('a')  L2=['b','c','d','a','e',1,2]
           del L2[2]  L2=['a','b','d','a','e',1,2]     del L2[2:5]     del L2
          .clear() 無參數 清空列表  L2.clear()  L2 = []
5, 循環、排序
    循環   for i in L2:                        i爲此處聲明的一個臨時變量,將L2中每一個值依次賦給i
                    print("i")    
   rang(10)  建立了0-9的列表   
   排序  .sort() 無參數,當列表中元素類型同樣是,從小到大排序         
           .reverse()   把當前列表原地倒轉 reverse後返回列表自己可看到
6,列表拼接
n1+n2  或者 n1.extend(n2)          
 
7,其餘 
.copy()   b = a.copy()  將b=a是將b指向了a指向的地址,a若是從新被賦值指向其餘地址,b爲原地址不受影響,而集合中若是隻改變 裏面的元素,地址未變,b也會跟着被改變 .而使用copy(),則a,b無關,只是將b同樣的值賦給了a,改變b不影響a
此爲 淺copy  可查看代碼深淺copy
import copy
copy.deepcopy( names)  此爲深copy
 
enumerate(list)    枚舉  成爲(索引,元素)的集合
        結果:
 
  結果:
 
.isdigit()  判斷是否爲數值
 
 
2018/6/15
二進制
十進制數轉二進制 bin(十進制數)  =0b+ 二進制數   0b表明二進制
 
ASCII碼
計算機將ASCII碼與十進制數0-255作了對應表   ASCII碼錶
每一個字符佔8位(bit比特),一共能夠表示256個。文字能夠進行二進制轉換。
 
GB2321  國標碼 簡體中文 收錄漢字6763個
GBK  繁體和簡體,收錄漢字2萬多     兼容ascii
Unicode國際編碼,支持多國語言 全部字符(包括英文) 佔兩字節  .包含和全部國家的編碼語言的映射關係
UTF-8 讓ascii碼的字符佔1個字節,歐洲字符佔兩個字節,東亞(中文)三個字節,是使unicode存儲和傳輸時更省空間的設計
 
python2 默認爲ASCII碼,python3默認爲UTF-8,因此用python2 編譯帶中文代碼時,須要改變默認語言
具體能夠查看
# -*- coding: UTF-8 -*-
 
2018/6/16
引入其餘源
from  decimal import *      從decimal庫引入全部
getcontext(). ....  設置源參數   
 
浮點數     python和JavaScript同樣,直接定義超長精度小數會不許確,能夠用分數代替
 
注意  不要將python代碼文件命名爲python預留字,模塊名等。特別不能與import 文件名同樣
容易出現 AttributeError: ‘module’ object has no attribute ‘ArgumentParser’  此樣錯誤
 
 
2018/6/21
字符串 深刻講解   數據類型 - 基本型  
特性:有序、不可變
pycharm 一樣能夠點 alt+鼠標點擊,進入方法 ,可查看python源碼,查看各類方法的解釋
s.isdigit()
s.replace(old,new,count)
s.find()    
s.center(width,fillchar)
s.format()用法 見下圖
' '.join(names)   將names裏的元素按' '鏈接    ''中間能夠爲空格、逗號,字母等等
s.strip() 將字符串兩端的空格、換行都去掉
s.split( 'o')  按'o'分割成列
s.capitalize() 首字母大寫,其餘小寫
s.casefold() 忽略大小寫即全小寫
s.find('o',0,5) 在0到5序號位上查找字母O,有則返回位置,無則返回-1
s.expandtabs() 控制tabs/空格數量
 
 
直播課
學習方法:輸入+輸出+糾正
 
 
 
 
2018/6/22
元組tuple    數據類型-數據集
一旦建立,不能再修改,是隻讀的列表 。可是能夠包含可變的list元素
使用小括號   ('a','b','c')
元組中只包含 一個元素時, 須要在元素後面添加逗號,不然括號會被看成運算符使用
使用場景:1明確告知別人,此處數據不可修改。2數據庫鏈接配置信息等
 
Hash函數
「散列」  一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數
被哈希的值是不可變的      數字、字符串、元組                                     hash((1,2,3))   
用途:文件簽名、md5加密、密碼驗證
 
字典dictionary    數據類型-數據集

1.格式html

字典的每一個鍵值 key=>value 對用冒號 : 分割,每一個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式以下所示:java

d = {key1 : value1, key2 : value2 }
value可爲列表。用key取值  d[key1] = value1
key值查找時不循環,查找速度很快
 
2.增長
直接爲新key賦值   d[key] = 'value3'
 
3.修改
直接賦值  d[key1] = newvalue
 
4.查找     dictionary 無索引index
經過  in  判斷key 是否在字典     'value'  in  d
獲取  get   d.get('key')   沒有該key,不報錯返回 空 none  而若是直接用 d[key],沒有該key是會報錯的
info.  可出全部方法?我試不出來
 
5.刪除
d.pop( 'key') 刪除key的這個鍵值
d.popitem() 隨機刪除裏面的鍵值
del d[key1]
 
6.多級嵌套
 
7.其餘
d.keys() 打印全部key值
d.values() 打印全部value值
d.update (字典2)  合併兩個字典 到d,由於key惟一,相同的key會被字典2覆蓋
d.item() 返回一個 包含key,value 元組的 列表
d.setdefault(k ,defaultvalue)  若是d裏的key值含k,返回k對應的值,不如不含,則用defaultvalue賦值
d.fromkeys(keys,value) 生成一個keys列表中每一個key 對應 value 的 格式的字典
 
8.循環
for k  in  d:                        
          print(k)    
          print(k, d[k])
 
 
2018/6/23
集合set    數據類型-數據集
直接定義   set = {1,2,3,4,5}  
其餘類型轉換    li = [1,2,3,4,3,4]   s = set(li)    #s = {1,2,3,4}
 
不知道某一個函數或方法 ,可使用  help(  method) 查看說明
 
1.增長      s.add(v)   增長一個給定值
            s.update( s1)  合併
2.刪除     s.pop()  隨機刪除一個值
           s.remove(v) 刪除給定的值
            s.discard(v)   刪除給定的值,若是沒有該值也不報錯
           s.clear() 清空
 
關係測試
s1 = {...} , s2 = {...}
1.交集      s1.intersection(s2)     或者    s1&s2    獲得一個新的相交的集合
2.差集       s1.difference(s2)  或者 s1 - s2   獲得一個新的s1中不一樣與s2的集合,不一樣與s2.difference(s1)或s2-s1
3.並集       s1.union(s2)   或者 s1|s2
4.對稱差集     s1.symmetric_difference(s2) 或 s1^s2  只在s1及只在s2的集合
5.判斷是否包含關係   假設s1包含s2
   s2.issubset(s1)       或     s2 <= s1
   s1.issuperset(s2)    或     s1>=s2
6.判斷兩個集合是否無相交
   s1.isdisjoin(s2)    Return True if two sets have a null intersection.
 
s1.difference_update (s2)  是將s1-s2的差值再賦給s1
s1.intersection_update(s2)  將s1&s2 獲得的交集賦s1
 
 
2018/6/25
十進制轉二進制     bin(十進制數)         -->0b..
八進制                    oct()                    -->0o...     少用
十六進制              hex()                    -->0x...    字符編碼、內存地址、數據流、web顏色  
由於一個16進制至關於4位2進制,一個字節8位, 兩個16進製表示一個字節。 ascii用16進制,只須要兩位。
數據交換的時候,對字節解析都是一個byte一個byte的處理,一個byte,用兩個16進制來表達方便。硬盤存儲是二進制,表達方式是十六進制
 
二進制轉十六進制
,不夠4位的補0
十六進制轉二進制
,每一個拆成4位的二進制數
 
直播內容:
文件操做
user_file =  open('user_info.txt','r+')
user_file.write('\n'+username)
user_file.close()
 
   python cookbook 
 
 
2018/6/26
字符編碼
若是不把編碼問題搞清楚,會糾纏整個職業生涯
問題:1 之前用Gbk寫的代碼,想從新編譯成utf-8不可能麼?不是從新定義語言而後保存一下就可麼?
            2 python3,存在內存裏實際是unicode,達不到省空間的做用呀?使用python3既然內存裏是unicode,還定義其餘的編譯語言有什麼做用,默認utf-8沒有做用   答:存在內存裏是unicode,可是硬盤裏是utf-8
 
python3使用默認utf-8保存,內存實際unicode。在python3執行時,不論哪國語言,好比 utf-8讀到內存,同時轉爲了unicode。全部系統都支持unicode。 使得其餘編碼也不出現亂碼
python3執行過程:
python2要使用中文,須要在文件頭標註gbk或者utf-8,並會以標註方式保存在內存,默認保存爲ascii。若是標註爲urf-8,windows加載會亂碼。
 
python3 自動執行了 解碼(decode)和編碼(encode)工做
UTF-8 -->decode  -->unicode
Unicode  -->encode  -->GBK/Utf-8 ..
python2能夠手動轉碼,使不出現亂碼
python2裏:type(unicode) = unicode       type(其餘編碼類型) =str
python3裏:str 就是unicode格式的字符
 
總結:1,學到了爲何會出現亂碼,編碼是什麼意思
           2.  unicode、utf-八、gbk特色
           3. unicode 與其餘編碼的映射關係能夠查表
           4. python3 內存默認存爲unicode.python2內存 根據文件頭標註,默認是ascii
           5.  decode   ,  encode  打印出的16進制數的含義
           6. 你的文件在內存裏怎樣轉成二進制對應的,表現爲16進制
           7.bytes 類型
2018/6/27
bytes類型介紹    encode 後的字符串 用16進製表示的二進制串,稱爲bytes
圖片、視頻 的二進制格式也稱bytes,但不能轉成字符串了
 
python3不兼容python2
相關文章
相關標籤/搜索