一仰税、進(jìn)制:
- 硬盤:二進(jìn)制存儲(chǔ)
- 讀裙棺省:由二進(jìn)制
- 用戶所見
- 轉(zhuǎn)換完成的字符串
- 以十六進(jìn)制展示
二、基本數(shù)據(jù)類型
- 字符串
- 整數(shù)
- 布爾值
- 列表
- 元組
- 字典
- 集合
1.字符串
#1.capitalize 首字母大寫肖卧,自身不變蚯窥,生成新的值
name1 = 'alex'
s1 = name1.capitalize()
print(s1)
#2.casefold 所有大寫變小寫,casefold功能更牛
name2 = 'AleX'
s2 = name2.lower()
s22 = name2.casefold()
print(s2,s22)
#3.center 文本居中center(總長度,空白處填充字符)
n3 = ' -Alex- '
s3 = n3.center(20,'字')
print(s3)
#4.count 子序列在指定字符串中出現(xiàn)的次數(shù)count(子序列塞帐,起始拦赠,結(jié)束)
n4 = 'alekjdokjeskedfax'
s4 = n4.count('e',3,10)
print(s4)
#5.endswith 指定字符串是否以子序列結(jié)尾
n5 = 'aleeeeeeeeeeeeeeabcx'
s5 = n5.endswith('cx',10)
print(s5)
#6.startwith 開頭
s6 = n5.startswith('al',0,10)
print(s6)
#7. 用n個(gè)空格代替\t,包含前面的值
n7 = 'al\ne\tx\ner\ti\tc'
s7 = n7.expandtabs(10)
print(s7)
#8. 找到指定子序列的索引位置,不存在是find返回-1葵姥,index報(bào)錯(cuò)
n8 = 'alex and eric'
s8 = n8.find('eax',0,5)
print(s8)
v88 = n8.index('ex')
print(v88) #沒有時(shí)荷鼠,報(bào)錯(cuò)ValueError: substring not found
#9-1.字符串格式化:format,可以是index榔幸,也可以直接賦值給變量名
n9 = 'my name is:{0}, age is:{1},gender is:{2}'
s9 = n9.format('alex',10,"male")
print(s9)
n91 = 'my name is:{name}, age is:{age},gender is:{gender}'
s91 = n91.format(name = 'alex', age = 19, gender = 'male')
print(s91)
#9-2.format_map
n92 = 'my name is:{name}, age is:{age},gender is:{gender}'
s92 = n92.format_map({'name':'bill',"age":20,'gender':'unkown'})
print(s92)
#10.判斷一個(gè)字符串是否全是數(shù)字允乐、漢字--不能含有空格
n10 = 'alexis李杰123'#漢字、字母削咆、數(shù)字
s10 = n10.isalnum()
print(s10)
s101 = n10.isalpha() #不能包含數(shù)字
print(s101)
#11.是否為數(shù)字
n11 = '②'
s111= n11.isdigit() #阿拉伯?dāng)?shù)字牍疏,和帶圈字符
s112 = n11.isdecimal() #最常用,只能阿拉伯?dāng)?shù)字拨齐,可用int類型轉(zhuǎn)換過來
print(s111,s112)
n112 = '2②二'
s1121 = n112.isdigit()
s1122 = n112.isdecimal()
s1123 = n112.isnumeric() #數(shù)字:可為:阿拉伯鳞陨、帶圈數(shù)字、漢字
print(s1121,s1122,s1123)
#12.是否為標(biāo)識(shí)符 ??這是啥意思--判斷是否可以做變量名
n12 = '9alex'
s12 = n12.isidentifier()
print(s12) #True
#13.是都全部大/小寫
n13 = 'ALEX'
s131 = n13.islower()
s132 = n13.isupper()
print(s131,s132)
#14.是否包含隱含字符
n14 = 'life is short \t learn\nPython'
n141 = 'hello world!'
s14 = n14.isprintable()
s141 = n141.isprintable()
print(s14,s141)
#15.是否全部為空格
n15 = ' '
s15 = n15.isspace()
print(s15)
#16.是否每個(gè)單詞首字母大寫
n16 = 'Congratulation' #根據(jù)空格判斷單詞瞻惋,沒有空格時(shí)會(huì)判斷是否是一個(gè)單詞
s16 = n16.istitle()
print(s16)
#17.元素拼接厦滤,可以是字符串或列表
n171 = 'hello world!'
v171 = '+'.join(n171)
print(v171)
n172 = ['alex','bill','chris']
v172 = '是'.join(n172)
print(v172)
#18.左中右填充
n18 = 'Pyhon'
s181 = n18.center(20,'中') #填充字符只能為1個(gè)
s182 = n18.ljust(20,'左')
s183 = n18.rjust(20,'右')
print(s181,s182,s183)
#19.對應(yīng)關(guān)系+翻譯
x = str.maketrans('hijkl','舉頭望明月')
print(x)
n19 = 'life is short, use python!'
s19 = n19.translate(x)
print(s19)
#20.分割,并保留分割元素歼狼。cf:split不保留分隔元素--都以第一個(gè)遇到的分割元素進(jìn)行分割
n19 = 'life is, short, use, python!'
s191 = n19.split(', ') #返回值為列表
s192 = n19.partition(', ') #返回值為元組 --用法:計(jì)算器中保留運(yùn)算符號
print(s191)
print(s192)
#21.替換
n21 = 'alexAbillAchrisAdavid'
s21 = n21.replace('A','Like',2)
print(s21)
#22.移除空白掏导,包括:空格 \n \t 自定義
n22 = 'al\ne\tx '
s22 = n22.strip() #只移除了結(jié)尾的空白,存疑S鸱濉趟咆!
s221 = n22.strip('a')
print(s22)
print(s221)
#23.大小寫轉(zhuǎn)換
n23 = 'AlEx'
s23 = n23.swapcase()
print(s23)
#24.填充0
n24 = 'alex'
s24 = n24.zfill(10) #填充到前面
print(s24)
2.整型
#1.當(dāng)前int以最少位數(shù)的二進(jìn)制表示
num1 = 255
print(num1.bit_length())
#2.獲取當(dāng)前數(shù)據(jù)的字節(jié)表示--以多少位的16進(jìn)制進(jìn)行表示添瓷。其中,\xff為一個(gè)16進(jìn)制
num2 = 255
i21 = num2.to_bytes(20,byteorder='big') #值在后面
i22 = num2.to_bytes(20,byteorder='little') #值在前面
print(i21)
print(i22)
3.布爾值
#1.False類型忍啸,空內(nèi)容一般都為false
b1 = ''
b2 = 0
b4 = []
b3 = -2 #True
4.列表
#1.追加
u_list = ['alex','bill','chris','dick'] #可變類型
u_list.append('eric')
print(u_list)
#2.清空
u_list.clear()
print(u_list)
#3.淺拷貝
u_list = ['alex','alex','bill','chris','dick']
v = u_list.copy()
print(u_list)
print(v)
#4.計(jì)數(shù)
v2 = u_list.count('alex')
print(v2)
#5.擴(kuò)展源列表仰坦,多個(gè)元素
v3 = u_list.extend(['eric','frank'])
print(u_list)
print(v3) #空,應(yīng)該直接u_list.extend(['eric','frank'])
#6.查找元素的索引(第一個(gè)出現(xiàn)的)计雌,沒有時(shí)報(bào)錯(cuò)
v4 = u_list.index('alex')
print(v4)
#7.刪除并獲取元素--根據(jù)索引
v5 = u_list.pop(2)
print(v5)
print(u_list)
#8.刪除但獲取不到元素--根據(jù)值,刪除查找到的第一個(gè)
v6 = u_list.remove('alex')
print(v6)
print(u_list)
#9.翻轉(zhuǎn)
u_list.reverse()
print(u_list)
#10.排序
nums = [11,22,55,6,77,3]
print(nums)
#小>大悄晃,默認(rèn)
nums.sort(reverse=False)
print(nums)
#大>小
nums.sort(reverse=True)
print(nums)
5.元組
usr_tuple = ('alex','bill','bill','chris','dick')
#1.獲取指定元素的個(gè)數(shù)
v = usr_tuple.count('bill')
print(v)
#2.獲取值的索引,顯示查到的第一個(gè)
v2 = usr_tuple.index('bill')
print(v2)
6.字典
1. 字典可以嵌套
2. 字典的key必須為不可變類型凿滤。比如元組
3. 可以索引取值
4. 可根據(jù)key刪除鍵值對 del dic['k1']
#1.clear 清空
dic1 = {'k1':'v1','k2':'v2'}
dic1.clear()
print(dic1)
#2.copy 淺拷貝
dic = {'k1':'v1','k2':'v2'}
d2 = dic.copy()
print(d2)
#3.get 根據(jù)key獲取指定的value
d3 = dic.get('k1')
d31 = dic.get('k3')
print(d3)
print(d31)
# d32 = dic['k3']
# print(d32)
#4.pop 刪除并獲取對應(yīng)value值,并獲取到該value值
dic4 = {'k1':'v1','k2':'v2','k3':'v3'}
d4 = dic4.pop('k2')
print(d4)
print(dic4)
#5.popitem 隨機(jī)刪除鍵值對妈橄,并獲取到該鍵值
dic5 = {'k1':'v1','k2':'v2','k3':'v3'}
d5 = dic5.popitem() #dict無序,所以隨機(jī)刪除
print(d5)
print(dic5)
#6.setdefault 增加翁脆,只能增加一個(gè)(逗號分隔 鍵值)眷蚓,已存在時(shí)不做操作
dic6 = {'k1':'v1','k2':'v2','k3':'v3'}
dic6.setdefault('k4','v4')
print(dic6)
dic6.setdefault('k1',123)
print(dic6)
#7.update 更新,批量增加/修改反番。存在時(shí)跟新沙热,不存在時(shí)增加(括號內(nèi)為字典)
dic6 = {'k1':'v1','k2':'v2','k3':'v3'}
dic6.update({'k1':999,'k5':'v5'})
print(dic6)
#8.fromkeys 循環(huán)創(chuàng)建字典
dic8 = dict.fromkeys(['k1','k2','k3'],123)
print(dic8)
dic8['k1'] = 'hello world' #替換。123為整型罢缸,不可變篙贸,不能追加
print(dic8)
dic81 = dict.fromkeys(['k1','k2','k3'],[1,])
print(dic81)
dic81['k1'].append(234) #值是列表時(shí)追加到所有值的列表中
print(dic81)
7.集合
# 1. 可變類型
# 2. 不可重復(fù)的列表
s1 = {'alex','bill','chris','david'}
s2 = {'alex','bill','eric','frank'}
#1. s1中存在,s2中不存在
a1 = s1.difference(s2)
print(a1)
#1-1.將difference的值賦值給s1
# s1.difference_update(s2)
# print(s1)
#2.連個(gè)集合的所有不同元素組成一個(gè)新的集合
a2 = s1.symmetric_difference(s2)
print(a2)
#3.交集
a3 = s1.intersection(s2)
print(a3)
#4.并集
a4 = s1.union(s2)
print(a4)
#5.移除
s1.discard('alex')
print(s1)
#6.更新枫疆,已經(jīng)有的不變爵川,沒有的更新
s6 = {'alex','bill','chris','david'}
s6.update({'alex','bill','rose','lily'})
print(s6)
#7.for-loop
s7 = {'alex','bill','rose','lily'}
for item in s7:
print(item)
s8 = {'alex','bill',(1,2,3)}
for i in s8:
print(i)
8.range范圍取值
# 2.7中:range立即生成范圍內(nèi)的所有值,xrange迭代后逐個(gè)生成
# 3.x中:range等同有2.7中的xrange息楔,不立即生成所有數(shù)值寝贡,迭代后才逐個(gè)生成
li = ['alex','bill','chris']
for i in li:
print(i)
for i in range(0,len(li)):
ele = li[i]
print(i+1,ele)
9.enumerate,比range額外生成一列有序數(shù)字
li9 = ['alex','bill','chris']
for i,ele in enumerate(li,10): #不在for循環(huán)中時(shí)值依,怎么使用圃泡??
print(i,ele)
#范例:商品列表取值
# v = int(input('請輸入商品序號:'))
# item = li[v-1]
# print(item)