python小白进阶之路——基本数据类型

 查看功能:按住Ctrl,点击左键

一、数字 int

  1. 做运算:加减乘除/、次方(2**4:2的4次方)、 取余(39%8:39除以8取余 =7)、取整(39 // 8:得商 =4)

  2. 用法

  (1)将字符串转换为数字

1 a='123'
2 print(type(a),a) 3 b=int(a) 4 print(type(b),b)

  (2)将其他进制的数字转换为十进制(如:将0011以二进制的方式转换为十进制)

1 num='0011'
2 v=print(num,base=2) 3 print(v)

  (3)bit_length:当前数字的二进制至少用n位来表示

注:在python3中,所有数字都称为整形 int;在python2中,超出范围的数字称为长整型 long。

二、字符串 str:一旦创建,不可修改。一旦修改或拼接,都会重新生成字符串

  1. 做运算:加法(相当于几句话合并为一句)、乘法(‘alex’*10==>alex重复10遍)

  2. 扩展功能

  casefold:大写变小写(全能);

  lower:大写变小写(常见的英文字符)

test='DSG'
v=test.casefold()
print(v) 返回:dsg

  find:从头往后找,找到第一个后,获取其位置。区间:大于等于&小于

test='sdfdfgh'
v=test.find('f') print(v) 返回:2 #位置从0开始,区间:=< <

  join:将字符串中每个元素按指定分割符进行拼接

test=('你是风儿我是沙')
t='_' v=t.join(test) print(v) 返回:你_是_风_儿_我_是_沙

  upper:转换为大写

  isupper:判断是否为大写

test='Dfg'
v=test.upper()
print(v) 返回:DFG ####################### test='Dfg' v=test.isupper() print(v) 返回:False

  strip:去除空格;去除\t、\n;去除指定元素(优先最多匹配)

  lstrip、rstrip:去除左边/右边空格

test='   Dfgffgh    '
v=test.strip()
print(v) 返回:Dfgffgh ################## test=' Dfgffgh\t\n ' v=test.strip() print(v) 返回:Dfgffgh ################## test='*D*fgf*fgh**' v=test.strip('*') print(v) 返回:D*fgf*fgh

  split、rsplit:从左侧/右侧分割,默认全部分割,可指定分割次数,但无法返回分割符

test='D*fgf*f*ghdj*h'
v=test.split('g') print(v) 返回:['D*f', 'f*f*', 'hdj*h'] ######################### test='D*fgf*f*ghdj*h' v=test.rsplit('g') print(v) 返回:['D*f', 'f*f*', 'hdj*h']

  replace:替换

test='fgfghDJFHdg'
v=test.replace('fg','12') print(v) 返回:1212hDJFHdg

  format:格式化。将一个字符中的占位符替换为指定的值

test='i am {name},{age}'
v=test.format(name='alex',age=19) print(v) 返回:i am alex,19 #########################################  test='i am {0},{1}' v=test.format('alex',19) print(v) 返回:i am alex,19

  format_map:同format,用法不同。

test='i am {name},{age}'
v=test.format_map({'name':'alex','age':19}) print(v) 返回:i am alex,19

  capitalize:首字母大写

test='dsg'
v=test.capitalize()
print(v) 返回:Dsg

  center(20,"*"):设置宽度并将内容居中;20代指总长度,*表示空白位置填充,一个字符,可有可无

test='DSG'
v=test.center(20,'*') print(v) 返回:********DSG*********

  count:在字符串中寻找子序列出现的次数

test='sdfdfgh'
v=test.count('df') print(v) 返回:2

  endswith:以什么什么结尾

test='sdfdfgh'
v=test.endswith('df') print(v) 返回:False test='sdfdfgh' v=test.endswith('h') print(v) 返回:True

  startswith:以什么什么开始

test='sdfdfgh'
v=test.startswith('h') print(v) 返回:False test='sdfdfgh' v=test.startswith('s') print(v) 返回:True

  isalnum:判断字符串中是否仅含字母和数字

test='sdfdfgh'
v=test.isalnum()
print(v) 返回:True ########################### test='123dfsdg_' v=test.isalnum() print(v) 返回:False

  expandtabs:制表符tab填补空位

test="username\temail\tpassword\nwangyiying\[email protected]\t123\nwangyiying\[email protected]\t123\nwangyiying\[email protected]\t123\n"
v=test.expandtabs(20)
print(v) 返回: username email password wangyiying [email protected] 123 wangyiying [email protected] 123 wangyiying [email protected] 123

  isalpha:判断字符串中是否仅包含字母、汉字

test='123dfsdg'
v=test.isalpha()
print(v) 返回:False ############################ test='dfsdg' v=test.isalpha() print(v) 返回:Ture ############################ test='你好' v=test.isalpha() print(v) 返回:Ture

  isdecimal:判断是否输入数字(十进制,用的多,如2)

  isdigit:判断是否输入数字(特殊符号如②)

  isnumeric:判断是否输入数字(中文字符,如二)

test='2'
v=test.isdecimal()
print(v) 返回:Ture ########################## test='2②' v=test.isdigit() print(v) 返回:Ture ########################## test='2二②' v=test.isnumeric() print(v) 返回:True

  isidentifier:判断标识符:字母、数字、下划线(数字不能开头)

test='_dfdf12_'
v=test.isidentifier()
print(v) 返回: True ############################## test='1_dfdf12_' v=test.isidentifier() print(v) 返回:False

  isprintable:判断是否存在不可显示的字符,如 \t

test='1_dfdf12_'
v=test.isprintable()
print(v) 返回:True ########################## test='1_dfdf12_\n\t' v=test.isprintable() print(v) 返回:False

  isspace:判断字符串中是否全部为空格

test='dsfd  gfgf'
v=test.isspace()
print(v) 返回:False ######################### test=' ' v=test.isspace() print(v) 返回:True

  istitle:判断是否为标题(首字母均为大写)

test='Dfg fgfdj  trnh'
v=test.istitle()
print(v) 返回:False ########################## test='Dfg Fgfdj Trnh' v=test.istitle() print(v) 返回:True

  title:将字符串转换为标题

test='Dfg gfdj  rnh'
v=test.title()
print(v) 返回:Dfg Gfdj Rnh

  ljust、rjust:将字符串放在左边/右边,其余用填充符填充

test='Dfg'
v=test.ljust(20,'*') print(v) 返回:Dfg***************** ################################# test='Dfg' v=test.rjust(20,'*') print(v) 返回:*****************Dfg

  maketrans:做替换,与translate连用

v="sofhugkai"
m=str.maketrans('aeiou','12345') new_v=v.translate(m) print(new_v) 返回:s4fh5gk13

   partition、rpartition:从左侧/右侧分割,只能分三份

test='D*fgf*fgh'
v=test.partition('*') print(v) 返回:('D', '*', 'fgf*fgh') ############################## test='D*fgf*fgh' v=test.rpartition('*') print(v) 返回:('D*fgf', '*', 'fgh')

  splitlines:根据换行符进行分割

test='D*fgf*f*g\nhdj*h'
v=test.splitlines()
print(v) 返回:['D*fgf*f*g', 'hdj*h']

  swapcase:大小写互相转换

test='fgfdghDJFHdg'
v=test.swapcase()
print(v) 返回:FGFDGHdjfhDG

  3. 特殊功能

  (1)索引:获取字符串中的某一个字符

test='alex'
v=test[0]
print(v) 返回:a

  (2)切片:获取字符串中的多个字符

test='alex'
v=test[0:2]
print(v) 返回:al #范围:0=< <2 ########################## test='alex' v=test[0:-1] print(v) 返回:ale #-1:直接到达最后位置

  (3)for循环:for 变量名 in 字符串:

test='好好学习'
index=0
while index<len(test): v=test[index] print(v) index+=1 print('完成') ############################## test='好好学习' for item in test: print(item) 返回: 好 好 学 习

  (4)len:字符串由多少个字符组成

test='alex'
v=len(test)
print(v) 返回:4

  (5)range:创建连续数字;通过设置步长指定不连续

test=input('>>>')  #wyy
print(test) #test=wyy,test[0],test[1],test[2] l=len(test) #l=3 print(l) r=range(0,l) #r=(0,3) for item in r: print(item,test[item]) 返回: wyy 3 0 w 1 y 2 y ##########简化如下########### test=input('>>>') for item in range(0,len(test)): print(item,test[item]) 返回: 0 w 1 y 2 y

三、列表:list

1.基本操作

(1)书写格式:li=[1,12,9,'age','alex']

(2)列表中可嵌套任何类型

(3)有序:可while循环

(4)元素可以被修改

2. 扩展功能

  append:原值后追加,追加部分作为整体

li = [11, 22, 33, 22, 44]
li.append(5)
li.append("alex")
li.append([1234,2323])
print(li)

  extend:扩展原列表,每个元素追加到原列表中,实质:执行for循环

li = [11, 22, 33, 22, 44]
li.append([9898,"不得了"])
[11, 22, 33, 22, 44, [9898, '不得了']]
###########与append对比######################
for i in [9898,"不得了"]:
li.append(i)
[11, 22, 33, 22, 44, 9898, '不得了']

  insert:在指定索引位置插入元素

li = [11, 22, 33, 22, 44]
li.insert(0,99)
print(li)

  clear:清空列表

li.clear()
print(li)

  copy:浅拷贝

v = li.copy()
print(v)

  count:计算元素出现的次数

v = li.count(22)
print(v)

  index:根据值获取当前值索引位置(左边优先)

li = [11, 22, 33, 22, 44]
v= li.index(22)
print(v)

  pop:删除某个值(1. 指定索引 2. 默认最后一个),并获取删除的值

li = [11, 22, 33, 22, 44]
v = li.pop()
print(li)
print(v)
###################################
li = [11, 22, 33, 22, 44]
v = li.pop(1)
print(li)
print(v)

  remove:删除列表中的指定值(左边优先)

li = [11, 22, 33, 22, 44]
li.remove(22)
print(li)

########################################
PS删除指令: pop,remove,del li[0],del li[7:9],clear

  reverse:将当前列表进行翻转

li = [11, 22, 33, 22, 44]
li.reverse()
print(li)

  sort:排序,默认从小到大排;若想从大到小排:reverse=True

li = [11,44, 22, 33, 22]
li.sort()
li.sort(reverse=True)
print(li)

3. 特殊操作

  (1)获取值

#索引
li[3]

#切片,结果为list
li[3:5]

#for循环
for item in list:
    print(item)

  (2)修改

#索引
li[1]=120
li[1]=[11,22,33]

#切片
li[1:3]=[120,90]

  (3)删除

#索引
del li[1]

#切片
del li[2:6]

  (4)in操作

li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
v1 = "石振文" in li
print(v1)
v2 = "age" in li
print(v2)

  (5)转换

#字符串==>列表:内部使用for循环
s = "pouaskdfauspdfiajsdkfj"
new_li = list(s)
print(new_li)

#列表==>字符串
#既有数字,又有字符串:自己写for循环
li = [11,22,33,"123","alex"]
s = ""
for i in li:
    s = s + str(i)
print(s)
#仅有字符串:直接用join
li = ["123","alex"]
v = "".join(li)
print(v)

  定位索引例子

#找到19
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
li[4][1][0]

#找到19中的9
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
li[4][1][0][1]

四、元组:tuple

1.基本操作

(1)书写格式:tu=(111,'alex',(11,22),[(33,44)],True,33,44,),一般最后加入”,“

(2)一级元素不可被修改、增加、删除

(3)有序:可while循环

2.特殊功能

  (1)获取值

#索引
tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[0]
print(v)

#切片
tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[0:2]
print(v)

#for循环
tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
for item in tu:
    print(item)

  (2)转换

  元组==>字符串,与列表==>字符串情况相同

例题:

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[3][0][0]
print(v)
v=tu[3]
print(v)
tu[3][0] = 567
print(tu)

五、字典:dict

1.基本操作

(1)书写格式:键值对,info={"k1":"v1","k2":"v2"}

(2)字典的key不能是列表、字典;value可为任何值

info = {
    "k1": 18,
    "k2": True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
print(info)

(3)无序

2.扩展功能

  keys

  values

  items

  get:根据key获取值,key不存在时,可指定默认值(None)

v = dic['k11111']
print(v)
v = dic.get('k1',111111)
print(v)

  update:更新

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
dic.update({'k1': '111111','k3': 123})
print(dic)

dic.update(k1=123,k3=345,k5="asdf")
print(dic)

  fromkeys:根据序列,创建字典,并指定统一的值

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dict.fromkeys(["k1",123,"999"],123)
print(v)

  pop:指定删除并获取值

  popitem:随即删除并获取值

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dic.pop('k1',90)
print(dic,v)
k,v = dic.popitem()
print(dic,k,v)

  setdefault:设置值。若已存在,则不设置,获取当前key对应的值;若不存在,则设置,添加到字典中并获取对应值

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dic.setdefault('k1111','123')
print(dic,v)

3.特殊操作

(1)获取值

info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
v = info['k1']
print(v)
v = info[2]
print(v)
v = info['k3'][5]['kk3'][0]
print(v)

(2)删除

info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
del info['k1']

del info['k3'][5]['kk1']
print(info)

(3)for循环

info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
#keys
for item in info.keys():
    print(item)
#values
for item in info.values():
    print(item)
#items
for k,v in info.items():
    print(k,v)

六、布尔值:bool

1. 取值:真 Ture;假 False

2. False:None,“空字符串”,(空元组),[空列表],{空字典},0

3.转换:bool()

4. 运算顺序:有括号先计算括号内;否则从前到后

  Ture or ==>Ture

  Ture and ==>继续走

  False or ==>继续走

  False and ==>False

以上。

猜你喜欢

转载自www.cnblogs.com/yy25257821/p/12148201.html