Python基礎(一): 註釋, 變量, 運算符, 輸入輸出語句等

註釋

  • 單行註釋: 使用#進行單行註釋
# 這是單行註釋
複製代碼
  • 多行註釋: 使用 ''' '''""" """ 進行多行註釋
''' 這裏是多行註釋 這裏是多行註釋 '''

""" 這裏是多行註釋 這裏是多行註釋 """
複製代碼
  • 特殊註釋: 中文支持
    • # encoding=utf-8
    • # coding-utf-8
    • # _*_coding:utf-8_*_ (推薦寫法)

變量

  • 定義:
    • 變量名 = 值
    • 變量1, 變量2 = 值1, 值2
    • 變量1 = 變量2 = 值
a = 10

b, c = 5, 2

d = e = 10
複製代碼
  • 爲何產生變量:bash

    • 方便維護, 一處改, 到處改
    • 節省空間
  • 注意事項:函數

    • 一個變量只能引用一個值
    • 命名規範:
      • 字母數字下劃線, 且不能以數字開頭
      • 見名知意
      • 駝峯命名
      • 非關鍵字
      • 區分大小寫
    • 變量名使用前必定要賦值

數據類型

  • 數據類型: 對程序處理的數據, 進行的分類, 好比整數, 浮點數, 字符串等ui

  • 爲何區分數據類型spa

    • 區分存儲空間: 使用不一樣大小的空間存儲不一樣的類型的值, 儘量減小空間浪費
    • 根據不一樣數據類型的特性, 作不一樣的數據處理
      • 6 + 6: 數字相加, 結果是12
      • "6" + "6": 字符串拼接, 結果是"66"
  • 數據類型的經常使用分類:3d

    • Numbers (數值類型)
    • Bool (布爾類型)
    • String (字符串)
    • List (列表)
    • Set (集合)
    • Tuple (元組)
    • Dictory (字典)
    • NoneType (空類型)
  • 獲取數據的類型: type(數據), 例如: type(6), type("6")code

  • 靜態類型: 變量類型一經定義, 就不可更改, 好比 a = 10, a的類型是Int, 不能改爲Str類型, 即只能引用Int類型數據, 不能引用其餘數據類型的數據orm

a = 10     # a的類型爲Int
a = "10"   # 靜態類型不能引用其餘類型的數據, 報錯
複製代碼
  • 動態類型: 變量在定義以後, 能夠改變類型, 好比 a = 10, 此時a爲Int類型, a = "10", 此時a爲Str類型
a = 10     # a的類型爲Int
a = "10"   # 的類型爲Str
複製代碼
  • 強類型: 數據定義後, 類型不會輕易改變, 好比 a = "1", 執行 b = a + 1, 此時a的類型不會變爲Int, 1也不會變爲"1", 因此執行直接報錯
a = "1"
b = a + 1  # 強類型, 報錯
複製代碼
  • 弱類型, 數據定義後, 類型會發生改變, 好比a = "1", 指定 b = a + 1, 此時1的類型可能變成Str, 最後b的結果是11
a = "1"
b = a + 1  # 弱類型, 結果爲 b = "11"
複製代碼

Python是強類型的, 動態類型的語言對象

運算符

  • 算數運算符
加: "+"        
    a = 1 + 2, 結果 a = 2
減: "-"        
    b = 5 - 3, 結果 b = 2
乘: "*"        
    c = 2 * 3, 結果 c = 6
冪: "**"       
    d = "3 ** 5", 結果 d = 243
除: "/"        
    e = 5 / 2, 結果: e = 2.5
整除: "//"      
    f = 5 // 2, 結果: f = 2
取餘: "%"       
    g = 5 % 2, 結果: g = 1
賦值: "="       
    h = 3, i = 5
優先級: "()"    
    j = 3 + 2 / 2 + 1, j = 5。    k = 3 + 3 / (2 + 1), k = 4。
複製代碼
  • 複合運算符
+=: 
    a = 10, a += 5, 結果: a = 15      等價於  a = a + 5
-=:
    a = 10, a -= 5, 結果: a = 5       等價於  a = a - 5
*=:
    a = 10, a *= 5, 結果: a = 50      等價於 a = a * 5
/=:
    a = 10, a /= 4, 結果: a = 2.5     等價於 a = a / 4
%=:
    a = 10, a %= 4, 結果: a = 2       等價於 a = a % 4
**=:
    a = 10, a **= 2, 結果: a = 100    等價於 a = a ** 2
//=:
    a = 10, a //= 4, 結果: a = 2      等價於 a = a // 4
複製代碼
  • 比較運算符
    • 比較運算符的結果是Bool類型的值, 取值分別是 True 和 False
>:
    a = 10 > 2,     結果 a = True
<:
    b = 10 < 2,     結果 b = False
!=:
    c = 10 != 5,    結果 c = True
<>: Python2版本支持, 等價於 !=, Python3版本不支持<>
    d = 5 <> 5,     結果 d = False
>=:
    e = 5 >= 5,     結果 e = True
<=:
    f = 5 <= 6,     結果 f = False
==:
    g = 3 == 3,     結果 g = True

is: 比較惟一標識, 經過id(值), 獲取惟一標識
    num = 10, id(10)
    h = [1]
    i = [1]
    result = h is i, 結果: result = False

鏈式比較運算符: 
    num = 10
    j = 5 < num < 20, 結果: j = True    其餘語言寫做: j = num > 5 && num < 20
複製代碼
  • 邏輯運算符
not: 非, 取反, 真 -> 假, 假 -> 真, 其餘語言中的 !
    a = True,  b = not a,   結果: b = False
    c = False, d = not c,   結果: d = True

and: 與, 而且, and的兩邊, 必須都是真, 最終纔會是真, 其餘語言中的 &&
    e = True and False,     結果: e = False
    f = True and True,      結果: f = True
    即: 一假全假, 全真才真

or: 或, 或者, or的兩邊, 只要有一個條件是真的, 那麼最終都是真的
    g = True or False,      結果: g = True
    h = False or False,     結果: g = False
    即: 有真即真, 全假才假

非Bool值的類型, 判斷真假, 與OC同樣, 非零即真, 非空即真
    print(False or 1),      打印: 1
    print(bool(1)),         打印: True
    print(bool(0)),         打印: False
    print(False or ""),     打印: False
    print(3 and 1),         打印: 1
    print(1 and 3),         打印: 3
複製代碼

輸入

Python2:

  • raw_input
    • 格式: result = raw_input("提示信息")
    • 功能:
      • 會等待用戶輸入內容, 直到用戶按下Enter
      • 會將用戶輸入的內容當作"字符串", 傳遞給接收的變量
  • input
    • 格式: result = input("提示信息")
    • 功能:
      • 會等待用戶輸入內容, 直到用戶按下Enter
      • 會將用戶輸入的內容當作"代碼"進行處理

eval函數, 將一段字符串當作代碼運行處理utf-8

result = eval("1+1"), 結果 result = 2
複製代碼
  • 因此Python2中的input至關於 raw_input + eval 的功能組合

Python3

  • input: 至關於Python2中的 raw_input
    • 格式: result = input("提示信息")
    • 功能:
      • 會等待用戶輸入內容, 直到用戶按下Enter
      • 會將用戶輸入的內容當作"字符串", 傳遞給接收的變量

輸出

Python2

  • 打印: print語句
輸出一個值:
print  5
複製代碼
輸出一個變量:
num = 5
print num
複製代碼
輸出多個變量:
num1 = 10
num2 = 20
num3 = 30
print num1, num2, num3
複製代碼
格式化輸出:
name = "張三"
age = 18
方式一: print "名字是%s, 年齡是%d"%(name, age)
    結果: 名字是張三, 年齡是18
方式二: print "名字是{0}, 年齡是{1}".format(name, age)
    結果: 名字是張三, 年齡是18
複製代碼
輸出到文件當中:
file = open("text.py", "w")    第一個參數: 文件名, 第二個參數: 權限
print >>file, "xxxxxx"         第一個參數: 輸出文件, 第二個參數: 輸出內容
複製代碼
輸出不換行: 在結尾加一個逗號","  中間以空格分割
print 1,
print 2
打印: 1 2
複製代碼
使用"-"分割多個參數輸出
print "-".join(["a", "b", "c"])
打印: a-b-c
複製代碼

Python3

輸出一個值:
print(123)
複製代碼
輸出一個變量:
num = 123
print(num)
複製代碼
輸出多個變量
num1 = 1
num2 = 2
num3 = 3
print(num1, num2, num3)
複製代碼
格式化輸出:
name = "zhangsan"
age = 18
print("個人名字是%s, 年齡是%d"%(name, age))
print("個人名字是{0}, 年齡是{1}".format(name, age))
複製代碼
輸出到文件:
f = open("test.py", "w")
print("xxx", file=f)
複製代碼
輸出不換行:
print("xxx", end=""), end的值默認爲\n換行符
複製代碼
輸出多個參數時, 使用指定分割方式分割:
print("1", "2", "3", sep="&&"),  打印:1&&2&&3
複製代碼
當即輸出:
print("xxx", fluse=True)
複製代碼

補充: 佔位格式符

  • 格式: %[(name)][flags][width][.precision]typecode
  • (name): 用於選擇指定名稱對應的值 (根據字典的key, 取出對應的value)
dictionary = {"age": 18, "name": "zhangsan"}
print("個人名字是%(name)s, 年齡是%(age)d" % (dictionary))
打印: 個人名字是zhangsan, 年齡是18
複製代碼
  • width: 表示顯示的寬度
num = 5
print("%3d" % num), 打印: " 5", 這裏雙引號爲了展現5的前面有一個空格, 實際打印不存在雙引號
即: 當打印目標寬度不出3時, 在前面以空格的形式補齊3位

num1 = 3
print("%5d" % num), 打印: " 5", 雙引號同上
此時打印寬度爲5, 因爲3的寬度只有1個位置, 因此前面有四個空格
複製代碼
  • flags: 主要與width配合使用, 主要有四個做用:
做用一: 不寫時, 默認右對齊
num = 5
print("%3d" % num), 打印: " 5", 雙引號同上

做用二: -(負號), 表示左對齊
print("%3d" % num), 打印: "5 ", 雙引號同上

做用三: 空格, 主要用在數字前面加一個空格,與負數的負號對齊
num = 5
print("% d", num), 打印: " 5", 不論中間加幾個空格, 最後結果只顯示一個
例如:print("% d", num), 打印: " 5", 只打印一個空格

做用四: 0, 不足部分, 使用0補齊
num = 5
print("%02d"), 打印: 05
主要應用場景, 對時間進行格式化
minutes = 5
seconds = 8
print("%02d : %02d" % (minutes, seconds)), 打印: 05 : 08
複製代碼
  • . precision: 表示浮點數後精度
保留小數點後2位:
num = 10.32131
print("%.2f" % num), 打印: 10.32

保留小數點後3位:
print("%.3f" % num), 打印: 10.321

不保留小數點
print("%.0f" % num), 打印: 10

保留小數點後7位:
print("%.7f" % num), 打印: 10.3213100
複製代碼

typecode, 必填項, 主要格式

數值:

  • i/d: 將證書, 浮點數轉成十進制整數
num = 10.321
print("%d" % num), 打印: 10
複製代碼
  • o: 將整數, 轉成八進制
num = 10
print("%o" % num), 打印: 12
複製代碼
  • x:將整數, 轉成十六進制
num = 10
print("%x" % num), 打印: a
複製代碼
  • e: 將整數, 浮點數轉成科學計數法
num = 1111111111
print("%e" % num), 打印: 1.111111e+09
複製代碼
  • E: 將整數, 浮點數轉成科學計數法
num = 1111111111
print("%e" % num), 打印: 1.111111E+09
複製代碼
  • f: 將整數, 浮點數格式化成浮點數, 並保留六位小數
num = 5
print("%f" % num), 打印: 5.000000

num1 = 5.312231232
print("%f" % num1), 打印: 5.312231

num2 = 5.312
print("%f" % num2), 打印: 5.312000
複製代碼
  • g: 自動調整將整數, 浮點數轉成浮點數, 超過六位數, 用科學計數法
num1 = 23.321000
print("%g" % num1), 打印: 23.321

num2 = 231.32
print("%g" % num2), 打印: 231.32

num3 = 100.1111111
print("%g" % num3), 打印: 100.111

num4 = 100111111111
print("%g" % num4), 打印: 1.00111e+11
複製代碼
  • G: 與g相同

字符串

  • s: 獲取傳入對象的__str__方法的返回值, 並格式化到指定位置
  • r: 獲取傳入對象的__repr__方法的返回值, 並格式化到指定位置
  • c: 整數, 將數字轉成對應的uniode對應的值, 範圍: 0<= i <= 1114111, py27之至此0-255

%%

  • 當字符串中存在格式化標識時, 須要使用%%表示一個百分號
num = 90
print("%d%%" % num), 打印: 90%
複製代碼

注意: Python中不存在將整數轉成二進制的格式符, Python中不存在%b這個格式符ci

相關文章
相關標籤/搜索