1、數值 和字符串的講解
1.1、數值 有int 、 float、Decimal(更精確的小數)、Fraction(分數)
整數int是不帶小數的 age = 20
浮點型是float,是表示小數的 f = 3.14 , f = 0.3 , f = .3 ,第二個和第三個的結果是一樣! 問題就是:浮點型的精度不夠, 是因爲計算機硬件存儲結構裏面描述浮點型精度的時候的特性造成的!
數值表達式:直接輸入一個數值!那叫字面值。還可以參加數值運算。
'{0}' , 表示一個佔位符, 而'f = {0:.2f}'.format(3.3333)的意思是講3.3333這個數字傳進去!並且保留兩位小數,以浮點型。
整數的運算,特別注意的整數的除法:比如 10/4 輸出2.5 那麼我們只想要這個整數2的時候,我們就需要使用 // 兩個除號來計算了! 整數取整的時候,還可以使用 import math 包下面的一個函數 floor , 這是一個向上取整的函數。看一下floor函數的圖形解讀:都是往左移:
那麼我們可以可以往中間移動呢?也是可以的!這時候使用 math.trunc()這個是往中間移動:
那我們真的想要四捨五入怎麼辦呢?我們要使用round這個關鍵字。 round(3.14)得到3 。 round(3.94)得到4. 。 這個不是來自math模塊!而是使用的全局函數round() 。
整型:無限精度,僅受限於內存與計算機配置 我麼你是一般使用的是 0o 8進制 、0x 16進制 、0b 2進制。 oct(數值)轉化成八進制。hex(數值)轉化成爲16進制。bin(數值)轉化成2進制。
Decimal模塊:更精確的數值:
1.1、字符串(str):
聲明的時候,‘’ “” “”“”“” 單引號、雙引號、三引號、都是一樣的效果。 當單雙引號衝突的時候,我們需要轉義: \
常見的轉意符:\ \' \'' (對雙引號轉義) \n (轉行) \b (退格鍵) \t \a
路徑的使用:path = ‘C:\\abc\\xyz.txt’ 。不能使用\a ,它本身就是一個轉義符,所以報錯!我們可以使用\\ 來表示,或者還是 我們可以使用path = r'C:\abc\xyz.txt' 來寫 ,前面加上一個r來 申明爲原始的意思。可以忽略轉意符。
“”“”“” 三引號的其實就是一個說明文檔
for循環最後什麼都不寫的時候會默認的使用 “/n” 結束,當想要自己指定結束分隔符的時候 就要使用這種格式:print(c , end=“,”); 這個是以“ , ”爲分隔符結束。
s=“asdfg” ,
s[0:4] 從下標爲0的開始切割 ,到下標爲4 ,但是不包括四的那個字母結束。
s[-1],得到最後一個。還還可以sp[len(s) -1 ], 也能得到最後一個。麻煩的方法。
s[:]是從頭到尾都取出來。
s[::2]是從頭取到尾,然後隔一個開始取,每次步長值爲2.
s[::-1],是從右往左開始取。就是反轉字符串。
ord(‘字符’) :得到該字符在ASCLL表對應的數字。
chr(數字):該數字對應的字符。
python以一個字符串進行切割:
s = 'www.baidu.com'
print(s.rsplit('.'))
output:
['www', 'baidu', 'com]
python 中split()使用多符號分割:
In [1]: import re
In [2]: words = '我,是。一個?程序?人員'
In [3]: wordlist = re.split(',|。|?',words)
In [4]: print(wordlist)
output:
['我', '是', '一個', '程序', '人員']
字符串可以*一個數字!但是不能夠相加。
字符串不支持原位改變。在賦值一次改變就行。
比如h="hello" 想要將e改爲a 。 那就 h1 = h.replace('e','a') , 這個就是一個內存指向的問題。
格式化字符串:
a = 1
b = 2
a , b = 1, 2
交換字符: a , b = b , a (簡便)。
'{0} => {1}'.format(2,1) output: 2 =>1 。
'{name} => {salary}'.format(name = 'tom' , salary = 90000) 也可以寫變量名。
strname.split()
strlname.startswith("http://") :判斷該字符串是否以雙引號中的自動換開頭。 output : true or flase。
strname.endswith("http://"):判斷該字符是否以括號中的內容結尾的!
strname.find('http://'):判斷該字符中是否包含括號中的字符。 返回該字符的位置。 如果沒有則返回-1
3.布爾型: 在python中 bool型是int類型的1.或者0使用
isinstance(True,int) 這個函數的意思就是某一個對象是否爲某一個類型的實例。返回出來True,True ==1 爲true 。flase == 0 返回true 。
--------------------------------------------------------------------------------------------------------------------------------
2、list的學習
list跟字符串不一樣,它是支持原位改變的。
s = 'www.baidu.com'
s1 = lsit(s) .
這樣就將s 裝進數組裏面 賦值給了s1.
s = ' '.join(s1)
這樣就又把s1 數組 轉變成了字符串了。那個是一個空的 ' ' ,如果我們想指定自己的分割符隔開!寫進去就行
list任意對象的有序集合。通常索引下標訪問元素, 是一個可變長度的。屬於可變序列。
'字符串' in listname :判斷該字符串是否在改list中。
for strc in listname: //解釋:將listname中的數據全部遍歷出來放再strc這個中。
print(strc) //解釋 : 注意首行縮進四個空格。
list的列式推導:需求:我現在想要將一個列表的值都平方一下!
list1 = [1,2,3,4,5,6,7] list2 = [i ** 2 for i in list1]
lsit1[2:4] = [222] //解釋:將list1中的從第二個下標開始的數字! 到第四個下標(不包括第四個),替換成222.
list1.append(7) 。追加lsit1列表一個元素, list1。extend([1,4,6,3]) 。 extend是追加一個列表。
lsit1.sort() 排序 lsit1.reverse() 反轉 list1.pop :彈出來最後面的數字。 del(list1[0]): 刪除該列表的第一個元素。 list1.index(數字) 。 找出該數字所在的位置。 lsit1.count(5) 統計5在list1中出現的次數。
lsit1賦值給list2的時候,直接list1 = list2 的話!修改list1 list2也會修改!如果我們不想這麼做的話!那麼我們就是使用
list2 = list1.copy() 或者是 list2 = list1[:] 創建出來一個副本!