第一個程序
hello.py 以下爲內容
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'teng' print 'hello'
#!/usr/bin/env python
表示使用 特定的解釋器執行 如果是python3 將python改爲python3
# -*- coding:utf-8 -*-
表示將代碼編碼設置爲utf-8(針對Unicode的可變長度字符編碼,用1到6個字節編碼UNICODE字符)
如果不寫不能顯示中文 默認ascii碼(1個字節)來讀
運行 python hello.py
變成可執行文件
sudo chmod +x hello.py
運行./hello.py
註釋
# 單行註釋
"""多行註釋"""
一般在文件中在正文前使用"""多行註釋"""表明用處
腳本參數
python flask.py 127.0.0.1:8000
如何捕獲 flask.py 127.0.0.1:8000
flask,py 爲 arg[0]
127.0.0.1:8000 爲arg[1]
flask.py代碼
import sys print sys.argv
運行
python flask.py 127.0.0.1:8000
結果
['flask.py', ‘127.0.0.1:8000']
argv 爲一個列表
字節碼
import sys import hello print sys.argv
運行 => 生成hello.pyc文件
pyc編譯生成 字節碼 (可以反編譯)
如果編譯完成 => 可以刪除hello.py => import hello依然可以導入
變量
python 是動態語言
不需要聲明 name = "紅雀"
name 就是一個引用就是C的*name 指向 內存裏"紅雀"這個字符串
變量名要求=> 字母下劃線和數組組成 但數字不能開頭 內部關鍵字不能使用
name1 = name name的地址給了name1:內存公用
變量並不是最好的選擇 變量相對於fp是災難 可以用monad解決IO
當然上述是理論
字符串
c中"hello"爲一個字符串數組 :
地址連續=>python 將其封裝 如若存在相同字符串 內存固定
修改=>重新創建
內部機制 以下請看圖自行理解 提示字符串緩存池
+每次使用一次就在內存中申請一個新的內存
佔位符 %s(字符串) %d(數字)=>%xx
{0} {1} => .format(xx,xx)
輸入
raw_input: 接收爲字符串
input:輸入什麼類型 接收什麼類型
模塊getpass 密碼隱形
流程控制
if else
name = raw_input("請輸入用戶名:") if name == "紅雀": print "登陸成功" else: print "登陸失敗"
值對比 ==
引用對比 is
多種形式(case)
name = raw_input("in:") if name == "teng": print "good" elif name == "rommel": print "nice" else: print "bad"
縮進=>自行養成風格
import getpass name = raw_input("name:") pwd = getpass.getpass("password:") if name == "teng" and pwd == "teng": print "success" else: print "fail"
基本數據類型
單值:數字(int32/64之分)、字符串、布爾值
集合:列表、元組、字典、set(哈希表)