1.Sql導入數據方式:(1)軟件選擇導入,分隔符類型,直接導入java
(2)寫入代碼導入python
二、Hadoop下載安裝:官網下載安裝mysql
三、HDFSlinux
HDFS的可靠性:建立了多份數據備份,放置在了其餘計算機節點中,讀取速度也很快。android
結構:NameNode(元數據 內存)和DataNodes(文件內容 磁盤)程序員
運行機制:(1)一個名字節點和多個數據節點算法
(2)故障檢測sql
計算機網絡shell
1 電路交換與分組交換的區別是什麼?優劣對比?apache
答:先介紹基本概念:
概念:必須通過創建鏈接(佔用通訊資源)--->通話(一直佔用通訊資源)--->釋放鏈接三個步驟的交換方式稱爲電路交換。
優勢:高效
缺點:分組在路由器存儲轉發須要時延。
2 電路交換、報文交換和分組交換
3 計算機網絡的定義
4 相關概念
5 網絡各分層的功能
6 體系結構
網絡體系
1.網絡體系具備一系列的規範來管理介質訪問、物理尋址、計算機與傳輸介質的交互。在決定網絡體系時,其實是在決定如何設計網絡訪問層。
2.網絡體系包含對物理網絡的定義,以及該物理網絡上定義的通訊規範。
OSI的七層協議體系結構
7、應用層|
6、表示層|
5、會話層|
4、傳輸層|
3、網絡層|
2、數據鏈路層|
1、物理層|
從上而下提供端到端的服務。
巧記:應示、會傳、網數理
TCP/IP
TCP/IP:在Internet和不少其餘網絡上使用的網絡協議簇。
TCP/IP的特性
TCP/IP體系結構
應用層(各類應用層協議如TELNET/FTP/SMTP等)|
傳輸層(TCP或UDP)|
網際層IP|:尋址與發送
網絡接口層|
五層協議的體系結構
5、應用層(HTTP/FTP/SMTP)|
4、運輸層(TCP/UDP)|
3、網絡層(ICMP/IGMP/IP/RARP/ARP)|
INTERNET控制消息協議——ICMP
2、數據鏈路層|
1、物理層|
巧記:應運而生網絡、數據+物理。
7 各層次簡介
複用:就是多個應用層進程能夠同時使用下面運輸層的服務。
分用:運輸層把收到的信息又分別交付給上面應用層中相應的進程。
多路複用/多路分解
1.多路複用是指把多個來源的數據導向一個輸出,而多路分解是把從一個來源接收的數據發送到多個輸出。多路傳輸/多路分解讓TCP/IP協議棧較低層的協議不比關心哪一個程序在傳輸數據。與應用程序相關的操做都由傳輸層完成了,數據經過一個與應用程序無關的管道在傳輸層與網際層之間傳遞。
2.多路複用是指兩個或多個用戶共享公用信道的一種機制。經過多路複用技術,多個終端能共享一條高速信道,從而達到節省信道資源的目的,多路複用有頻分多路複用(FDMA),時分多路複用(TDMA),碼分多路複用(CDMA)幾種。
運輸層有如下兩種協議:
傳輸控制協議TCP(Transmission Control Protocol)
面向鏈接的,數據傳輸的單位是報文段,可以提供可靠的交付。
TCP數據格式:
用戶數據報協議UDP(User Datagram Protocol)
無鏈接的,數據傳輸單位是用戶數據報,不保證可靠的交付,只能提供「最大努力的交付」。
8 數據鏈路層
9 MAC地址的概念以及做用
10.物理尋址
1.網絡訪問層須要把邏輯IP地址與網絡適配器的固定物理地址相關聯。
2.物理尋址是由介質訪問控制(MAC)子層負責的。
3.TCP/IP使用地址解析協議(ARP)和逆向地址解析協議(RARP)把IP地址關聯到網絡適配器的物理地址。ARP和RARP爲用戶提供的邏輯IP地址與局域網上使用的硬件地址創建了一個對應關係。
11 MAC地址和IP地址的區別
12 MAC幀格式
其中類型表示的是上一層使用的是什麼協議,以便把收到的Mac幀交給上一層的這個協議。
13 網際層:尋址與發送
網際協議IP
14 IP
IP尋址:
1.劃分網絡ID和主機ID的最初方案是使用地址分類。
2.A類:0.0.0.0~127.255.255.255
B類:128.0.0.0~191.255.255.255
C類:192.0.0.0~223.255.255.255
D類:224.0.0.0~239.255.255.255
E類:240.0.0.0~247.255.255.255
規定首字節不能是12七、0、255,主機各位不能同時爲0和1
15 ARP協議的用途、算法,在哪一層會使用arp?
16 如何實現透明傳輸?
17 路由表的內容是什麼?
18 UDP的首部格式
19 三次握手+四次斷開
TCP如何保證可靠性:
TCP的可靠性是經過順序編號和確認(ACK)來實現的。TCP在開始傳送一個段時,爲準備重傳而首先將該段插入到發送隊列之中,同時啓動時鐘。其後,若是收到了接受端對該段的ACK信息,就將該段從隊列中刪去。若是在時鐘規定的時間內,ACK未返回,那麼就從發送隊列中再次送出這個段。TCP在協議中就對數據可靠傳輸作了保障,握手與斷開都須要通信雙方確認,數據傳輸也須要雙方確認成功,在協議中還規定了:分包、重組、重傳等規則;而UDP主要是面向不可靠鏈接的,不能保證數據正確到達目的地。
20 FTP和TFTP的區別:
21 以太網
1.以太網是目前使用最普遍的局域網技術,是當今現有局域網採用的最通用的通訊協議標準。
2.在典型的以太網上,所有計算機共享同一個傳輸介質。以太網使用成爲載波偵聽多路訪問/衝突檢測(CSMA/CD)的方法,來判斷計算機什麼時候能夠把數據發送到訪問介質。經過CSMA/CD,全部計算機都監視傳輸介質的狀態,在傳輸以前等待線路空閒。若是兩臺計算機嘗試同時發送數據,就會發生衝突,計算機就會中止發送,等待一個隨機的時間間隔,而後再次嘗試發送。
3.傳統以太網在中低負載狀況下運行良好,但在大負載狀況下會因爲衝突的增多而影響性能。在現代以太網中,像網絡交換機這樣的設備會對流量進行管理,減小衝突的發生,從而讓以太網的運行更具效率。
22交換機:每臺計算機也是經過一條線路鏈接到交換機。可是,交換機知道應該把接收到的數據發送到哪個端口。大多數交換機把端口與所鏈接設備的物理地址關聯起來。當一個端口所鏈接的計算機發送數據幀時,交換機會查看幀的目的地址,把幀發送到目的地址相關聯的端口
23 訪問過程
瀏覽器輸入網址以後的過程
1應用層:客戶端瀏覽器經過DNS解析到www.baidu.com的IP地址220.181.27.48,經過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,而後經過TCP進行封裝數據包,輸入到網絡層。
HTTP訪問服務器
2傳輸層:在客戶端的傳輸層,把HTTP會話請求分紅報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。而後使用IP層的IP地址查找目的端。
3.客戶端的網絡層不用關心應用層或者傳輸層的東西,主要作的是經過查找路由表肯定如何到達服務器,期間可能通過多個路由器,這些都是由路由器來完成的工做,經過查找路由表決定經過那個路徑到達服務器,其中用到路由選擇協議。
4.客戶端的鏈路層,包經過鏈路層發送到路由器,經過鄰居協議查找給定IP地址的MAC地址,而後發送ARP請求查找目的地址,若是獲得迴應後就可使用ARP的請求應答交換的IP數據包如今就能夠傳輸了,而後發送IP數據包到達服務器的地址。無論網絡層使用的是什麼協議,在實際網絡的鏈路上傳送數據幀時,最終仍是必須使用硬件地址。每個主機都設有一個 ARP 高速緩存(ARP cache),裏面有所在的局域網上的各主機和路由器的 IP 地址到硬件地址的映射表。當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。若有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,而後經過局域網將該 MAC 幀發往此硬件地址。
Linux知識點
linux 操做系統概述
1.常見操做系統
- 服務端操做系統 : linux、unix、windows server
- 單機操做系統 : windows(dos 、ucdos、win9五、win9八、win2000、xp、vista、win七、win8)
MAC 、linux(ubuntu)
- 移動操做系統 Android、IOS 、Windows phone
2.linux操做系統介紹
- 爲何要學習linux操做系統
1. 大部分服務端都採用linux ,JEE部署到服務器中
2. 一些企業和學校採用linux研發和教學
3. 不少嵌入式開發 用linux
4. 雲計算、大數據 是集羣網 linux : centos
- 特色
1. 開放、開源、多用戶的網絡操做系統
2. 基於unix(unix-->minix-->linux(linus :林納斯 芬蘭 )),能夠定製內核
3. 假如了GNU組織(自由軟件組織 ,copyLeft) ,經過GPL(通用公共許可) 許可對外發布
- linux組成
1. linux內核(linus 團隊管理)
2. shell :用戶與內核交互的接口
3. 文件系統 : ext三、ext4 等 windows 有 fat32 、ntfs
4. 第三方應用軟件
- linux操做系統版本
1. 內核版本 (linus 團隊管理) 3.8
2. 發行版本 :一些軟件公司之內核爲基礎,再添加一些軟件和文檔造成發行版本
- red hat : rhel ,centos
- debian : debian,ubuntu(桌面)
- android
二.安裝linux系統
vmware安裝 : 建立虛擬機的軟件
vitual box :oracle 公司提供
虛擬機安裝
直接安裝
建立虛擬機
安裝ubuntu鏡像
打開虛擬機鏡像: 虛擬機+操做系統(ubuntu)
打開*.vmx 文件
用戶名 itcast 密碼 123
三.linux系統環境
默認有6個命令交互通道和一個圖形界面交互通道,默認進入到的是圖形界面通道
命令交互模式切換:ctrl+alt+f1—f6
圖形交互界面 ctrl+alt+f7
1.圖形界面交互模式
- terminal: 圖形界面的命令終端,它是圖形界面交互通道的延伸,要依賴於圖形界面
2.命令交互模式
命令提示符:
itcast@ubuntu:~−itcast:用戶名−ubuntu:主機名− :路徑,假如當前的路徑正好是該用戶存放數據的根目錄,則顯示 −−itcast:用戶名−ubuntu:主機名− :路徑,假如當前的路徑正好是該用戶存放數據的根目錄,則顯示 − :用戶的類型 $表明普通用戶 # 表明 超級用戶
3.linux文件系統
- 目錄結構
- 文件權限分析
w :可寫 r: 只讀 x:可執行 - :無權限
文件權限
1. 字符表示法
drwxr-xr-x
第一個字符 :文件的類型 - :普通文件 d:文件夾 c :串口文件 l :鏈接文件
2-4 字符 : 該文件的屬主用戶的權限
5-7 字符 : 與屬主用戶同一組的其餘用戶的權限
8-10 字符 : 不一樣組的其餘用戶的權限
2. 數字表示法
-rw-r--r-- :文件的默認權限 644
drwxr-xr-x : 目錄的默認權限 755
4、linux的經常使用命令
1.註銷、關機、重啓
- 註銷 :logout :登出 、exit
- 關機 :
shutdown - h 時間
- h :關機
- 時間 :
1. now :立刻
2. 12.30 :指定具體時間
3. 3 :幾分鐘之後
sudo : superuser do :由超級用戶來執行該命令
要配置sudo 命令 : 受權 哪些用戶能執行哪些命令
由超級用戶配置 sudo
/etc/sudoers
sudo shutdown -h now 當前帳號:itcast
- 重啓 :
shutdown -r 時間
-r :restart
2.linux基本命令 :文件操做命令
1. ls : 查看目錄內容
- l :查看詳細信息
- a :查看全部文件(隱藏)
man :manual : 手工,幫助 ,幫助命令,比如windows help
命令: man ls
2. mkdir :建立目錄
Desktop:
- java
- JEE : aa.txt bb.txt
- Android
3. cd 切換目錄
- cd .. 記得要加空格
- cd ./java 進入當前目錄的子目錄
- cd ../xxx 進入上一級目錄的子目錄
tab :自動補全
4. touch :建立一個空白的普通文件
touch aa.txt
5. echo :把內容重定向到指定的文件中 ,有則打開,無則建立
6. cat、more :查看文件內容
- cat :查看文件內容
- more :分頁查看文件內容,按空格鍵換頁
7. cp、mv、rm
- cp :複製
cp bj.txt ./java/jee
- mv :剪切、重命名
1. 剪切 :mv aa.txt ../android/
2. 重命名 :假如剪切的文件 存放在同一個目錄中 ,則是重命名
mv bb.txt cc.txt
- rm :刪除文件或者文件夾
-f : 假如要刪除的文件不存在,也不提示
-i : 刪除前提示 ,默認不刪除,要刪除,輸入y
-d : 刪除空白目錄
-r :遞歸刪除
8. wc :word count :統計字符數
154 233 3418
- 154 :行數
- 233 :單詞數
- 3418 :字符數
命令: wc bj.txt
9. ln :建立鏈接文件
- 默認建立的是硬鏈接,比如複製 ,可是兩個文件會同步
命令:ln ./java/android/aa.txt aaa
- s :建立的是軟鏈接
10. pwd :查看當前目錄的絕對路徑
11. 管道命令 |
命令: ls -la | wc
12. 重定向
- > :覆蓋模式
命令: echo "ww">aaa
- >>:追加模式
命令: echo "ww">>aaa
13. passwd :設置密碼 ,ubuntu默認 root帳號是沒有開啓 ,只要設置root密碼便可開啓
sudo passwd root
14. su 切換目錄
su root
root用戶切換到其餘帳號不須要密碼
3.linux 系統命令
1.stat :查看文件的詳細信息
stat bj.txt
2.who與whoami
who : 查看在線的用戶
whoami :查看當前本身的用戶
3.hostname : 顯示主機名
hostname
4.uname :顯示系統信息
-a :顯示完整的系統信息
5.top :顯示當前耗時的進行的信息 ,每3秒刷新一次
cltr+c 中斷
6.ps :顯示當前進程的快照
- axu
7.du :顯示文件的大小信息
8.df :磁盤使用狀況 disk free
9.ifconfig :查看或者配置網卡信息 ,比如windows 的ipconfig
ipv4:32位 2-32次方 ipv6 128位 是 ipv4 2-96次方倍數
設置虛擬機ip地址:
1. 設置vmware的鏈接方式
- 共享宿主機的ip地址,在網上鄰居找不到
- 橋接方式,須要單獨設置ip,能夠在網上鄰居查找
2. 圖形界面設置ip地址
edit connection --》ipv4--》manual(手工設置)--》add (ip地址,子網掩碼)
3.命令方式設置ip地址
靜態設置ip:
sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
10.ping 測試與目標主機鏈接狀況
11.clear : 清除屏幕 windows: cls
12.man :幫助命令
man 命令
13.kill :殺死進程
kill pid
14.netstat :網絡鏈接詳細信息
15. useradd
- 查看用戶信息
sudo cat /etc/passwd
itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash
- itcast:用戶名
- x :密碼 :已經加密 ,密碼存放在 /etc/shadow
- 1000: 帳號id ,userId
- 1000: 組id ,group id
- UbuntuA,,, :帳號描述
- /home/itcast :該帳號存放文件的默認位置 ~
- /bin/bash:該用戶的shell腳本的解析方式 ,sh 、bash、rbash
- 建立用戶
sudo useradd lijun -d /home/lijun -s /bin/bash
-d :指定該用戶的home 路徑
- s :該用戶的shell解析方式
步驟:
1. 建立 /home/lijun 目錄
2. 執行 useradd 命令
3. 用 passwd 設置密碼
4. su 切換用戶
5、打包、壓縮文件
windows : zip、rar
linux :gz ,bzip,zip
1.tar :打包、拆包命令
tar - cxzjvf <打包後的文件> <欲打包的目錄>
- c :建立的一個歸檔文件 ,即打包文件夾
- x :拆包
- z :以gzip 格式壓縮,默認壓縮倍數 6倍 (0-9)
- j :以bzip2格式壓縮
- v :顯示打包或者拆包的文件信息
- f : 後面緊接一個 歸檔文件
- 打包文件
tar -cvf news.tar ./java 摘要
- 拆包文件
tar -xvf news.tar
2.gzip 、bzip2 壓縮與解壓
1. 壓縮文件
gzip news.tar
2. 解壓文件
gzip -d news.tar.gz
-d :解壓
3.打包及壓縮
- 打包及壓縮
tar -czvf news.tar.gz ./java
- 拆包及壓解縮
tar -xzvf news.tar.gz
6、軟件管理
windows : .exe 安裝 、卸載
安裝: mysql.exe cc.exe
卸載 : 該軟件惟一的標識 ,包名 alibaba
android : *.apk 卸載 包名
red hat :*.rpm
ubuntu : 對debian的升級 *.deb 格式
1.安裝軟件
- dpkg :debian package
離線安裝:
安裝 : sudo dpkg - i <文件名>
-i :install
命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb
卸載 : sudo dpkg - r <包名>
-r :remove
命令:sudo dpkg -r tree
- apt-get :advance package tools
對dpkg命令的升級,在線安裝
安裝 : sudo apt-get -install <包名>
卸載 : sudo apt-get -remove <包名>
2.vim 軟件 :比如記事本 ,可是比記事本要強大
1. 安裝vim
2. 使用vim
操做模式:
1. 通常模式 ,默認進入的通常模式,該模式不能編輯文檔 ,只能查看
按 i(insert) 進入 插入模式
2. 編輯模式、插入模式
該模式能夠編輯文檔,按esc 退出插入模式,進入到通常模式
3. 命令模式 :在 通常模式中按:進入命令模式
- q: 安全退出,當沒有操做該文檔,則直接按q退出vim
- q!:當修改了內容,可是不想保存,則q!強制退出
- wq :保存退出
- set number 顯示行號
- set nonumber 取消行號顯示
7、搭建Java服務器,而且實現遠程安全訪問linux系統
1.經過ssh實現安全遠程訪問linux系統
ssh :secure shell
加密:
1. 對稱加密 (加密密鑰與解密密鑰相同)
des 、aes
2. 非對稱加密(加密密鑰與解密密鑰不一樣)
RSA :公鑰、私鑰
數字摘要:
md5 \sha1
1. 查看是否安裝了ssh服務端與客戶端
sudo apt-cache policy openssh-client openssh-server
2. 安裝ssh 服務端與客戶端軟件
sudo dpkg -i ./ssh/*
3. 經過windows ssh客戶端來訪問linux服務端
- putty :遠程登陸
- winscp433setup.exe :文件傳輸
2. 安裝jdk
進入 root用戶
實現步驟:
1. jdk 存放在哪裏 /opt
2. 把軟件拷貝到/opt
3. 綠色軟件,解壓
4.設置環境變量
vim /etc/profile
export JAVA_HOME="/opt/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
5. 刷新配置 ,讓配置生效
source /etc/profile
6. 編寫Demo.java,測試
-javac Demo.java
- java Demo
3. 安裝tomcat
步驟:
1. 安裝在哪裏 /opt
2. 拷貝、解壓
tar -xzvf apache-tomcat.tar.gz
3. 運行
- ./startup.sh
- ./shutdown.sh
4. 安裝Eclipse
步驟:
1.安裝在/opt
2. 拷貝、解壓
cp eclipse.tar.gz /opt
tar -xzvf eclipse.tar.gz
重點:
1.linux系統環境
命令交互通道
命名提示符
2. linux 目錄結構、文件權限
drwxr-xr-x
3. linux 命令
- 開關機
- 文件操做
- 系統命令
1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat
4. 軟件管理
- dpkg :離線 .deb .rpm .apk
- apt-get :在線
5. 壓縮解壓
tar -cxgzvf 打包後的文件 要打包的文件
6. vim 的使用
三種模式
7. ssh理解 secure shell
8. java開發環境搭建
Python 知識點
Python是一個面向對象的解釋型的交互式高級腳本語言:Python被設計成一種高可讀性的語言,由於它大量地使用了英語中的單詞做爲關鍵字,並且不像其餘語言使用標點符號構成複雜的語法結構,Python的語法結構很是少。
Python是一種面向對象的語言:即Python是支持面向對象的,支持在對象中進行代碼封裝。
Python是一種解釋型語言:即Python程序是在運行時由解釋器解釋執行的,於是不用事先編譯源程序。這一點和Perl和PHP相似。
Python是一種交互式語言:即你可以在Python提示符下直接交互式地編寫你的程序。
Python是初學者的語言:Python是一種很是適合初學者的語言,它支持多種類型的應用程序的開發,如簡單的文本處理、www瀏覽器應用程序開發、遊戲開發等等。
1)什麼是Python?使用Python的優勢有哪些?缺點有哪些?
Python是一種面向對象的解釋性的交互式語言,帶有對象、模塊、線程、異常和內存自動管理的機制。
使用Python的優勢有:簡單、易學、輕即可移植、可擴展、可讀性、具備多種內建數據類型、開源等等。
使用Python的缺點有:運行速度慢,代碼不能加密(解釋性語言,發佈python應用只能發佈源代碼,不像C發佈編譯後的應用文件)
2)什麼是PEP 8?
PEP 8是一種編碼規範,是一系列關於如何讓Python代碼更加具備可讀性的編碼建議。
3)什麼是序列化(pickling)和反序列化(unpickling)?
序列化:將在內存中的變量轉爲可存儲或傳輸的過程。應用JSON傳輸,序列化爲統一格式json
反序列化:與序列化的過程相反
Pickle模塊容許咱們將Python對象轉換成一個string表示的信息,而且可使用dump函數將其保存到一個文件中去,這樣的過程稱爲序列化。而使用文件中保存的對象信息重構Python對象的過程稱爲反序列化。
4)Python是如何被解釋執行的?
Python是一種解釋型語言,它能夠直接從源代碼運行程序。程序員編寫的源代碼首先轉變成一種中間語言代碼,而後再被轉換成可以直接執行的機器語言代碼。
5)Python是如何進行內存管理的?
Python內存空間是以Python私有堆的形式進行管理的。全部的Python對象和數據結構都存放在一個私有堆中。解釋器能夠訪問私有堆,而程序員不能夠。
將Python堆空間中的內存分配給Python對象的工做是由Python內存管理器完成的。而內核API則會提供給程序員一些相關的工具來完成涉及到內存的編碼工做。
Python還內置垃圾回收器,從而進行回收釋放內存到堆空間。
6)可以找到程序中的bug進行靜態分析的工具備哪些?
PyChecker是一種可以發現Python源代碼中的bug並對其中的代碼風格和複雜度進行警告的靜態分析工具。另一種工具是Pylint,它可以驗證模塊是否知足編碼標準。
7)什麼是Python裝飾器?
用來裝飾一個函數從而使這個函數在不修改自己的函數定義外,動態產生額外的功能;裝飾函數的入參爲須要被裝飾的函數。裝飾器本質上是一個返回函數的高階函數
一個Python裝飾器是咱們在符合Python語法的同時又方便地對函數作的一些特定的修改。
8)列表、元組、集合、字典的區別是什麼?
列表:元素可變(任何數據類型),有序(可索引),append/insert/pop;
元組:元素不可變,但元素中的可變元素是可變的;有序(可索引);並且元組能夠被散列,例如做爲字典的鍵。
集合:無序(不可被索引)、互異
字典:無序,鍵值對(key:value),key惟一不可重複
9)怎樣理解字典和列表?
它們是一種用來建立可變對象的語法結構,數據容器。
dic插入、查找速度比list快,不會隨key的增長而增長,但list會隨着元素的增長而增長(偏移量)
10)參數是如何經過值或者引用傳遞的?
python中確切說應該是「傳對象引用」的方式,引用對象傳遞。 一切皆對象,參數皆引用
若是函數收到的是一個可變對象(好比列表、字典)的引用,則可修改對象的原始值==至關於「引用傳遞」方式;
若是函數收到的是一個不可變對象(好比數字、字符、元組),就不能直接修改原始對象指向的值==至關於「值傳遞」方式;
11)Python提供哪些內置類型?(原文有語法錯誤,根據我的理解翻譯)
分爲可變類型和不可變類型。
可變類型:
列表
集合
字典
不可變類型:
字符串
元組
數字
12)Python中的命名空間是什麼?
名字到對象的一個映射;
一個對象擁有一個ID(內存地址)、一個類型、一個值,但能夠有不一樣的名字,好比:a=1,b=a,a和b指向同一個對象;
命名空間就是用來映射這個關係的;
13)Python中的lambda表達式是什麼?
lambda表達式是一個匿名函數,省去了對函數命名,因此叫匿名函數。一般用做代碼行內的嵌入函數。
14)爲何Python中的lambda表達式沒有聲明?
Python中的lambda表達式沒有聲明是由於它只是用來建立一個新的函數對象,而且在運行時才返回值給對象。
15)Python中的pass是什麼意思?
pass是Python中的空操做語句,或者說,它是一個複雜語句中的一個空間佔位符,只是用來表示空白,什麼都不用寫。
16)Python的迭代器是什麼?
迭代器是用來迭代可迭代對象的,好比包含一組元素的列表。 iter()生成迭代器對象,next()依次訪問迭代器對象的下一個值
17)Python中的unittest是什麼?
unittest是Python中的單元測試框架。它支持共享的測試創建、自動測試、關閉測試、彙集測試等等。
18)什麼是切片?
從一組序列中截取一段序列的機制,好比列表、元組、字符串等類型中選擇一個範圍中的元素。
19)Python中的生成器是什麼?
一種特殊的迭代器,用關鍵字yield表示,它特殊的地方在於運用在函數中函數體沒有return返回,而是使用關鍵字yield返回值,yield每返回一次,函數狀態掛起 。這種函數叫作生成器函數,被調用時返回一個生成器對象;
20)Python中的docstring是什麼?
docstring是一個py文件、函數、類開頭部分的用'''編寫的一段註釋文檔和說明,經過help函數可查看該文檔說明。
docstring是Python中產生文檔的方式,它能夠爲Python中的函數、模塊和類產生說明文檔。
21)Python中如何拷貝一個對象?
使用標準庫的copy模塊:copy.copy()淺拷貝,copy.deepcopy()深拷貝
copy.copy()淺拷貝:拷貝了對象,但拷貝對象的值仍然是指向原對象的值(至關於引用),修改拷貝對象的元素,則被拷貝對象的值也會被修改
copy.deepcopy()深拷貝: 不只拷貝了對象,同時也拷貝了對象中的元素,得到了全新的對象,與被拷貝對象徹底獨立;但這須要犧牲必定的時間和空間。
22)Python中負的索引是什麼意思?
Python中可使用整數和負數進行索引。對於正索引,0是第一個,1是第二個,以此類推。對於負索引,-1是最後一個,-2是倒數第二個,以此類推。
23)怎樣將一個數字轉換成字符串?
使用內置函數str()便可。若是想要八進制或者十六進制的形式,可使用oct或者hex函數。
24)xrange和range的區別是什麼?
xrange返回一個xrange生成器對象,而range返回一個list對象。
生成很大數列的時候,range會使用和其範圍大小相同的內存;相比xrange的性能要高不少
25)Python中的模塊和包是什麼?
在Python中,模塊就是一種構建程序的方式。每個Python程序文件都是一個模塊,這個文件還能夠引入其餘模塊如對象和屬性等。
包就是一個帶有__init__.py文件的文件夾,裏面可包含多個模塊
26)@property、@staticmethod、@classmethod:
@property:特性,被其裝飾過的方法(函數),能夠當成屬性同樣去調用和訪問。如:a()是一個方法==》c.a(對象.屬性)調用
@staticmethod:靜態方法,被其裝飾的函數中不含self參數,至關於類外面的方法,但會在類中被調用(跟類有關係但在運行時又不須要實例和類參與)。經過類名調用
@classmethod:類方法,經過類名調用(通常類中的方法是實例方法,經過實例調用),使用時將類做爲方法的第一個參數傳入,如:
@classmethod
def test(cls):
print(cls,cls.x)
27) 如何理解self?
self爲類中方法的默認第一個參數,self指向建立的實例自己。 調用時self不須要傳,Python解釋器本身會把實例變量傳進去