整數
整數在Python中的關鍵字用int來表示; 整型在計算機中運於計算和比較
在32位機器上int的范圍是: -2**31~2**31-1,即-2147483648~2147483647
在64位機器上int的范圍是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807
在python3中所有的整數都是int類型. 但在python2中如果數據量比較大. 會使用long類型.
在python3中不存在long類型 整數可以進行的操作:
整數的加
a = 10 b = 20 print(a + b) 結果: 30
整數的減
a = 10 b = 20 print(b - a) 結果: 10
整數的乘
a = 10 b = 20 print(a * b) 結果: 200
整數的除
a = 10 b = 20 print(b / a) 結果: 2.0
# 注意點:當我們使用Python3的時候我們除法獲取到時浮點數,也就是小數,但是使用Python2的時候使用除法獲取的就是整數
整數的整除
a = 10 b = 20 print(b // a) 結果: 2
整數的取余
a = 5 b = 2 print(a % b) 結果: 1
整數的次方(冪)
a = 5 b = 2 print(a ** b) 結果: 25
注意點: 在Python2中存在long(長整型) 但是在Python3中long(長整型)不存在
布爾值
布爾值(bool) 判斷真假; 取值只有 True False
轉換問題:
str ==> int
n = int('22') print(n)
結果:
22
#注意點:字符串中的內容必須是阿拉伯數字才能強行轉換
int ==> str
n = str(22) print(n)
結果:
22
int ==> bool
n = bool(4) # bool(-1) 結果也是True print(n)
結果:
True
注意點: 使用bool轉換的時候只要是非0的都為True
bool ==> int
n = int(True) # int(False) 結果是0 print(n)
結果:
1
bool ==> str
n = str(True) print(n) 結果: True 注意點: 只要字符串中的內容不為空,所得到的結果就是True
str ==> bool
n = str(True) print(n) 結果: True
字符串
字符串(str) 字符串, 可以保存少量數據並進行相應的操作
在第一天的時候咱們簡單的認識了下字符串,今天我們好好的來認識一下這個讓你又喜又優的字符串
字符串是可以存儲一些數據,方便我們使用
字符串加
a = '世界' b = '你好' print(a + b) 結果: 世界你好
通過剛剛我們的測試發現字符串也是可以進行加法操作的,字符串相加其實有個專業的名詞 --- 字符串拼接;相加的規則就是必須都是字符串才能相加
字符串中是不能進行減法和除法操作的,通過這句話就能得知字符串是可以進行乘法操作的,我們立馬來看一下:
字符串乘
a = '堅強' print(a * 8) 結果: 堅強堅強堅強堅強堅強堅強堅強堅強
字符串的乘法就是將多個字符串拼接到一起,乘法的規則:只能是字符串和數字相乘
索引(下標)
大家在上學的時候就會發現在一個班有的同學的名字是一樣的,最后大家為了好區分就有了外號,我們每個人都有個學號,其實學校就是為了防止重名找錯人,
學號就是一種能夠保證唯一且准確的手段,這種手段在計算機中存在,這種手段叫做索引,也有人稱之為下標.注意:索引如果操作有誤就會報錯
圖上就是對"meet"字符串進行索引排號,其實圖上有一點大家不難看出m對應的是數字0,如果讓我們人來給排號.下意識的會從1開始.
因為我們從小的時候就是從1開始數數的,但是在計算機中數數確實要從0開始,其實這個點也是對程序的入門.
以后在碰到這種類似的問題我們就知道是從0開始計數,廢話不多說我們來看看,我說的到底行不行.
name = 'meet' # 索引 0123 print(name[0]) 結果: m
細心的老鐵們會發現這[ ]是干啥的,這個是一個查找,我不知道字符串中第一個是什么,但是我知道第一個的索引,我就可以通過這個方式來查看
比方:我不知道這個學生叫什么,但是我知道他的學號.我也可以通過學號找到這個同學.
圖上這個是從左到右的一種排序,其實還有一種從右像左的排序,看下圖:
這個查看和上邊的一樣,只不過是索引排序的方式不一樣,他這次的排列序號是從右向左並且還是以-1開始,這里的-1其實就是表示我們的倒數第一個
-2表示倒數第二個,這樣排列,如果我們的字符串比較長的時候想要獲取最后一個就完全可以使用-1,看以下示例:
name = 'meet' # 索引 -4-3-2-1 print(name[-1]) 結果: t
告訴大家一個小技巧,當開始的是我們不能明確的區分這個字符串中的每個索引的時候,我們就先把每個字母對應的索引寫下來,這樣就方便我們查找
上邊我們說完了索引,你們就以為完事了是嗎?不是滴,咱們還有來個內容沒有進行講解,分別是切片和步長
切片
切片又是什么呢?我們先來看一個示例:
name = 'meet' # 索引 0123 print(name[0:3]) 結果: mee
[第一個位置是開始:第二個位置是終止]中間必須使用分號,這樣的寫法就是從索引0開始獲取到索引3結束
這個結果是不是和大家想的有點出入啊,大家肯定認為獲取到的內容是meet,但是為什么是mee呢,因為終止的索引是不包含的獲取的是這個區間的內容
想想咱們在買肉的時候,有一個塊整肉,這塊整肉就后邊有點肥,不想要是不是就讓老板給切掉了,我們就買前邊的部分啊.在生活中這種神操作就是切片
我也知道你們剛接過這些東西,使用起來不是很熟悉,尤其是切片這部分,在悄悄的告訴你們個小技巧,下次當看到切片中終止位置的時候把這個數減一就ok啦
步長
步長又是什么呢?先看示例:
name = 'meet' # 索引 0123 print(name[0:3:1]) 結果: mee
發現我在中括號中最后一個位置寫了一個東西,也沒什么變化,是的沒有變化,因為我們不寫的時候他默認就是1,我們換個數字在來看看
name = 'meet' # 索引 0123 print(name[0:3:2]) 結果: me
這又是啥情況呢?想想我開始告訴大家的中括號里第一個參數是起始位置,第二參數是終止位置,第三個參數現在告訴大家是步長(每次走幾步)
當步長設置為2的時候,咱們只需要用起始位置0加上步長2,結果也就2然后在把索引為2的找到,2在加上步長2就是4,當要查找索引4是發現終止索引就是3,
所有不會進行查找.最終的結果就是me.
練習1
s = 'Python最NB' 獲取s字符串中前3個內容 獲取s字符串中第3個內容 獲取s字符串中后3個內容 獲取s字符串中第3個到第8個 獲取s字符串中第2個到最后一個 獲取s字符串中第1,3,5個內容 獲取s字符串中第2,4,6個內容 獲取s字符串中所有內容 獲取s字符串中第4個到最后一個,每2個取一個 獲取s字符串中倒數第5個到最開始,每3個取一個

s = 'Python最NB' # 獲取s字符串中前3個內容 print(s[0:2]) # 獲取s字符串中后3個內容 print(s[6:9]) # 獲取s字符串中第3個到第8個 print(s[2:8]) # 獲取s字符串中第2個到最后一個 print(s[2:]) # 獲取s字符串中第1,3,5個內容 print(s[0:6:2]) # 獲取s字符串中第2,4,6個內容 print(s[1:7:2]) # 獲取s字符串中所有內容 print(s[:]) # 獲取s字符串中第4個到最后一個,每2個取一個 print(s[3::2]) # 獲取s字符串中倒數第5個到最開始,每3個取一個 print(s[-5::-3])
練習2
判斷⼀句話是否是回⽂. 回⽂: 正着念和反着念是⼀樣的. 例如, 上海⾃來⽔來⾃海上
練習3
有字符串s = "123a4b5c" 通過對s切片形成新的字符串s1,s1 = "123" 通過對s切片形成新的字符串s2,s2 = "a4b" 通過對s切片形成新的字符串s3,s3 = "1345" 通過對s切片形成字符串s4,s4 = "2ab" 通過對s切片形成字符串s5,s5 = "c" 通過對s切片形成字符串s6,s6 = "ba2"
字符串方法詳解
全部大寫
name = 'alex' new_name = name.upper() print(new_name) # 把這個字符串全部變成大寫
全部小寫
name = 'ALEX' new_name = name.lower() print(new_name) # 把這個字符串全部變成小寫
應用場景:
# 字符串大小寫做驗證碼 y_z_m = 'O98k' y_z_m_input = input("請輸入驗證碼(O98k)") user = input('請輸入賬號:') pwd = input('請輸入密碼:') if y_z_m == y_z_m_input: if user == 'alex' and pwd == '8520': print('登陸成功!') else: print('登錄失敗') else: print('驗證碼錯誤!')
練習
將 name 變量對應的值全部變成大寫,並輸出結果 將 name 變量對應的值全部變成小寫,並輸出結果
以什么開頭
name = 'alex' new_name = name.startswith('a') if new_name: print('是以a開頭') # 判斷這是不是字符串是不是以a開頭的
以什么結尾
name = 'alex' new_name = name.endswith('x') if new_name: print('是以x結尾') # 判斷這是不是字符串是不是以x結尾的
統計出現的次數
name = 'alexdasx' new_name = name.count('a') print(new_name) # 統計name這個字符串中a出現的次數
練習
判斷 name 變量是否以 "al" 開頭,並輸出結果 判斷name變量是否以"Nb"結尾,並輸出結果 判斷name變量對應的值字母"l"出現幾次,並輸出結果
字符串替換
name = 'alexdasx' new_name = name.replace('sx','sb') print(new_name) # 替換字符串中的內容
去除頭尾兩邊的空格
name = ' alexdasx ' new_name = name.strip() print(new_name) # 去除頭尾倆遍的空格和換行符
分割
name = 'alexdasx' new_name = name.split("x") print(new_name) #通過x將字符串name進行切割
字符串格式化
name = 'alexdasx{}' new_name = name.format('說的對') print(new_name) # 字符串格式化
練習
將 name 變量對應的值中的 所有的"l" 替換為 "p",並輸出結果 將name變量對應的值中的第一個"l"替換成"p",並輸出結果 將 name 變量對應的值根據 所有的"l" 分割,並輸出結果。 將name變量對應的值根據第一個"l"分割,並輸出結果。 請輸出 name 變量對應的值的第 2 個字符? 請輸出 name 變量對應的值的前 3 個字符? 請輸出 name 變量對應的值的后 2 個字符?
is系列
判斷是不是十進制,返回的是布爾值
name = 'alexdasx' new_name = name.isdecimal()
print(new_name) # 判斷是不是十進制,返回結果是布爾值
判斷是不是數字和字母,返回的是布爾值
name = 'alex7dasx' new_name = name.isalnum() print(new_name) # 判斷是不是字母和數字,返回結果是布爾值
判斷是不是純字母及漢字,返回的是布爾值
name = 'alexdasx' new_name = name.isalpha() print(new_name) # 判斷是不是字母和漢字,返回結果是布爾值
練習
輸⼊⼀個字符串,要求判斷在這個字符串中⼤寫字⺟,⼩寫字⺟,數字, 共出現了多少次,並輸出
基礎數據補充的時候,給大家講解
首字母大寫 name = 'alexdasx' new_name = name.capitalize() print(new_name) 查找下標 name = 'alexdasx' new_name = name.find('e') print(new_name) # 通過元素查找下標,不存在就返回-1 name = 'alexdasx' new_name = name.index('e') print(new_name) # 通過元素查找下標,不存在就報錯 每個單詞首字母大寫 name = 'alex_wusir' print(name.title()) 內容填充 name = 'alex_wusir' print(name.center(50)) 大小寫反轉 name = 'alex_wusir' print(name.swapcase())
獲取長度
目前我們寫的內容還比較少,如果有一個很長很長的字符串,如果要是一個一個數是不是很累呢,Python給咱們提供了一個方法就是獲取長度的.
長度獲取示例:
name = "Meet" print(len(name)) 結果: 4
我們現在能夠輕松的獲取到到長度,現在我有這么一個字符串 name = "Meet",請使用while循環獲取到字符串中每個元素並打印,效果圖入下:
name = "Meet" count = 0 while count < len(name): print(name[count]) count = count + 1
以上這個寫法是沒有問題的,你們來看這個會不會簡單些
name = "Meet" for i in name: print(i)
上邊的這個東西叫做for循環, for是關鍵字 i是一個變量 后邊的name是要被循環的內容,他會把這個name指向的字符串里的每個元素打印出來
for循環是可以循環的數據結構:
- 字符串(str)
- 列 表(list)
- 元 祖(tuple)
- 字 典(dict)
- 集 合(set)
唯獨不能進行循環的就是 整型(int)和布爾值(bool)