小猿圈python入门之基本的数据类型

在今天和明天之间,有一段很长的时间;趁你还有精神的时候,学习迅速办事。——歌德


python基本数据类型包括:数字、字符串、布尔值、列表、元组、字典。

一、数字()

int()方法:

1、将字符串转换为数字:

a='123'

b=int(a)

2、进制之间的转换:

例:num='0011'

c=int(num,base=16) 表示16进制的num转换为10进制的数字

bit_length()方法:

当前数字的2进制,至少用n位来表示

例:age=1   2进制表示01

r=age.bit_length()     所以r=1

age=2   用2进制表示10

r=age.bit_length()     所以r=2

age=4   用2进制表示100

r=age.bit_length()     所以r=3

二、字符串

字符串是不可以被修改的,它会被创建新元素,开辟新内存。

常见的字符串方法:

移除空白

分割

长度

索引

切片

例子:

#参数只有一个self可以默认不写参数,但若还有其他的,第二个参数必写,后面的可写可不写,写了可以按照条件去执行

name='listen'

a=name.capitalize()

print(a) #首字母变大写

#-----------------------------

name='alex'

a=name.ljust(20,'*')#用*从左往右补全20个字符

b=name.rjust(10,' ')#用空格从右向左补全10个字符

 print(b)

#$$$$$$$$$$$$$

name='listen'

a=name.center(20,'*')

print(a)  #*******listen******* 占20个位,‘*’填补,若不写这个参数,已空格来填补

 a=name.zfill(10)

 print(a)    #用0左填充补齐字符

#----------------------------------------

name='listensdsdd'

 a=name.count('s') #s的个数

b=name.count('s',5) #从索引为第5个位置找

 c=name.count('s',5,7)#从5找到7

 print(c)

#--------------------------------------------

 name='listen'

a=name.startswith('a')

 c=name.startswith('s',2)

 b=name.endswith('n')

d=name.endswith('e',1,5)#[1,5)

 print(a) #bool类型,返回false

 print(b)#true

 print(c)

 print(d)

#--------------------------------------------

information='name\tage\tsex\tgrade\nlisten\t13\tmale\tgood\nlisten\t13\tmale\tgood\nlisten\t13\tmale\tgood\n'

a=information.expandtabs(10)     #将10字符分为一组,遇到\t补全10字符,默认一个tab转换为8个空格,也可以根据自己需要添加空格的值,一个\n为换行符,这样可以制作左对齐表格

print(a)

# """

name      age      sex      grade

 listen    13        male      good

 listen    13        male      good

 listen    13        male      good

# """

#--------------------------------------------------

name='listen'

a=name.find('s')

 b=name.find('s',3)

 c=name.find('e',3,5)

 d=name.index('s',3)#找不到会报错,不建议用这个,建议用find

 print(a)#找索引位置2

 print(b) #没找到返回-1

 print(c)  #4

 print(d)

#---------------------------------------------

#字符串的格式化

 troduce='I am {name},{age} years old'

 a=troduce.format(name='listen',age=13)

 print(a)

troduce='I am {0},{1} years old'

 a=troduce.format('listen',13) #跟上面一一对应

 print(a)

#------------------------------------------------

name='asc123'

 a=name.isalnum()    #是否是字母或者数字

 b=name.isalpha()    #是否全部是字母

c=name.isdigit()      #是否全为数字(厉害)②

d=name.isdecimal()   #是否全为数字(十进制的小数)2

e=name.isnumeric()    #是否为数字(最厉害,中文的二都认识)二

print(a) #True

 print(b) #False

 print(c)#False

#----------------------------------------------

 name='listen'

a=name.islower() #是否为小写

print(a)

 name1='LiStEn'

 b=name1.lower() #把字符串变为小写

c=name1.upper() #把字符串变为大写

print(b)

print(c)

#---------------------------------------

name='adcc\t'

 a=name.isprintable()

 print(a)#是否有不可以显示出的字符\t制表符 \n换行符 都是显示不出来

#------------------------------------------

 name='  '

a=name.isspace() #是否全为空格,空字符串也是false

 print(a)

#---------------------------------------------

 name='listen is a good student'

a=name.istitle()#判断是否为标题的依据是是否句子首字母为大写

 b=name.title() #变为标题

 c=b.istitle()

 print(c)

#----------------------------------------

#********很重要

name='nihao'

 t=' '

 a=t.join(name)

 b='*'.join(name) #用*把名字的字符拼接起来

 print(b)

#-----------------------------------------

name='    listen  '

al='acv\neg\t'

 dl='\tssafgdas'

a=name.strip()#把左右空格、换行符、制表符都移除

print(al.strip())

 b=name.lstrip()#把左边的空格移除

c=name.rstrip()#把右边的空格移除,从又第一个字母开始找,有的话移除

print(dl.rstrip('a'))

 print(dl)

 v=dl.strip()

 print(v)

print(c)

#----------------------------------------------------

 name='alexsslefgs'

 a=name.partition('s') #按要求分割成三部分包含分隔符

 a=name.rpartition('s')#从右分割为三部分

a=name.split('s') #按要求分割,有几部分分几部分,但是不包含分隔符

a=name.rsplit('s')#从右分割

 print(a)

#-------------------------------------------------------

 a='asdfg\nwett\nhed\nd'

v=a.splitlines() #根据换行符进行分割成list

 print(v)

#---------------------------------------------------

 name='alexjennyADDkiDoHeLLo'

v=name.swapcase()

print(v)#小写和大写之间的相互转换(小变大,大变小)

#----------------------------------------------------

 intab='abcdefg'

 outab='1234567'

 s='abcdefgabcdefg'

 a=trantab=maketrans(intab,outab)

s.translate(trantab)

 print(a)       #转换

#------------------------------------------------------ 140 #s='alexjennyailalisa'

v=s.replace('a','m',4)#让m替换a,替换的个数为4 142 #print(v)

三、bool布尔值

真或假(1或0)

四、列表

列表中的元素可以是任意类型,是一个集合。

列表中的元素可以被修改。

基本操作:

L=['alex','jenny','danny','liming']

索引:index()

切片:L[]

追加:append()

删除:pop()和remove()   del L[2:4]

长度:len(L)

循环:for x in L:

包含:'alex' in L

例子:

# _*_ encoding:utf-8 _*_

__author__ ='listen'

__date__ ='2019/5/9 10:16'

#_*_ encoding:utf-8 _*_

list=['jenny','danny','alex','steven','alex']

#---------------------------------------------方法

list.append('listen')#在原值后追加 list.append([1,2])

print(list)#['jenny', 'danny', 'alex', 'steven', 'alex', 'listen']

# #------------------------------

b=list.count('alex')#2 计数

print(b)

# #----------------------------------

list1=['nihao','hi']

print(list+list1)#['jenny', 'danny', 'alex', 'steven', 'alex', 'nihao', 'hi']

list.extend(list1)#扩展必须是可迭代对象(在内部执行的for循环)

print(list)#['jenny', 'danny', 'alex', 'steven', 'alex', 'listen', 'nihao', 'hi']

# #---------------------------------------

print(list.index('danny'))#1 根据值获取当前值索引的位置

#---------------------------------------

list.insert(0,'name')#在某位置插入某个元素

print(list)#['name', 'jenny', 'danny', 'alex', 'steven', 'alex']

#--------------------------------------

list.pop(0)#返回被删除的值

print(list)#['danny', 'alex', 'steven', 'alex'] 没有参数默认是移除最后一个元素,有参数按照参数指定位置(索引)移除元素

#---------------------------------------

list.remove('jenny')

print(list)#把指定值移除 删除左边优先

#------------------------------------------

list.reverse()

print(list)#把列表中的元素倒叙输出,回文 ['alex', 'steven', 'alex', 'danny', 'jenny']

#-------------------------------------------

list.sort()

print(list)#对原列表进行排序,默认英文字母排序(升序),可以设置参数reverse=True是降序

#------------------------(--------------------

print(list[2:])#切片 第三个元素到最后

print(list[-1])#取最后一个元素

print(list[1:3])#[1,3)

print(list[1] )#取第二个元素

print(len(list))#list的长度

a=['hi']

print(a*3 )#['hi', 'hi', 'hi']

print('hi' in a)#True  'hi'在列表a中吗? 包含

for xin list:

print(x)#可迭代

#----------------------------------------------------函数

list2=['how','are','you']

list3=['ni','hao','ya']

print(cmp(list2,list3))#比较两个列表的大小asci对应的-  1(右边的)  0 (平局) 1 (左边的)

print(max(list))#steven

print(min(list))

tuple1=(1,2,3,4,5)

print(list(tuple1))#[1, 2, 3, 4, 5]  list()函数 tuple转为list

五、元组

元组基本操作:

索引---根据索引取值

切片---根据切片取值

循环---for 循环

长度---len()

包含---in

例子: 

 s='awegjslfjjnjf'

s1=list(s)     #可迭代才可以用list()方法转换成列表(内部使用for循环)---字符串转换为列表

 print(s1)

 L=['alex','hello','hi',123,34,24]

str(L)整体转换为字符串,也就是说在L外面加了一个'l'

1列表转换为字符串--需要自己写for循环(既有数字又有字符串)

 s2=''

 for i in L:

     s2+=str(i)

 print(s2)  #'alexhellohi1233424'

#2如果列表中都是字符串,么有整型

 L1=['alex','hello','hi']

 s=''.join(L1)

 print(s)

1 清空列表

li=[1,2,3,4,5]

 li.clear()

 print(li) #清空列表

2 拷贝 浅拷贝

 v=li.copy()

 print(v) #浅浅的拷贝了一下

3del 删除 remove pop clear

 del li[0:3]

 print(li) #L=[4, 5]

列表是有序的,元素可以被修改

1元组,元素不能被修改,不能增加、删除和修改(对列表的第二次加工 )

一般写元组的时候,推荐最好在最后一个元素加一个逗号

#通过索引取值

 tu=(1,2,3,'a','b')

2、索引

 v=tu[0]

 print(v)  #1

3、切片

v=tu[1:]

print(v) #(2, 3, 'a', 'b')

4、循环(遍历、迭代)为可迭代对象

 for item in tu:

     print(i)

5、转换(可迭代对象)

 s='abcdef'

li=['a','b','c']

tu=('f','s')

#字符串到列表

 v=list(s)

 print(v)#['a', 'b', 'c', 'd', 'e', 'f']

#列表到字符串

 v=''.join(li)

 print(v) #'abc'

#字符串到元组

 v=tuple(s)

 print(v) #('a', 'b', 'c', 'd', 'e', 'f')

#元组到字符串

 v='_'.join(tu)

 print(v) #f_s

#列表到元祖

 v=tuple(li)

print(v)#('a', 'b', 'c')

#元组到列表

 v=list(tu)

 print(v) #['f', 's']

6、元组、有序

元组的第一级元素是不可被修改的

 tu=(11,22,'alex',([1,2],),('a','b'),True,99,22)

v=tu[3][0][1]

 tu[3][0][1]=8  #(11, 22, 'alex', ([1, 8],), ('a', 'b'), True, 99)

 print(tu) #2

tu[3][0]=2

 print(tu)  错误的做法

#建议在元组的最后一个元素加上逗号,方便确认是元组

#方法

1、count()该值出现的次数

v=tu.count(22)

 print(v)  #2

2、index()该值索引的位置

v=tu.index(22)

 print(v)  #1从左到右找

六、字典

字典是键值对组成的

字典基本操作:

索引:dic['key']

新增:update()更新,有参数的键值对,就按照参数更新,如果没有,就新增键值对                    setdefault()字典中有设置的默认的参数(已存在,不设置),返回的是字典中的参数和所对应的值,设置默认参数字典中没有的,则返回默认键所对应的值,并把设置的添加到字典中(不存在,新添设置)

删除:del dic['key1']    pop()删除指定元素    popitem()随意删除一组键值对

键、值、键值对: keys()   values()    items()

循环:for

长度:len()

例子:

1、基本结构

info={

     'k1':'v1',

   'k2':'v2'

}

2  字典的值可以值任意类型的

3  列表、字典不能作为字典的key,元组可以作为字典的key  hash  true :1  false :0

4  字典是无序的

5、通过索引方式找到元素

 info={

   'k1':1,

   'k2':2,

     'k3':3,

     1:'a',

 (1,2,3):[1,88,9],

   'k5':[

     1,2,3,{

           'kk1':'3',

            'kk2':(11,12)

       }

    ]

#

# }

v=info['k5'][3]['kk2'][1]

 print(v) #12

6  删除字典中的元素

 del info['k1']

print(info)

7 支持 for 循环

 for item in info.keys():

   print(item)    #取key  默认是key

 for item in info.values():

   print(item)     # 取value

for k,v in info.items():

    print(k,v)

#方法 1、取出字典的key,并设置默认值为none,若有第2个参数,则为key的值

 dic={'k1':'v1',

    'k2':'v2'

    }

v=dict.fromkeys(dic,1)

 print(v)

2、通过get方法取值,若没有输入的key,则会返回none,不会报错

v=dic.get('k11')

print(v)     #none

3、items()返回的是一个list

 v=dic.items()

 print(v)      #dict_items([('k1', 'v1'), ('k2', 'v2')])

4、pop 删除指定的键值对,返回被删除键的值,popitem()没有参数,会随意删除字典中一个键值对,返回被删除的键值对的元组

dic={'k1':'v1',

     'k2':'v2'

    }

 v=dic.pop('k1')

 print(dic,v)    #{'k2': 'v2'} v1

  v=dic.popitem()

print(dic,v)        # {'k1': 'v1'} ('k2', 'v2')

5、setdefault 中的参数,字典中有设置的默认的参数(已存在,不设置),返回的是字典中的参数和所对应的值,设置默认参数字典中没有的,则返回默认键所对应的值,并把设置的添加到字典中(不存在,新添设置)

dic={'k1':'v1',

     'k2':'v2'

    }

 v=dic.setdefault('k1',1)

 v1=dic.setdefault('k111',88)

print(dic,v)  #{'k1': 'v1', 'k2': 'v2'} v1

 print(dic,v1) #{'k1': 'v1', 'k2': 'v2', 'k111': 88} 88

#6更新字典

 dic={'k1':'v1',

     'k2':'v2'

    }

 ① dic.update({'k1':123,'k3':'hi'})

print(dic)  #{'k1': 123, 'k2': 'v2', 'k3': 'hi'}

② dic.update(k1=123,k3='hi')

 print(dic)  #{'k1': 123, 'k2': 'v2', 'k3': 'hi'}

7 keys() 8  values()  items()  get  update  常用的

七、小结

总结基本的数据类型常见的用法:

 一、数字

int(...)

二、字符串

#replace/find/join/strip/startswith/split/upper/lower/format

ep='I am {name},age:{age}'

 v=ep.format(name='alex',age=17)

v=ep.format(**{'name':'alex','age':17})

 print(v)

三、列表

append、extend、insert

#索引、切片、循环

四、元组

#忽略

#索引、切片、循环  一级元素不能被修改

五、字典

get/update/keys/values/items

for,索引

六、布尔值

0  1

#bool(...)

None  ''  {}    []    ()  ====>> False  其他为真

以上就是小猿圈python的六种基本数据类型,建议大家也可以按照例子去练习,有什么不懂的地方,可以随时关注小猿圈自学网,里面有很多视频帮助你去学习哦~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • python基础二(基础数据类型) 一、引子 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分...
    go以恒阅读 372评论 0 0
  • ! /usr/bin/env python -*- coding:utf-8 -*- list 列表 在列表最后追...
    TimeSHU阅读 555评论 1 0
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 1,932评论 0 6
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,889评论 0 3
  • 可变不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 不可变类型:值改变,但...
    iskwiw阅读 463评论 0 0