博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day2-数据类型
阅读量:6248 次
发布时间:2019-06-22

本文共 8958 字,大约阅读时间需要 29 分钟。

数据类型与内置方法

数据类型

  • 数字
  • 字符串
  • 列表
  • 字典
  • 元组
  • 集合

字符串

1.用途

用来描述某个物体的特征:姓名,性别,爱好等

2.定义方式

变量名 = '字符串'如:name = 'huazai'

3.常用操作和内置方法

1.按索引取值:(只能取值,不能改变值)    通过字符串的索引值可以取到对应位置的字符    >>> name = 'huazai'    >>> name[1]    'u'    >>> name[-1]    'i'2.切片    通过索引值的范围进行取值    >>> name = 'huazai'    >>> name[0:3]  #按范围取值,默认步长为1,正向    'hua'    >>> name[-1:-4:-1]  #逆向取值    'iaz'    >>> name[0:5:2]  #按步长取值    'haa'3.长度    函数len()计算长度    >>> name = 'huazai'  #实质是调用name.__len__()    >>> len(name)    64.成员运算    in 和not in    >>> name = 'huazai'    >>> 'a' in name    True    >>> 'f' not in name    True    >>> 'f' in name    False5.移除空白strip、lstrip、rstrip    默认移除字符串开头和结尾处的空白    >>> str1 = '   hua zai   '    >>> print(str1.strip())    hua zai    #字符串中间的空白并不会移除,常用在与让用户输入内容时,对其进行处理。括号内可以指定移除的字符串    >>> str1 = '***hua zai****'    >>> print(str1.strip('*'))    hua zai    >>> print(str1.lstrip('*'))    hua zai****    >>> print(str1.rstrip('*'))    ***hua zai6.切分splist    将字符串按某种定义的符号进行拆分成列表    >>> str1 = 'root:x:0:0::/root:/bin/bash'    >>> print(str1.split(':'))    ['root', 'x', '0', '0', '', '/root', '/bin/bash']    >>> print(str1.rsplit(':',1)) #从右开始切分,只切分一次    ['root:x:0:0::/root', '/bin/bash']7.lower,upper    将字母变成大小写    >>> str1 = 'huazai'    >>> print(str1.upper())    HUAZAI    >>> str2 = 'HuaZai'    >>> print(str2.lower())    huazai8.startswith,endswith    判断字符串以什么开头、什么结尾    >>> str1 = 'huazai123'    >>> print(str1.startswith('hua'))    True    >>> print(str1.startswith('123'))    False    >>> print(str1.endswith('123'))    True9.format的三种玩法    常用在输出的时候,不需要根据占位符的位置顺序指定变量的顺序,方便,也是常用的方法。    >>> print('my name is {name},i am {age} old'.format(age=18,name='huazai'))    my name is huazai,i am 18 old10.join    将字符串已某种符号隔开,可迭代的对象必须为字符串    >>> print('*'.join(['my','name','is','huazai']))    my*name*is*huazai11.replace    将字符串1替换成字符串2,    >>> str1 = 'huazai'    >>> str2 = 'zai123'    >>> print(str1.replace('zai',str2))    huazai123    >>> print(str1) #源字符串并不会被改变,因为字符串是不可变对象    huazai    可以指定替换次数    >>> str1 = 'huazaizaizaizai'    >>> str2 = 'zai123'    >>> print(str1.replace('zai',str2,2))    huazai123zai123zaizai12.isdigit    判断一个字符串是否是数字    >>> a = 'huazai'    >>> print(a.isdigit())    False其他操作(了解部分):13.find,rfind,index,rindex,countfind    >>> str1 = 'huazai'    >>> print(str1.find('a',1,5))    2    >>> print(str1.find('l',1,5)) #不存在返回-1    -1index    >>> print(str1.index('a'))    2    >>> print(str1.index('l')) #不存在会报错    Traceback (most recent call last):      File "
", line 1, in
ValueError: substring not foundcount >>> print(str1.count('a')) 214.center,ljust,rjust,zfill >>> str1 = 'huazai' >>> print(str1.center(50,'*')) **********************huazai********************** >>> print(str1.ljust(50,'*')) huazai******************************************** >>> print(str1.rjust(50,'*')) ********************************************huazai >>> print(str1.rjust(50)) huazai >>> print(str1.zfill(50)) 00000000000000000000000000000000000000000000huazai15.expandtabs 将tab键转换成几个空格 >>> str1 = 'hua\tzai' >>> print(str1) hua zai >>> print(str1.expandtabs()) hua zai >>> print(str1.expandtabs(1)) hua zai16.captalize,swapcase,title >>> str1 = 'huA Zai' >>> print(str1.capitalize()) Hua zai >>> print(str1.swapcase()) HUa zAI >>> print(str1.title()) Hua Zai17.is数字系列 #在python3中 num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='四' #中文数字 num4='Ⅳ' #罗马数字 #isdigt:bytes,unicode print(num1.isdigit()) #True print(num2.isdigit()) #True print(num3.isdigit()) #False print(num4.isdigit()) #False #isdecimal:uncicode #bytes类型无isdecimal方法 print(num2.isdecimal()) #True print(num3.isdecimal()) #False print(num4.isdecimal()) #False #isnumberic:unicode,中文数字,罗马数字 #bytes类型无isnumberic方法 print(num2.isnumeric()) #True print(num3.isnumeric()) #True print(num4.isnumeric()) #True18.is其他 print('===>') name='huazai' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isidentifier()) print(name.islower()) print(name.isupper()) print(name.isspace()) print(name.istitle())

列表

1.用途

用来描述同一属性可以有多种,如:爱好,课程等

2.定义方式

habbies=['basketball','read','movie','music']或者L= list('basketball','read','movie','music')

3.常用操作和内置方法

1.必会操作    按索引存取值    >>> habbies=['basketball','read','movie','music']    >>> habbies[0]    'basketball'    >>> habbies[-1]    'music'    >>> habbies[2]='girls'    >>> habbies    ['basketball', 'read', 'girls', 'music']    切片(与字符串类似)    >>> habbies=['basketball','read','movie','music']    >>> habbies[0:3]    ['basketball', 'read', 'movie']    >>> habbies[0:4:2]    ['basketball', 'movie']    >>> habbies[-1:0:-1]    ['music', 'movie', 'read']    长度len    >>> habbies=['basketball','read','movie','music']    >>> len(habbies)    4    成员运算in、not in    >>> habbies=['basketball','read','movie','music']    >>> habbies=['basketball','read','movie','music']    >>> 'read' in habbies    True    >>> 'girl' not in habbies    True    追加append    >>> habbies=['basketball','read','movie','music']    >>> habbies.append('girls')    >>> habbies    ['basketball', 'read', 'movie', 'music', 'girls']    删除del、remove    >>> habbies    ['basketball', 'read', 'movie', 'music', 'girls']    >>> habbies.pop()    'girls'    >>> habbies    >>>['basketball', 'read', 'movie', 'music']    >>>habbies=['basketball','read','movie','music']    >>>habbies.remove('movie')    >>>print(habbies)    >>>['basketball', 'read', 'music']    循环:    habbies=['basketball','read','movie','music']    1. for item in habbies:          print(item)    2.i=0      while i 

字典

1.作用

将多个值以key-value的形式保存,取值速度快

2.定义

其中key是不可变类型(数字,字符串,元组),value可以是任意类型user_info = {'name':'huazai','sex':'male','age':'18'}或者user_info = dict(name='huazai',sex='male',age=18)或者{}.fromkeys(('name','sex','age'),None)

3. 常用操作

#常用操作#存取值,按key存取user_info = {'name':'huazai','sex':'male','age':'18'}print(user_info['name'])user_info['habbies']='girls'print(user_info)#长度print(len(user_info))print(user_info.__len__())#成员运算in、not inprint('name' in user_info)print('habbies' not in user_info)# 删除del user_info['name']user_info.pop('name')# 键值对操作 keys() value()  键值对itemsprint(user_info.keys())print(user_info.values())print(user_info.items())# 循环for key in user_info:    print(key,user_info[key])# 了解方法# fromkeyprint(user_info.fromkeys('name'))# clear 清空字典user_info.clear()#setdefault 如果key存在不会被覆盖,见练习二user_info.setdefault()# update 更新d = {'name':'egon'}user_info.update(d)print(user_info)# get 不存在返回Noneprint(user_info.get('habbies'))# copyL = user_info.copy()print(L)

4.练习

#练习#1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中#即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}L = [11,22,33,44,55,66,77,88,99,90]d ={'k1':[],'k2':[]}for i in L:    if i > 66:        d['k1'].append(i)    else:        d['k2'].append(i)print(d)'''2 统计s='hello alex alex say hello sb sb'中每个单词的个数结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}'''s = 'hello alex alex say hello sb sb'L = s.split(" ")print(L)d = {}for key in L:    count = L.count(key)    d.setdefault(key,count)print(d)

元组

1. 作用:

# 存储多个不可变的值,主要用来只读的数据

2. 定义

# t = (1,2,3,4,5)# t = tuple(1,2,3,4,5)

3. 常用操作和内置方法

# 掌握#  按索引取值,同列表一样,但是只能取值t = (1,2,3,'huazai')print(t[2])print(t[-1])# 切片,也同列表操作print(t[1:3])print(t[-1:0:-1])#长度print(len(t))print(t.__len__())#成员运算 in、not inprint('huazai' in t)#循环for i in t:    print(i)# 内置方法# index 元素索引位置print(t.index(1))# count 元素统计print(t.count('huazai'))

集合

1. 作用

去重,关系运算,

2. 定义

集合:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:1:每个元素必须是不可变类型(可hash,可作为字典的key)2: 没有重复的元素3:无序s1 = {1,2,2,3,4,5,6}s2 = {4,5,6,7,8,9}

3.常用操作和内置方法

#1、长度len# print(len(s1))#2、成员运算in和not in# print(2 in s1)#3、|合集print(s1 | s2)#4、&交集print(s1 & s2)#5、-差集print(s1 - s2)#6、^对称差集print(s1 ^ s2)#7、==print(s1 == s2)#8、父集:>,>=print(s1 > s2)#9、子集:<,<=print(s1 < s2)

4. 练习

'''  一.关系运算  有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合  pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}  linuxs={'wupeiqi','oldboy','gangdan'}  1. 求出即报名python又报名linux课程的学员名字集合  2. 求出所有报名的学生名字集合  3. 求出只报名python课程的学员名字  4. 求出没有同时这两门课程的学员名字集合'''# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}# linuxs={'wupeiqi','oldboy','gangdan'}# print(pythons & linuxs)# print(pythons | linuxs)# print(pythons - linuxs)# print(pythons ^ linuxs)'''二.去重   1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序   2.在上题的基础上,保存列表原来的顺序   3.去除文件中重复的行,肯定要保持文件内容的顺序不变   4.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序l=[    {'name':'egon','age':18,'sex':'male'},    {'name':'alex','age':73,'sex':'male'},    {'name':'egon','age':20,'sex':'female'},    {'name':'egon','age':18,'sex':'male'},    {'name':'egon','age':18,'sex':'male'},]  '''l = ['a','b',1,'a','a']print(set(l))L= []for i in l:    if i not in L:        L.append(i)print(L)

转载于:https://blog.51cto.com/ronghuachen/2050442

你可能感兴趣的文章
【c学习-13】
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>
清空表且自增的id重新从0开始
查看>>
[杂记]如何在LaTeX里插入高亮代码
查看>>
「常微分方程」(阿諾爾德) Page 6 問題4 經過擴張相空間的每一點有且僅有一條積分曲線...
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>
java安全证书配置
查看>>
使用erlang 建立一个自动化的灌溉系统(1)准备工作
查看>>
python 调用aiohttp
查看>>
mysql 案例~ mysql故障恢复
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
MatLab实现FFT与功率谱
查看>>
答《漫话ID》中的疑问:UniqueID和ClientID的来源
查看>>
【转】Asp.net控件开发学习笔记整理篇 - 服务器控件生命周期
查看>>
Linux下的shell编程(一)BY 四喜三顺
查看>>
javascript一些小技巧
查看>>