標籤:/usr range yield 規則 ++ info exe 而且 ipython
Python介紹
1、python是解釋性語言,而且文法優美、清晰、簡單,是一種優秀並廣泛使用的語言
2、python主要應用領域:①雲端運算(典型的應用OpenStack)②WEB開發(如Youtube,豆瓣...典型架構Django)③科學運算、人工智慧(典型庫NumPy、SciPy)④系統營運(營運人員必備語言)
⑤金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測 ⑥圖形GUI:PyQT、WxPython、TkInter
3、python的優缺點:
優點:①定位“優雅”、“明確”、“簡單”。入門容易,可以編寫非常複雜的程式
②開發效率非常高,python有非常強大的第三方庫,python官方庫有全面的支援,可在基礎庫的基礎上再進行開發,大大降低了開發週期。
③進階語言,④可移植性,可輕鬆在不同的平台上運行
⑤可擴充性:需要功能代碼啟動並執行更快或某些演算法不需要公開,可以使用C/C++編寫後,使用python來調用
⑥可嵌入性: 可把python嵌入C/C++程式,從而向你的程式使用者提供指令碼功能
缺點:①速度慢:python跟java相比也要慢一些,但大多數情況下完全可以滿足你對程式速度的要求,除非要寫對程式速度要求極高的搜尋引擎等。
②代碼不能加密:因為python是解釋性語言,它的源碼都是以明文的形式存放。
③線程不能利用多CPU問題,,這是Python被人詬病最多的一個缺點,GIL即全域解譯器鎖(Global Interpreter Lock),是電腦程式設計語言解譯器用於同步線程的工具,使得任何時刻僅有一個線程在執行,Python的線程是作業系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由作業系統調度線程的執行。一個python解譯器進程內有一條主線程,以及多條使用者程式的執行線程。即使在多核CPU平台上,由於GIL的存在,所以禁止多線程的並存執行。
4、python解譯器
python的解譯器很多,如CPython、IPython、PyPy、Jython、IronPython,但使用最廣泛的還是Cpython,如果要和Java或.Net平台互動,最好的辦法不是JPython和IronPython,而是通過網路來調用來互動,確保程式之間的獨立性
5、python版本:
python2.X 和python3.X,區別在於語句的寫法不一致,2.7會支援到2020年,會被3.4+取代
Python安裝
windows
1、下載安裝包 https://www.python.org/downloads/2、安裝 預設安裝路徑:C:\python273、配置環境變數 【右鍵電腦】--》【屬性】--》【進階系統設定】--》【進階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】 如:原來的值;C:\python27,切記前面有分號
linux、mac
無需安裝,原裝Python環境 ps:如果內建2.6,請更新至2.7
Python基礎學習
1、建立檔案如hello.py,並輸入
print("hello world")
2、然後輸入命令:python hello.py,輸出 hello world
上一步中執行python hello.py時,即hello.py指令碼是由python解譯器來執行
如果想要類似於執行shell指令碼一樣執行python指令碼,需要再hello.py檔案的頭部指定的解譯器,如下:
#!/usr/bin/env pythonprint ("hello wprld")
ps:執行前需給予hello.py執行許可權,chmod 755 hello.py
在互動器中執行
C:\Users\chendezhi>pythonPython 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> print("hello world")hello world
變數、字元編碼
聲明變數
name = "chendz"
變數定義的規則:
變數名只能是字母、數字或底線的任意組合
變數名的第一個字元不能是數字
以下關鍵字不能聲明為變數名
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
變數的賦值
name = "chendz"name2 = nameprint(name,name2)name = "jack"
字元編碼
ASCII:最多隻能用8為來表示一個位元組,即2**8=255,ASCII碼最多隻能表示255個字元
中文編碼:>>GB2312(1980年)收錄了7445個字元,包括6763個漢字和682個其他字元。
>>GBK(1995年)收錄了21886個符號
>>GB18030(2000年)收錄了27484漢字
從ASCII->GB18030,這些編碼方法是向下相容的
Unicode(統一碼)是一種在電腦上使用的字元編碼。十六位,最少2個位元組
UTF-8:是對Unicode編碼的壓縮和最佳化
python解譯器在載入.py檔案中的代碼時,會對內容進行編碼(預設ASCII),
在2.X中,如果是如下代碼的化,會保錯,ASCII碼無法表示中文
#!/usr/bin/env python print "你好,世界"
應該告訴python解譯器,需要用什麼編碼執行
#!/usr/bin/env python# -*- coding: utf-8 -*- print "你好,世界"
注釋
單行注釋:使用 #
多行注釋:使用 """ 被注釋的內容 """
使用者輸入
#name = raw_input("What is your name?") #only on python 2.xname = input("What is your name?")print("Hello " + name )
輸入密碼時,如果想要不可見,需要利用getpass模組中的getpass方法,即:
import getpass # 將使用者輸入的內容賦值給 name 變數pwd = getpass.getpass("請輸入密碼:") # 列印輸入的內容print(pwd)
python基礎文法
運算式 if..else
name = input("請輸入使用者名稱")
pwd = int(input("請輸入密碼"))
if name == "chendz" and pwd == 123:
print("登陸成功")
elif name =="" or pwd == "":
print("使用者名稱和密碼不可為空字串")
else:
print("使用者名稱或密碼錯誤")
運算式 for
for i in range(0,10,2): print("loop",i)
運算式 while
age = 18count = 3while count > 0: guess_age = int(input("guess age:")) if guess_age == age: print("ok") break elif guess_age >age: print("think smaller...") else: print("think bigger...") count-=1else: print("you have tried too many times.")
Python基礎Day1