Python-01

python是解釋型腳本語言python

 

python的特性總結:縮進,動態,字節碼ios

 

而c語言是編譯型語言,要先編譯gcc hello.c –o hello git

./hello程序員

 

解釋型和編譯型,二者各有利弊。web

編譯型程序執行快,同等條件下對系統的要求比較低,所以開發系統,大型應用程序和數據庫系統都會用到;算法

解釋型平臺兼容性好,網頁腳本,服務器腳本和輔助開發接口。 shell

 

動態類型和靜態類型語言數據庫

動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,在動態編程中不用給變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。編程

靜態類型語言在變量聲明的時候就要指定數據類型,在編譯期間檢查。設計模式

 

強類型和弱類型定義語言

強類型是一旦被定義爲某個數據類型,則永遠是這個數據類型。類型安全的語言。

 

強類型定義語言在速度上可能略遜色於弱類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避免許多錯誤。

另外,「這門語言是否是動態語言」與「這門語言是否類型安全」之間是徹底沒有聯繫的!

例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。

 

而對於python python hello.py

在運行腳本以前,獲得結果以後

1.python先將腳本編譯成字節碼(pyc,pyo

2.python虛擬機解釋並運行字節碼文件

 

對於編譯型語言的內部機制

1.先將源代碼編譯成機器碼(機器能讀懂的代碼),生成可執行文件

2.運行可執行文件

 

python比c運算速度慢

python在賦值時確認數據類型

 

有的編輯器tab鍵縮進方式是四個空格

import this

 python是一門動態解釋性的強類型定義語言

Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言。

#break time
import time
import webbrowser

total_breaks=3
break_count=0

while(break_count<total_breaks):
  time.sleep(10)
  webbrowser.open("http://www.youtube.com/watch?v=dqhfefyh)
  break_count=break_count+1

 

import os
def rename_files()
#(1) get all the name 
   file_list=os.listdir(r"C:\OOP\prank")
   print(file_list) 
   saved_path=os.getcwd()
   print("Current working directory is "+ saved_path) 
   os.chdir(r"C:\OOP\prank")
#(2) for each file, rename the file
   for file_name in file_list:
        os.rename(file_name, file_name.translate(None,"0123456789"))          
   os.chdir(saved_path)        
rename_files()
   

 

shell

shell +sublime

PyChm

IDLE

機器語言:機器能夠讀的0,1

彙編語言:可讀性比機器語言增長的

高級語言:相似於天然語言

 

控制器,處理器,存儲器,輸入輸出設備

 

用Python能夠作什麼?

預測將來最好的辦法就是創造它

 

Python擅長的領域

Web開發 Django\pyramid\Tornado\Bottle\Flask\WebPy

網絡編程 Twisted\Requests\Scrapy\Paramiko

科學運算 SciPy\Pandas\Ipython

GUI圖形開發 wxPython\PyQT\Kivy

運維自動化 OpenStack\SaltStack\Ansible\騰訊藍鯨

 

能夠作平常任務,好比自動備份你的MP3;能夠作網站,不少著名的網站包括YouTube就是Python寫的;能夠作網絡遊戲的後臺,不少在線遊戲的後臺都是Python開發的。

首選是網絡應用,包括網站、後臺服務等等;其次是許多平常須要的小工具,包括系統管理員須要的腳本任務等等;另外就是把其餘語言開發的程序再包裝起來,方便使用。

Python固然也有不能幹的事情,好比寫操做系統,這個只能用C語言寫;寫手機應用,只能用Objective-C(針對iPhone)和Java(針對Android);寫3D遊戲,最好用C或C++。C語言是能夠用來編寫操做系統的貼近硬件的語言,因此,C語言適合開發那些追求運行速度、充分發揮硬件性能的程序。而Python是用來編寫應用程序的高級編程語言。

Python就爲咱們提供了很是完善的基礎代碼庫,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容,被形象地稱做「內置電池(batteries included)」。用Python開發,許多功能沒必要從零編寫,直接使用現成的便可。

Python優勢是簡單;開發效率高,有大量的模塊庫不用反覆造輪子;高級語言,不須要考慮諸如內存管理的底層細節。

Python的第一個缺點就是運行速度慢,和C程序相比很是慢,由於Python是解釋型語言,你的代碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程很是耗時,因此很慢。而C程序是運行前直接編譯成CPU能執行的機器碼,因此很是快。但因爲網絡延遲更慢,加上網絡的等待的時間,差距也能夠忽略。

第二個缺點就是代碼不能加密。若是要發佈你的Python程序,實際上就是發佈源代碼,這一點跟C語言不一樣,C語言不用發佈源代碼,只須要把編譯後的機器碼(也就是你在Windows上常見的xxx.exe文件)發佈出去。要從機器碼反推出C代碼是不可能的,因此,凡是編譯型的語言,都沒有這個問題,而解釋型的語言,則必須把源碼發佈出去。

第三個缺點是線程不能利用多CPU問題。

一 語言基礎(5-6)

數據類型

流程控制

經常使用模塊

函數,迭代器,裝飾器

遞歸,迭代,反射

面向對象編程(購物車程序,ATM信用卡開發,計算器程序開發,模擬人生遊戲開發)

 

二  網絡編程(4-5)

Socket c/s編程, Twisted異步網絡框架,網絡爬蟲開發

多線程,多進程,協程gevent,select\poll\epoll

生產者消費者模型

審計堡壘機系統開發

FTP服務器開發

批量命令,文件分佈工具

RabbitMQ消息隊列,SqlAlchemy ORM

類SaltStack配置管理工具開發

Redis\MemCache\MongoDBhuan緩存數據庫

 

三 web開發基礎(3-4)

HTML/CSS基礎

Dom編程

原生JS學習

Jquery/EasyUi/AngulaJS

Ajax異步加載

Highchart畫圖

Bootstrap

 

四 算法與設計模式 (1)

冒泡,二叉樹,哈希,折半等常見算法學習

工廠模式,單例模式,享元模式,代理模式等經常使用設計模式學習

 

五 PY WEB框架(5)

MVC架構講解

自行開發一個WEB框架

Django\Tornado\Flask\Bottle\WebPy框架學習

Session\中間件\ORM\Cookie\CSRF\FORM...

Restful API框架

權限管理後臺開發

開發BBS論壇

開發WEB聊天室

 

六 項目實戰篇(8)

購物商場開發

主機管理+任務編排+運維審計堡壘機開發

分佈式類Nagios/Zabbix監控產品開發

CMDB資產管理開發

基於用戶視角的網站訪問質量監測分析平臺開發

Docker自動化管理平臺開發

OpenStack二次開發

 

python的語法是很精簡的

必定要注意的是,縮進的格式要求很是嚴格。

BIF=Build in functions 內置函數:爲了程序員快速編寫程序 print input等,python有不少內置函數

在使用變量以前,須要對其先賦值

變量名能夠包括字母,數字,下劃線,但變量不能以數字開頭,字母的大小寫是不一樣的

字符串 」8「+」5「 與8+5不一樣

 

python的輸入輸出

輸出print

輸出raw_input()

 

python的數據類型

爲了不語言歧義,類型是編程語言對數據的一種劃分

數字類型

0x 16進制

0b 2進制

0o 8進制

整數

浮點數

複數類型

int(),float(),complex()

 

type(4.5)

 

字符串

元組類型

列表類型

文件類型

字典類型

 

若是字符串內部既包含'又包含"怎麼辦?能夠用轉義字符\來標識,好比:

'I\'m \"OK\"!'
轉義字符\能夠轉義不少字符,好比\n表示換行,\t表示製表符,字符\自己也要轉義,因此\\表示的字符就是\

若是字符串裏面有不少字符都須要轉義,就須要加不少\,爲了簡化,Python還容許用r''表示''內部的字符串默認不轉義
>>> print '\\\t\\'
\     \

>>> print r'\\\t\\'
\\\t\\
\\n\t\\\\

若是字符串裏面有不少字符都須要轉義,就須要加不少\,爲了簡化,Python還容許用r''表示''內部的字符串默認不轉義
\r''''>>> print '\\\t\\'
\     \

>>> print r'\\\t\\'
\\\t\\

布爾值

and, or,not

空值

None不能理解爲0,由於0是有意義的,而None是一個特殊的空值。

列表

字典

 

 import引入外部庫(turtle,math,random)

def用於定義函數

 

字符串

遍歷字符串中的每一個字符

for <var> in <string>

 <string>.upper() 字符串字母大寫

<string>.lower() 字符串中字母小寫

<string>.capitalize() 首字母大寫

<string>.strip() 去兩邊空格及去指定字符

<string>.split() 按指定的字符分割字符串爲數組

<string>.isdigit() 判斷是不是數字類型

<string>.find() 搜索指定字符串

<string>.replace() 替換指定內容

相關文章
相關標籤/搜索