1. 程式人生 > >1.5 python的數值和字串 1.6 元組 1.7 列表

1.5 python的數值和字串 1.6 元組 1.7 列表

1.5 python的數值和字串

python資料型別分類

數值 字串 列表 元組 字典

數值型別

- 整型int
- 長整型long  //長整型後面會有一個L
- 浮點型float  //帶小數點,科學計數法也屬於浮點型
- 複數型complex  //後面帶一個j

字串型別

有三種方法定義字串型別 - str = 'this is a string' - str = "this is a string" //python下,單雙引號沒有區別 - str = '''this is a string'''

三重引號(docstring)除了能定義字串還可以用作註釋。

a = "abcde" 字串是一個序列,可用索引取值 a[起始下標 : 終止下標 : 步長]

a[0]="a" //取第一個值 a[-1]="e" //取最後一個 a[0:3]="abc" //取下標0到下標2

1.6 元組

字串、列表和元組都是序列 序列的兩個主要特點是索引操作符和切片操作符 - 索引操作符讓我們可以從序列中抓取一個特定專案 - 切片操作符讓我們能夠獲取序列的一個切片,即一部分序列。

###序列的基本操作

len():  求序列的長度
+:         連線2個序列
*:         重複序列元素
in:        判斷元素是否在序列中
max(): 返回最大值
min(): 返回最小值
cmp(x, y):比較兩個序列是否相等

元組tuple

元組和列表十分相似 元組和字串一樣是不可變的 - 元組可以儲存一系列的值 - 元組通常用在使用者定義的函式能夠安全地採用一組值的時候,即被使用的元組的值不會改變。

t = ('a',2,(3,))
t = (1,)  //元組中只有一個元素的時候,要加 “,”

元組的操作

- 元組和字串一樣屬於序列型別,可以通過索引和切片操作
- 元組值不可變

元組的拆分 - t = (1,2,3) a, b, c = t //a,b,c三個變數可以分別賦予元組的值

元組有兩個方法

count() //統計元組資料個數 index() //輸出資料下標

1.7 列表

列表(list)是處理一組有序專案的資料結構,即可以在列表中儲存一個序列的專案。 列表是可變型別的資料 建立列表 - list1 = [] - list2 = list() - list3 = ['a',1,2]

列表操作

- 取值
    切片和索引
- 新增
    list.append()
- 刪除
    del list[]
    list.remove(list[])   //刪除第一個出現的value
- 修改
    list[] = x
- 查詢
    var in list

· -插入 list.insert(value,object) //在物件前插入值 -排序 list.sort() -反序 list.reverse()

練習

練習1:

將 “123” 轉換成整數 將 “9999999999999999999” 轉換成長整數 將 “3.1415926” 轉換成一個浮點數 將 123 轉換成一個字串 現有以下字串 字串1:" abc deFGh&ijkl opq mnrst((uvwxyz " 字串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(&YZ " 使用字串的各種方法轉換成如下方式 ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

a = "123"
a= int(a)
b = "9999999999999999999"
b = long(b)
c = "3.1415926"
c = float(c)
d = 123
d = str(d)
str1 = " abc deFGh&*ijkl opq mnrst((uvwxyz "
str2 = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

m = []
for i in list(str1) :
	if i.isalpha():
		m.append(i.lower())

m.reverse()
print str(m)
n = []
str3 = ""
for i in list(str2) :
	if i.isalpha():
		str3 = str3 + i
for i in m :
	str3 = str3 + i 
print str3

練習2:

現有列表 list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX'] list2 = ['e', 'f', 'g'] 要求對其做以下操作:

  1. 取出 ‘XXXX’ 中間的部分,形成一個新的列表list3
  2. 對list3 做一下幾部操作 1)刪除特殊符號 2)統計 3 在list3中出現的次數 3)用最簡短的程式碼去除list3中 26個字母以外的元素(要求只能對list3操作) 4)對list3排序 5)在末尾追加'd',並把list2追加到list3
  • 1、

    list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX'] list2 = ['e', 'f', 'g'] list3 = [] n = 1 for i in list1 : if i == 'XXXX' : n = n * -1 continue if n == -1 : list3.append(i) print list3

  • 2、

    num3 = 0 listrm = [] for i in list3 : if not str(i).isalpha(): if not str(i).isalnum() : listrm.append(i) elif str(i) == '3' : num3 += 1 for i in listrm : list3.remove(i) print num3 print list3

    list3 = [i for i in list3 if str(i).isalpha()]

    list3.sort() list3.append("d") list3 = list3 + list2 print list3

練習3.

現有兩個變數 a = ('h',) b = ('h') 1)將a和b分別追加到上一題的list3中,觀察有什麼區別 2)將1生成的list3轉換成元組(擴充套件:自己搜尋方法) 3)打印出只有一個元素'h'的元組,在2中生成的元組中的索引 a = ('h',) b = ('h') list3.append(a) lsit3.append(b) print list3