天池python學習-task02打卡第五天

u010965481發表於2020-12-23

字串

1. 字串的定義

  • Python 中字串被定義為引號之間的字符集合。
  • Python 支援使用成對的 單引號 或 雙引號。

【例子】

t1 = 'i love Python!'
print(t1, type(t1))
# i love Python! <class 'str'>

t2 = "I love Python!"
print(t2, type(t2))
# I love Python! <class 'str'>

print(5 + 8)  # 13
print('5' + '8')  # 58
  • Python 的常用轉義字元
轉義字元描述
\\反斜槓符號
\'單引號
\"雙引號
\n換行
\t橫向製表符(TAB)
\r回車

2. 字串的切片與拼接

  • 類似於元組具有不可修改性
  • 從 0 開始 (和 Java 一樣)
  • 切片通常寫成 start:end 這種形式,包括「start 索引」對應的元素,不包括「end索引」對應的元素。
  • 索引值可正可負,正索引從 0 開始,從左往右;負索引從 -1 開始,從右往左。使用負數索引時,會從最後一個元素開始計數。最後一個元素的位置編號是 -1。

【例子】

str1 = 'I Love LsgoGroup'
print(str1[:6])  # I Love
print(str1[5])  # e
print(str1[:6] + " 插入的字串 " + str1[6:])  
# I Love 插入的字串  LsgoGroup

s = 'Python'
print(s)  # Python
print(s[2:4])  # th
print(s[-5:-2])  # yth
print(s[2])  # t
print(s[-1])  # n
  • Python 字串格式化符號
符 號描述
%c格式化字元及其ASCII碼
%s格式化字串,用str()方法處理物件
%r格式化字串,用rper()方法處理物件
%d格式化整數
%o格式化無符號八進位制數
%x格式化無符號十六進位制數
%X格式化無符號十六進位制數(大寫)
%f格式化浮點數字,可指定小數點後的精度
%e用科學計數法格式化浮點數
%E作用同%e,用科學計數法格式化浮點數
%g根據值的大小決定使用%f或%e
%G作用同%g,根據值的大小決定使用%f或%E

【例子】

print('%c' % 97)  # a
print('%c %c %c' % (97, 98, 99))  # a b c
print('%d + %d = %d' % (4, 5, 9))  # 4 + 5 = 9
print("我叫 %s 今年 %d 歲!" % ('小明', 10))  # 我叫 小明 今年 10 歲!
print('%o' % 10)  # 12
print('%x' % 10)  # a
print('%X' % 10)  # A
print('%f' % 27.658)  # 27.658000
print('%e' % 27.658)  # 2.765800e+01
print('%E' % 27.658)  # 2.765800E+01
print('%g' % 27.658)  # 27.658
text = "I am %d years old." % 22
print("I said: %s." % text)  # I said: I am 22 years old..
print("I said: %r." % text)  # I said: 'I am 22 years old.'
  • 格式化操作符輔助指令
符號功能
m.nm 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)
-用作左對齊
+在正數前面顯示加號( + )
#在八進位制數前面顯示零(‘0’),在十六進位制前面顯示’0x’或者’0X’(取決於用的是’x’還是’X’)
0顯示的數字前面填充’0’而不是預設的空格

【例子】

print('%5.1f' % 27.658)  # ' 27.7'
print('%.2e' % 27.658)  # 2.77e+01
print('%10d' % 10)  # '        10'
print('%-10d' % 10)  # '10        '
print('%+d' % 10)  # +10
print('%#o' % 10)  # 0o12
print('%#x' % 108)  # 0x6c
print('%010d' % 5)  # 0000000005

字典

1. 可變型別與不可變型別

  • 序列是以連續的整數為索引,與此不同的是,字典以"關鍵字"為索引,關鍵字可以是任意不可變型別,通常用字串或數值。
  • 字典是 Python 唯一的一個 對映型別,字串、元組、列表屬於序列型別

那麼如何快速判斷一個資料型別 X 是不是可變型別的呢?兩種方法:

  • 麻煩方法:用 id(X) 函式,對 X 進行某種操作,比較操作前後的 id,如果不一樣,則 X 不可變,如果一樣,則 X 可變。
  • 便捷方法:用 hash(X),只要不報錯,證明 X 可被雜湊,即不可變,反過來不可被雜湊,即可變。

【例子】

i = 1
print(id(i))  # 140732167000896
i = i + 2
print(id(i))  # 140732167000960

l = [1, 2]
print(id(l))  # 4300825160
l.append('Python')
print(id(l))  # 4300825160

相關文章