萬惡之源 - Python基礎數據類型一

整數

整數在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)
# 通過元素查找下標,不存在就返回-1name = '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)

  

轉載于:https://www.cnblogs.com/guobaoyuan/p/9762496.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451053.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451053.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451053.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

談談對于技術面試的心得體驗

導讀&#xff1a;作者lzprgmr寫了一篇《談談技術面試》文章&#xff0c;他在文中講述了自己對于技術人員面試的經驗和心得&#xff0c;以下是文章內容&#xff1a; 只要是招一個技術人員&#xff0c;不管是初級的程序員還是高級軟件工程師&#xff0c;技術上的考核都必不可少。…

es6中class類的全方面理解(三)------靜態方法

不需要實例化類&#xff0c;即可直接通過該類來調用的方法&#xff0c;即稱之為“靜態方法”。將類中的方法設為靜態方法也很簡單&#xff0c;在方法前加上static關鍵字即可。這樣該方法就不會被實例繼承&#xff01; class Box{static a(){return "我是Box類中的&#xf…

jackson/fastJson boolean類型問題

1.我們以Person對象舉個栗子&#xff0c;person有三個屬性。name&#xff0c;age和isGay Data public class Person {public Person(String name, int age, boolean isGay) {this.name name;this.age age;this.isGay isGay;}private String name;private Integer age;priva…

django模板系統(下)

主要內容&#xff1a;母版&#xff0c;繼承母版&#xff0c;塊&#xff0c;組件&#xff0c;靜態文件 母版 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"x-ua-compatible" conten…

狗窩里的小日子 ...

來&#xff0c;把平時作的菜菜整理下下&#xff1a; 1. 2. 3. 4. 5. 6. 7. 8.

面試開發人員的有效方法

伯樂在線 寫道 "Alan Skorkin是一名軟件開發人員&#xff0c;這是他分享的另一篇有關面試和開發人員的文章(中文)。Skorkin 認為&#xff0c;“當要雇傭開發者時&#xff0c;傳統的面試方法顯得力不從心&#xff0c;這是必須要面對的現實。為什么不行&#xff1f;原因也許…

Android直接用手機打包apk!

你沒有看錯&#xff0c;用手機瀏覽器訪問Jenkins&#xff0c;就可以打包apk&#xff0c;并生成下載二維碼&#xff0c;發送郵件通知測試人員下載&#xff0c;從此解放雙手&#xff0c;告別打包測試。先上本人手機郵箱收到的打包成功通知效果圖&#xff1a; 廢話少說&#xff0c…

java中byte、short、char、boolean實際都是按照int處理的!

byte、char、short、boolean四種類型在匯編期或運行期間采取和int類型一樣的存儲方式&#xff0c;在計算時會先轉換為int類型&#xff0c;后進行計算。所以兩個short類型數據做算數運算&#xff0c;結果卻為int類型。這主要是因為jvm的字節碼為了簡潔高效&#xff0c;設計時只使…

4、2 核心組件

1、Stage&#xff1a;虛的  一組RDD構成的鏈條并行的task集合&#xff0c;同一Stage的所有任務有著相同的Shuffle依賴。階段的劃分按照shuffle標記來進行的。一個階段含多個RDD&#xff0c;先有RDD后有Stage一個階段含多個taskstage通過ShuffleDependency劃分&#xff0c;一個…

狗窩里的小日子- 2 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

優秀程序員必備素質——快速調試

你是否有過這些經歷&#xff1a; 1.代碼敲完了&#xff0c;剛想松口氣&#xff0c;一運行程序&#xff0c;滿滿的Bug。 2.找啊找啊找&#xff0c;怎么找都找不到哪里出了問題。 3.調試了半天出不來&#xff0c;就開始便得心煩氣躁。 4.一天連一個Bug也沒調出來&#xff0c;…

Java程序編譯運行過程

整體流程 1.首先由源程序文件編譯成class文件。注意這里的源程序并不僅限于java程序&#xff0c;其他語言如果能夠編譯成class文件&#xff0c;并且符合jvm規范也能夠在jvm上運行。 2.jvm將class文件拷貝到內存&#xff0c;解釋成相應的機器語言運行。我們常用的hotspot虛擬機…

【TeeChart .NET教程】(七)使用函數

2019獨角獸企業重金招聘Python工程師標準>>> 上一篇&#xff1a;【TeeChart .NET教程】&#xff08;六&#xff09;使用系列 【下載TeeChart.Net最新版本】 &#xff08;一&#xff09;功能類型 1.1 功能類型 TeeChart Pro功能是一個系列&#xff0c;幾乎可以是任何…

Django的簡介

一.MTV模型 Django的MTV模式: Model(模型):和數據庫相關的.負責業務對象與數據庫的對象(ORM) Template(,模板):放所有的HTML文件 模板語法:目的是將變量(數據庫內容)如何巧妙的鑲嵌到HTML頁面中 View(視圖):負責業務邏輯,并在適當的時候調用Model和Template 此外Django還有一個…

狗窩里的小日子- 3 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

5種流行的Linux發行版:你更喜歡哪一個呢?

現如今&#xff0c;對于各種類型的用戶&#xff08;如桌面用戶、服務器管理員、圖形設計者等&#xff09;而言Linux已經成為一種最流行的操作系統。Linux是免費且開源的&#xff0c;任何人都可以建立和編譯它的源代碼&#xff0c;并將它分發給別人。這就是為什么Linux會有很多個…

購物商城Web開發第二十三天

今天完成了結算頁的第二個頁面的編寫&#xff0c;買東西的完整流程已完成了頁面的部分 后面還差頁面的JS部分和后臺。 今天沒有遇到什么大的困難&#xff0c;有一個問題是CSS的float屬性的運用還是不夠好&#xff0c;今 天也意識到了一些會產生的問題&#xff0c;以后還需要多注…

java裝箱拆箱

所謂的拆箱裝箱&#xff0c;其實就是一個簡單的語法糖。我們以Integer為?。 &#xff08;一&#xff09;裝箱 Integer i 1&#xff1b; 本質上就是&#xff1a; Integer i Integer.valueOf(1); &#xff08;二&#xff09;拆箱 int m i&#xff1b; 本質上就是&…

基于ASP.net耳機網店商城系統(前臺頁面+后臺頁面)

源碼https://github.com/doublekai/user web文件夾 轉載于:https://www.cnblogs.com/doublekai/p/9778246.html

狗窩里的小日子- 4 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.