1. 程式人生 > >python 第二天 資料型別

python 第二天 資料型別

# 資料型別

# python2 int有範圍 long 長整型
# python3 所有整型int

# int str list tuple元組 dict字典 bool
# 強制轉換 str = "123" num = int(str) nnum = int(num, base=n)轉換為n進位制
# 型別檢視 print(type())
# 選中按tab 區域縮排

num = 10

bynum = num.bit_length() # 求二進位制位
print(bynum)

bionum = int(str(num), base=2) # 換算成二進位制
print(type(bionum), bionum)

str1 = "life is short"

str2 = str1.capitalize() # 首字母大寫
print(str2)

str3 = str1.casefold() # 首字母小寫,更強大
print(str3)

str4 = str1.lower() # 字母小寫 islower() 判斷是否全部小寫
print(str4)
# 不區分大小寫的方法 全部變成小寫
# upper() 大寫 isupper() 判斷是否全部大寫
# swapcase() 大小寫互相轉換

str5 = str1.swapcase()
print(str5)

str5 = str1.center(30) # def 函式 self 引數不需要 傳遞值
					# width 設定寬度 
					# 第三個引數 預設值引數 空白填充
print(str5)

# ljust() 同center 居左 rjust 居右 

# zfill() 引數僅 寬度 用0填充

count = str1.count('i') # 計數 第二、三引數 字串範圍
print(count)

# encode decode

bif = str1.endswith('t') # 判斷是否以此結尾

# startwith

# 找到 =-1 index() 找不到則出錯
num = str1.find('i') # 找位置 第二、三引數 字串範圍 區間 左閉右開


# 傳值 格式化 佔位符

teststr = 'i am {name}, my age is {iage}'

newstr = teststr.format(name = 'hm', iage = 10)

print(newstr)

# or

teststr = 'i am {0}, my age is {1}' # 必須從0開始

newstr = teststr.format('hm', 10)

print(newstr)

# format_map

teststr = 'i am {name}, my age is {iage}'

newstr = teststr.format_map({'name':'hm', 'iage':10})

print(newstr)

str1 = "ABCDEF————HG"

bif = str1.isalnum() # 判斷是否全是 字母 數字
# isalpha() 字母 isdigit() 數字 支援特殊的數字符號 isdecimal() 數字 isnumeric 數字 支援中文2
print(bif)

str1 = "NAME\tCODE\tNUMBER\nTIME\tBIRTH\tLOVE"
bif = str1.expandtabs(20)
# 將字串按照20個字元一組劃分,若遇到\t則改組結束,將tab轉換為空格
print(bif)

# 判斷識別符號 isidentifier() 可與關鍵字重複 符合命名規則為 True

# isprintable() 是否存在列印時不可顯示字元

# isspace() 全部是 space 為 True

# istitle() 所有單詞首字母大寫 為 True

# title() 所有單詞首字母轉換為大寫

# join()

str1 = '你是風兒我是沙'

tool = ' '

str2 = tool.join(str1)

print(str2)

# str2 = ' '.join(str1)

str1 = ' test '

print(str1.strip()) # 去除左右空白(\n \t也可以去除)

# 含引數時 去除引數子序列 (最多匹配 -> 最少匹配)
# 另一種理解 去除引數 元素 

# lstrip 去左 rstrip 去右

str1 = 'aeiou'
str2 = '12345'
str3 = 'today is a terrible day'

str4 = str1.maketrans(str1, str2)
print(str3.translate(str4))

str1.replace("a","1")

# 替換

str1 = "iaibicieifig"
print(str1.partition('i')) # 只能分割成三份 rpartition()

print(str1.split('i', 6)) # 會刪去分割的標識 rsplit()

# 正則表示式 可以設定分割元素的 取捨

# splitlines(True\False) 根據\n 分割 True保留\nTIME\tBIRTH\tLOVE


# 陣列操作 索引

str1 = "ABCDEFG"

ch = str1[0]

str2 = str1[0:4] # 索引範圍 0:-1 全部範圍

print(len(str1)) # 獲取字串長度 python2 與 3 不同

list1 = ['aa','bb','cc','dd'] # 按逗號分

# len join等同樣用於列表

# 範圍迴圈

for i in str1:
	print(i)
	
	
vector = range(100) # python2.7 和 3 不同 建立連續的數字
# 前者此刻已經建立 後者在使用時才建立
# range(1, 100, 5) 首 尾 間隔

for item in vector:
	print(item)