python 基礎二 基本的數據類型,字符串,字符編碼

Python有五個標準的數據類型:

  • Numbers(數字)

         int(整型)

               在混合計算時,Python會把整型轉換成爲浮點數。

         float(浮點型)

         complex(複數)

         bool(布爾類型)

               不能參與數學運算

  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Dictionary(字典)
  • bytes(字節數組)

 

String(字符串)

說到字符串,就必然要涉及字符的編碼問題。因爲在計算內部,存儲的只有0與1

字符編碼

 在計算機中只能處理0和1的這兩個數字的數字串,爲了能使用計算機處理非數字問題。科學家設計出了字符編碼,它是字符映射在計算機中的數字串,不同的編碼方式其數字串的長度不一樣,長度越長能被編碼的字符越多。

ASCII

這是由美國人設計的編碼方案,它有7位,可以編碼全部的美國相關字符

GBK, ISO, Unicode, UTF-8, ...

隨着計算機在全世界的普及,ASCII編碼已不能滿足需求,因此各國出現了自己的本土編碼方案,好把自己國家的文字字符使用計算機來處理,但全世界的編碼方案太多不利用相關軟件,文檔的移植,因此出現了Unicode編碼,Unicode編碼容納了各種編碼方案

各種編碼有如下包含關係

ASCII<GBK,ISO,UTF-8...<Unicode

各種編碼都是兼容ASCII碼的

 

兩個概念

1.存儲編碼

2.顯示編碼(你要使用的編碼)

如果存儲編碼與要顯示的編碼不一致時,就需要轉碼,否則就會顯示出亂碼!!!

這是亂碼出現的根本原因

在python3中的存儲編碼是Unicode

如果要使用其他編碼時的轉換關係如下

 

字符串的操作

s = "the people's republic of china"

# 索引/切片字符串
print(s[0])

print(s[2])

# 索引倒數第一個字符串,倒序時從-1開始
print(s[-1]) # a
# 索引倒數第二個字符串
print(s[-2]) # n

# 切片操作是隻包括開始不包括結尾
# [start:end:step]
print(s[1:4]) #he

print(s[0:8:2]) # tepo

# 切片所有的字符串
print(s[:])  # the people's republic of china
print(s[0:])  # the people's republic of china
print(s[:-1]) #the people's republic of chin

# 如果步長是負數,則是逆序輸出字符串內容
print(s[::-1]) # anihc fo cilbuper s'elpoep eht


# 首字母大寫
print(s.capitalize()) # The people's republic of china

#全大寫
s1 = s.upper()

# 全小寫
s2 = s.lower()

print(s1) # THE PEOPLE'S REPUBLIC OF CHINA
print(s2) # the people's republic of china

# 大小寫轉換
print(s.swapcase()) # THE PEOPLE'S REPUBLIC OF CHINA

s3 = "hello yes-no yy*aa+dd_cc"
# 每個單詞的首字母大寫, 以空白符爲分隔符
print(s3.title()) # Hello Yes-No Yy*Aa+Dd_Cc

# 以指定長度輸出字符串,有夠的地方,使用敏宇的字符填充
print(s.center(40, '=')) # =====the people's republic of china=====

# 計算字符串長度
print(len(s)) # 30

# 測試字符串是否以指定的字符串開頭或結尾

# True:hello mmfk
if s.startswith("the"):
    print("hello mmfk")
    
# False
if s.endswith("cc"):
    print("hello china")
    
# 在字符串中定位某字符串,成功返回index, 失敗返回-1
print(s.find("china")) # 25
print(s.find("cc")) # -1

# 在字符串中定位某字符串,成功返回index, 失敗就報錯
# print(s.index("cc")) # 找不到報錯

# 使用指定的分隔符將字符串分隔開來,返回的是list
words = s.split(" ")
print(words) # ['the', "people's", 'republic', 'of', 'china']

# format用於連接多個字符串,這種方法比直接使用+連接要好
# format 的三種用法
s = '我叫{},今年{},愛好{},再說一下我叫{}'.format('mn',22,'girl','mn')
print(s)
name = input('請輸入名字:')
s = '我叫{0},今年{1},愛好{2},再說一下我叫{0}'.format(name,22,'ff')
print(s)
name = input('請輸入名字:')
s = '我叫{name},今年{age},愛好{hobby},再說一下我叫{name}'.format(age=18,name=name,hobby='fc')
print(s)

# 使用指定新字符串,去替換字符串中指定的舊字符串
s4 = s.replace('china', '中國')
print(s4)

# 字符串支持成員運算符
if 'chi' in s:
    print("到家了")

# str運算符,可以將其他類型的數據轉換爲字符串
str(100)

 

Number

Python Number 數據類型用於存儲數值。

數據類型是不允許改變的,這就意味着如果改變 Number 數據類型的值,將重新分配內存空間。

Python 支持三種不同的數值類型:

  • 整型(Int) - 通常被稱爲是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
  • 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
  • 複數( (complex)) - 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
number1 = 0xab # 16進製表示  171
number2 = 0o15 # 八進制表示  13

x = '12'
int(x)  # 將x轉換爲整數

hex(number2) # 將number2 轉換爲16進制的表示
oct(number2) # 將number2 轉換爲8進制的表示
complex(number2, 2) #創建一個複數 complex(實部,虛部)

bool型數據 

0是False, 非0是True

空字符串是False, 非空字符串是True

#str --->bool

#s = "" -----> False
#非空字符串都是True
#s = "0" -----> True
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章