python 基礎(一)
- 2020 年 1 月 13 日
- 筆記
- 第一個程式 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(哈希表)