Python基礎學習筆記(一)變量與數(shù)據(jù)類型

Python是一門易學的面向?qū)ο蟮某绦蛟O計語言滩字,可以輕易地完成界面、文件、封裝等高階需求麦箍,可移植性好漓藕,有非常多功能強大的庫與包,如Numpy(數(shù)值計算)挟裂、SciPy(數(shù)學享钞、科學與工程計算)、Matplotlib(數(shù)據(jù)繪圖工具)等等
我們從今天開始诀蓉,以記筆記的方式記錄Python的基礎知識:

本節(jié)知識框架:


圖片.png

一嫩与、程序的結(jié)構(gòu)

圖片.png
1. 程序的入口main函數(shù)

定義了一個個函數(shù)后,怎么調(diào)用這些函數(shù)呢交排?使用main函數(shù)調(diào)用它

# 程序的入口:main函數(shù)
if __name__ == "__main__":
    function()# 要調(diào)用的函數(shù)

為了讓程序具有更強的可讀性划滋,需要為程序設置一個入口,這個入口就是main函數(shù)埃篓。
print()函數(shù)处坪,中間可以使用逗號隔開;

print("兩數(shù)之和是:"架专,add(1,2))
2. 注釋

(1) Python里單引號與雙引號所具有的功能是一樣的同窘,多行注釋通常使用三對單引號或者三對雙引號;
(2)對與某一句代碼的注釋通常寫在代碼的上一行使用#進行注釋;
(3)像下面這種注釋比較規(guī)范

# !/usr/share/pythonprj/
# -*- coding:UTF-8 -*-

'''
模塊介紹:實現(xiàn)加減乘除運算
~~~~~~~~~~~~~~~~~~~~~
兩數(shù)相加:add(num01,num02)
兩束相減:sub(num01,num02)
兩數(shù)相乘:mul(num01,num02)
兩數(shù)相除:del(num01,num02)
'''

def add(num01,num02):
    # 返回兩數(shù)之和
    return num01 + num02

def sub(num01,num02):
    # 返回兩數(shù)之差
    return num01-num02

def mul(num01,num02):
    # 返回兩數(shù)之乘
    return  num01*num02

def div(num01,num02):
    # 返回兩數(shù)之商
    return num01/num02
3. print打印

(1)print("helloworld")其實系統(tǒng)默認隱藏了一個參數(shù)end部脚,完整的print()語句是print("helloworld",end="\n")想邦,所以print語句打印會自動換行,如果想讓其不換行打印委刘,我們把end參數(shù)的\n去掉即可丧没。
(2)print(a,b)實際含義是不換行分別打印print(a)和print(b)
(3)一次性打印多個值

print("tom","jerry","alice","tom")

打印的結(jié)果是

tom jerry alice tom

打印的內(nèi)容直接默認是用空格連接,如果我們想打印的內(nèi)容之間使用其它連接符連接可以使用分割符sep參數(shù)锡移,如果使用==連接呕童,就可以這樣寫:

print("tom","jerry","alice","tom",sep="==")

這樣打印的結(jié)果就是

tom==jerry==alice==tom

這樣就可以在所有的元素之間加上你想要的分隔符

(4)把打印的內(nèi)容輸出到文件

str01 = "本次消費的金額為100元"
f = open("/Users/yushengtan/desktop/sales.txt",'w')
print(str01,file = f)

這樣就能把打印的內(nèi)容輸出到文件中。

4. Input輸入

所有輸入的字符淆珊,都會被系統(tǒng)當做字符串
題目:輸入兩個數(shù)夺饲,求兩個數(shù)之和:

# 方法一
num01 = input("請輸入第一個數(shù):")
num02 = input("請輸入第二個數(shù):")
print("兩個數(shù)之和等于:{:d}".format(int(num01)+int(num02)))
# 方法二
num01,num02 = eval(input("請輸入兩個數(shù),以逗號分割:"))
print("%d + %d = %d" % (num01,num02,num01+num02))

這里的eval函數(shù)的特點:
a. 只能一次輸入多個整數(shù)施符,不能是字符串
b. 輸入后自動轉(zhuǎn)化為int類型

二往声、變量

1. 什么是變量

變量是一個什么都能裝的容器咱娶,只要是數(shù)據(jù)都能存摆霉;
不需要事先聲明變量類型

2. 使用變量

(1)變量名由字母糠爬、數(shù)字市咽、下劃線、組成锻全,不能以數(shù)字開頭
(2)區(qū)分大小寫
(3)變量名中不能包含空格
(4)不能使用Python中的關鍵字
(5)變量命名使用小寫字母绑谣,見名知意细移,多個單詞用下劃線連接;
(6)一次定義多個變量欢唾,可以寫成一行a=1;a=2;a=3或者a,b,c = 1,2,3

3. 變量如何存儲數(shù)據(jù)

變量是為了方便取出存儲在內(nèi)存中的數(shù)據(jù)且警,對于數(shù)值類型,相同的值只存儲一份礁遣。

三斑芜、 數(shù)據(jù)類型

1. 數(shù)據(jù)類型的種類

(1)Python3里整形只有int型,無論多大的數(shù)值都可以存祟霍;
(2)浮點型float精度只有17位杏头,超過17位自動轉(zhuǎn)化為科學計數(shù)法進行表示
(3)布爾類型,True和False
(4)字符串型沸呐,可以直接通過取字符串中的數(shù)值醇王。

str01 = "xiaoyu"
print(str01[0])  #打印的結(jié)果就是`x`
print(str01[1:3])  #打印的結(jié)果就是`ia`
print(str01[-1])  #打印的結(jié)果就是`u`
2. 數(shù)據(jù)類型轉(zhuǎn)換

方法:要轉(zhuǎn)換的類型(數(shù)據(jù))
要把字符類型x轉(zhuǎn)換為整數(shù)類型 int(x)
把x轉(zhuǎn)化為字符串:str(x)
把整數(shù)x轉(zhuǎn)化為字符:chr(x)
把一個字符串轉(zhuǎn)化為它的整數(shù)值:ord(x)
將一個整數(shù)轉(zhuǎn)化為十六進制字符串:hex(x)
將一個整數(shù)轉(zhuǎn)化為八進制字符串:oct(x)
將一個整數(shù)轉(zhuǎn)化為二進制字符串:bin(x)

3. 如何獲取變量的數(shù)據(jù)類型?如何判斷變量是不是屬于一個數(shù)據(jù)類型崭添?

可以通過type(變量名)就可以知道變量的數(shù)據(jù)類型寓娩;
可以使用isinstance方法,isinstance(變量名,(數(shù)據(jù)類型))

if isinstance(str01,(str)):
    print("字符型")
4. 數(shù)值類型

(1)如何查看變量占用多少內(nèi)存空間呼渣?
要導入模塊sys棘伴,調(diào)用方法sys.getsizeof(變量名)

num01 = 1000
print("num01占用的空間:",sys.getsizeof(num01))

(2)八進制0o開頭,十六進制0x開頭
(3)整形數(shù)值常見方法:

  • abs() 絕對值
  • math.fabs() 絕對值
  • math.sqrt() 平方根
  • math.pow(a,b) a的b次方
  • max() 返回最大值
  • min() 返回最小值

(4)獲取整數(shù)位屁置,保留指定位數(shù)有效數(shù)字
使用round方法:

print(round(12.3456))  #輸出結(jié)果只會打印12
print(round(12.3456,2))  #輸出結(jié)果為12.35

使用math.ceil()方法焊夸,返回數(shù)字的上入;
使用math.floor()方法蓝角,返回數(shù)字的下舍阱穗;
使用modf()方法,返回兩個數(shù)值使鹅,前一個數(shù)是小數(shù)部分颇象、后一個個數(shù)是整數(shù)部分;

print(math.modf(12.22))  #返回(0.22并徘,12.0)
5.字符串類型

(1)表示方法
字符串數(shù)據(jù)類型使用單引號雙引號都可以遣钳;

str01 = 'xiaoyu'
str02 = "hello"

(2)長字符串的表示方法

  • 使用續(xù)航符\
str03 = "hello nice to meet you"\
"my name is xiaoyu"
  • 使用三個雙引號或者三個單引號
str04 = """ hello nice to meet you
my name is xiaoyu
"""

使用三個單引號或者雙引號可以保留原長字符串的長文本排版格式

(3)轉(zhuǎn)義字符和取消轉(zhuǎn)義
打印字符串的時候使用斜杠加字母表示一個特殊的功能
\t 表示橫向制表符
\n 表示回車換行
\"表示打印雙引號"
\\表示打印反斜杠\

對于某些特殊的符號,使用取消專業(yè)字符來表示特符號本身麦乞,將其打印出來蕴茴,在要打印的字符串引號前加一個字符r表示要打印的字符串不具備轉(zhuǎn)義的功能

print("\\")  # 打印出來的結(jié)果只有一個 \
print(r"\\")  #這樣就可以原封不動打印出來 \\

(4)字符串運算符+
符號+能讓兩個字符串連在一起;

print("my name is "+"xiaoyu")

符號*能讓字符串按照指定次數(shù)打印;

print("hello "*10)  # 這樣就可以打印十個hello

(5)索引的方式

str01 = "abcdefghijklmnopq"
print(str01[0])  #打印第一個字符
print(str01[-1])  #打印最后一個字符
print(str01[5])  #打印第四個字符
print(str01[-5])  #打印倒數(shù)第五個字符
print(str01[3:10])  #打印第四到第十個字符

求字符串的長度可以用len()
(6)是否包含

str01 = "abc"
str02 = "abcdefg"
print("是否包含:",str01 in str02)
print("是否不包含:",str01 not in str02)

(7)判斷是否相等

print(str01 == str02)  #判斷字符串是否相等
print(str01 is str02)  #判斷字符串是否是同一個對象

四姐直、 格式化輸入輸出

1. 百分號形式格式化輸出

(1)整數(shù)格式化輸出占位符

  • %d 十進制輸出
  • %o 八進制輸出
  • %x 十六進制輸出

注意:數(shù)值源與輸出內(nèi)容之間沒有逗號分隔倦淀,這里容易與C語言或者Java混淆
讓十進制數(shù)100,以八進制輸出:

num01 = 100
print("十進制100的八進制數(shù)值為%o"%num01)

如果一次輸出多個進制轉(zhuǎn)化:

num01,num02 = 100,200
print("八進制輸出為:0o%o,0o%o"%(num01,num02))
print("十六進制輸出為:0x%x,0x%x"%(num01,num02))

如果讓一個數(shù)二進制形式輸出声畏,可以直接使用bin()方法撞叽;

(2)浮點數(shù)格式化輸出

  • 保留小數(shù)點后面六位有效數(shù)字%f
  • 保留小數(shù)點后面2位有效數(shù)字%.2f
  • 小數(shù)點后保留6位有效數(shù)字的科學計數(shù)法計數(shù)%e
  • 小數(shù)點后保留2位有效數(shù)字的科學計數(shù)法計數(shù)%.2e
  • 6位數(shù)能表示就用6位數(shù)姻成,6位數(shù)表示不了就用科學計數(shù)法%g
  • 保留2位有效數(shù)字,2位有效數(shù)字表示不了就用科學計數(shù)法%.2g
    圖片.png

    圖片.png

(3)字符串的格式化輸出

標準輸出%s
右對齊愿棋,占位符10位%10s
左對齊科展,占位符10位%-10s
截取3位字符串%.3s
右對齊10位占位符,截取兩位字符串%10.2s

圖片.png

圖片.png

2. format形式格式化輸出

(1) 相對于基本格式化輸出采用的%的方法糠雨,format()功能更加強大才睹,該函數(shù)模塊把字符串當成一個模板,通過傳入?yún)?shù)進行格式化甘邀,并且使用大括號{}作為特殊字符代替%

name = "Ailice"
gender = "男“
age = 23
print("姓名:%s 性別:%s 年齡:%d"%(name,gender,age))
print("姓名:{} 性別:{} 年齡:{}".format(name,gender,age))

(2)還可以在括號里加標識符琅攘,后面要用的時候,就不需要在format函數(shù)里添加參數(shù)了松邪,可以直接用

print("姓名:{0} 性別:{1} 年齡:{2} 學生姓名{0}".format(name,gender,age))

(3) 標識符除了可以使用數(shù)字也可以直接用關鍵字

print("姓名:{name} 性別:{gender} 姓名:{name}".format(name = name,gender = gender))

(4)Format的進階用法
forma占位符{}里面使用:對齊方向 占位長度
<默認左對齊坞琴,>右對齊,^中間對齊逗抑,

print("姓名:{:<10}".format(name))
print("姓名:{:>10}".format(name))
print("姓名:{:^10}".format(name))

除了對齊之外還可以使用取位數(shù):{:4s}置济、{:.2f}

print("{:10.2f}".format(3.14159)) #十位占位長度,小數(shù)點后保留兩位有效數(shù)字
print("{:>10.2f}".format(3.14159)) #十位占位長度锋八,小數(shù)點后保留兩位有效數(shù)字,右對齊

(5)Format對數(shù)值的操作

  • 二進制輸出b
print("二進制打印{0:b} {1:b}".format(num01,num02))  #0浙于、1是編號
  • 整數(shù)轉(zhuǎn)Unicode字符串輸出c
print("把整數(shù)轉(zhuǎn)化成ASCII碼: {0:c} {1:c}".format(65,66))

輸出結(jié)果:

把整數(shù)轉(zhuǎn)化成ASCII碼: A B
  • 十進制輸出d
  • 八進制輸出o
  • 十六進制輸出x
  • 科學計數(shù)法輸出e,默認保留小數(shù)點后六位
print("科學計數(shù)法輸出:{:.2e}".format(123.345))

輸出結(jié)果:

科學計數(shù)法輸出:1.23e+02
  • 一般格式輸出g挟纱,六位可以表示就用六位表示羞酗,六位表示不了就用科學計數(shù)法
  • 數(shù)字輸出n,當值為整數(shù)時和d相同紊服,當值為浮點數(shù)是和g相同
  • 百分號輸出%檀轨,把數(shù)值轉(zhuǎn)化為百分數(shù),小數(shù)點后默認保留六位
print("百分號表示:{:.2%}".format(2))

輸出結(jié)果:

百分號表示:200.00%
  • ,千位分隔符欺嗤,自動把數(shù)值轉(zhuǎn)化為貨幣千位分割的形式
print("千位分隔符:{:,}".format(102334489))

輸出結(jié)果:

千位分隔符:102,334,489
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末参萄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子煎饼,更是在濱河造成了極大的恐慌讹挎,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吆玖,死亡現(xiàn)場離奇詭異筒溃,居然都是意外死亡,警方通過查閱死者的電腦和手機沾乘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門怜奖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翅阵,你說我怎么就攤上這事歪玲∏ㄑ耄” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵滥崩,是天一觀的道長岖圈。 經(jīng)常有香客問我,道長夭委,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任募强,我火速辦了婚禮株灸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擎值。我一直安慰自己慌烧,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布鸠儿。 她就那樣靜靜地躺著屹蚊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪进每。 梳的紋絲不亂的頭發(fā)上汹粤,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音田晚,去河邊找鬼嘱兼。 笑死,一個胖子當著我的面吹牛贤徒,可吹牛的內(nèi)容都是我干的芹壕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼接奈,長吁一口氣:“原來是場噩夢啊……” “哼踢涌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起序宦,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤睁壁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后互捌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堡僻,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年疫剃,在試婚紗的時候發(fā)現(xiàn)自己被綠了钉疫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡巢价,死狀恐怖牲阁,靈堂內(nèi)的尸體忽然破棺而出固阁,到底是詐尸還是另有隱情,我是刑警寧澤城菊,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布备燃,位于F島的核電站,受9級特大地震影響凌唬,放射性物質(zhì)發(fā)生泄漏并齐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一客税、第九天 我趴在偏房一處隱蔽的房頂上張望况褪。 院中可真熱鬧,春花似錦更耻、人聲如沸测垛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽食侮。三九已至,卻和暖如春目胡,著一層夾襖步出監(jiān)牢的瞬間锯七,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工誉己, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留起胰,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓巫延,卻偏偏與公主長得像效五,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炉峰,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355