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

注釋

  • 單行注釋: 使用#進行單行注釋
# 這是單行注釋
  • 多行注釋: 使用 ''' '''""" """ 進行多行注釋
'''
這里是多行注釋
這里是多行注釋
'''

"""
這里是多行注釋
這里是多行注釋
"""
  • 特殊注釋: 中文支持
    • # encoding=utf-8
    • # coding-utf-8
    • # _*_coding:utf-8_*_ (推薦寫法)

變量

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

b, c = 5, 2

d = e = 10
  • 為什么產(chǎn)生變量:

    • 方便維護, 一處改, 處處改
    • 節(jié)省空間
  • 注意事項:

    • 一個變量只能引用一個值
    • 命名規(guī)范:
      • 字母數(shù)字下劃線, 且不能以數(shù)字開頭
      • 見名知意
      • 駝峰命名
      • 非關(guān)鍵字
      • 區(qū)分大小寫
    • 變量名使用前一定要賦值

數(shù)據(jù)類型

  • 數(shù)據(jù)類型: 對程序處理的數(shù)據(jù), 進行的分類, 比如整數(shù), 浮點數(shù), 字符串等

  • 為什么區(qū)分數(shù)據(jù)類型

    • 區(qū)分存儲空間: 使用不同大小的空間存儲不同的類型的值, 盡可能減少空間浪費
    • 根據(jù)不同數(shù)據(jù)類型的特性, 做不同的數(shù)據(jù)處理
      • 6 + 6: 數(shù)字相加, 結(jié)果是12
      • "6" + "6": 字符串拼接, 結(jié)果是"66"
  • 數(shù)據(jù)類型的常用分類:

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

  • 靜態(tài)類型: 變量類型一經(jīng)定義, 就不可更改, 比如 a = 10, a的類型是Int, 不能改成Str類型, 即只能引用Int類型數(shù)據(jù), 不能引用其他數(shù)據(jù)類型的數(shù)據(jù)

a = 10     # a的類型為Int
a = "10"   # 靜態(tài)類型不能引用其他類型的數(shù)據(jù), 報錯
  • 動態(tài)類型: 變量在定義之后, 可以改變類型, 比如 a = 10, 此時a為Int類型, a = "10", 此時a為Str類型
a = 10     # a的類型為Int
a = "10"   # 的類型為Str
  • 強類型: 數(shù)據(jù)定義后, 類型不會輕易改變, 比如 a = "1", 執(zhí)行 b = a + 1, 此時a的類型不會變?yōu)镮nt, 1也不會變?yōu)?1", 所以執(zhí)行直接報錯
a = "1"
b = a + 1  # 強類型, 報錯
  • 弱類型, 數(shù)據(jù)定義后, 類型會發(fā)生改變, 比如a = "1", 指定 b = a + 1, 此時1的類型可能變成Str, 最后b的結(jié)果是11
a = "1"
b = a + 1  # 弱類型, 結(jié)果為 b = "11"

Python是強類型的, 動態(tài)類型的語言

運算符

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

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

鏈式比較運算符: 
    num = 10
    j = 5 < num < 20, 結(jié)果: j = True    其他語言寫作: j = num > 5 && num < 20
  • 邏輯運算符
not: 非, 取反, 真 -> 假, 假 -> 真, 其他語言中的 !
    a = True,  b = not a,   結(jié)果: b = False
    c = False, d = not c,   結(jié)果: d = True

and: 與, 并且, and的兩邊, 必須都是真, 最終才會是真, 其他語言中的 &&
    e = True and False,     結(jié)果: e = False
    f = True and True,      結(jié)果: f = True
    即: 一假全假, 全真才真

or: 或, 或者, or的兩邊, 只要有一個條件是真的, 那么最終都是真的
    g = True or False,      結(jié)果: g = True
    h = False or False,     結(jié)果: 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("提示信息")
    • 功能:
      • 會等待用戶輸入內(nèi)容, 直到用戶按下Enter
      • 會將用戶輸入的內(nèi)容當(dāng)做"字符串", 傳遞給接收的變量
  • input
    • 格式: result = input("提示信息")
    • 功能:
      • 會等待用戶輸入內(nèi)容, 直到用戶按下Enter
      • 會將用戶輸入的內(nèi)容當(dāng)做"代碼"進行處理

eval函數(shù), 將一段字符串當(dāng)做代碼運行處理

result = eval("1+1"), 結(jié)果 result = 2
  • 所以Python2中的input相當(dāng)于 raw_input + eval 的功能組合

Python3

  • input: 相當(dāng)于Python2中的 raw_input
    • 格式: result = input("提示信息")
    • 功能:
      • 會等待用戶輸入內(nèi)容, 直到用戶按下Enter
      • 會將用戶輸入的內(nèi)容當(dāng)做"字符串", 傳遞給接收的變量

輸出

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)
    結(jié)果: 名字是張三, 年齡是18
方式二: print "名字是{0}, 年齡是{1}".format(name, age)
    結(jié)果: 名字是張三, 年齡是18
輸出到文件當(dāng)中:
file = open("text.py", "w")    第一個參數(shù): 文件名, 第二個參數(shù): 權(quán)限
print >>file, "xxxxxx"         第一個參數(shù): 輸出文件, 第二個參數(shù): 輸出內(nèi)容
輸出不換行: 在結(jié)尾加一個逗號","  中間以空格分割
print 1,
print 2
打印: 1 2
使用"-"分割多個參數(shù)輸出
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換行符
輸出多個參數(shù)時, 使用指定分割方式分割:
print("1", "2", "3", sep="&&"),  打印:1&&2&&3
立即輸出:
print("xxx", fluse=True)

補充: 占位格式符

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

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

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

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

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

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

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

保留小數(shù)點后7位:
print("%.7f" % num), 打印: 10.3213100

typecode, 必填項, 主要格式

數(shù)值:

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

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

num2 = 5.312
print("%f" % num2), 打印: 5.312000
  • g: 自動調(diào)整將整數(shù), 浮點數(shù)轉(zhuǎn)成浮點數(shù), 超過六位數(shù), 用科學(xué)計數(shù)法
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: 整數(shù), 將數(shù)字轉(zhuǎn)成對應(yīng)的uniode對應(yīng)的值, 范圍: 0<= i <= 1114111, py27之至此0-255

%%

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

注意: Python中不存在將整數(shù)轉(zhuǎn)成二進制的格式符, Python中不存在%b這個格式符

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市范抓,隨后出現(xiàn)的幾起案子摆屯,更是在濱河造成了極大的恐慌丰榴,老刑警劉巖蠕搜,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右蹦,死亡現(xiàn)場離奇詭異滔以,居然都是意外死亡捉腥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門你画,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抵碟,“玉大人,你說我怎么就攤上這事坏匪∧獯” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵适滓,是天一觀的道長敦迄。 經(jīng)常有香客問我,道長凭迹,這世上最難降的妖魔是什么罚屋? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嗅绸,結(jié)果婚禮上沿后,老公的妹妹穿的比我還像新娘。我一直安慰自己朽砰,他們只是感情好尖滚,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞧柔,像睡著了一般漆弄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上造锅,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天撼唾,我揣著相機與錄音,去河邊找鬼哥蔚。 笑死倒谷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糙箍。 我是一名探鬼主播渤愁,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼深夯!你這毒婦竟也來了抖格?” 一聲冷哼從身側(cè)響起诺苹,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雹拄,沒想到半個月后收奔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡滓玖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年坪哄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片势篡。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡翩肌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殊霞,到底是詐尸還是另有隱情摧阅,我是刑警寧澤汰蓉,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布绷蹲,位于F島的核電站,受9級特大地震影響顾孽,放射性物質(zhì)發(fā)生泄漏祝钢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一若厚、第九天 我趴在偏房一處隱蔽的房頂上張望拦英。 院中可真熱鬧,春花似錦测秸、人聲如沸疤估。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铃拇。三九已至,卻和暖如春沈撞,著一層夾襖步出監(jiān)牢的瞬間慷荔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工缠俺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留显晶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓壹士,卻偏偏與公主長得像磷雇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子躏救,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理倦春,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法睁本,類相關(guān)的語法尿庐,內(nèi)部類的語法,繼承相關(guān)的語法呢堰,異常的語法抄瑟,線程的語...
    子非魚_t_閱讀 31,645評論 18 399
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,817評論 1 10
  • 2017年12月4日 星期一 風(fēng) 寒冷的一天又開始了,早晨一起來枉疼,就聽見小風(fēng)呼呼的刮皮假,所以送孩子的...
    宋雯楠媽媽閱讀 146評論 0 0
  • 在塔羅的世界中航闺,我最喜歡的一張牌便是魔法師褪测,他活躍、自信潦刃、年輕且無所不能侮措。他一手指天,一手指地乖杠,象征著“如此在上分扎,...
    穆勒書信時光閱讀 598評論 0 2