day2----python的基本类型
本文档的大致内容:(python使用版本3.6.4)
1 数字--int
2 布尔--bool
3 字符串--str
4 元祖--()
5 列表---['a','b']
6 字典--{}
运算符:
算数:+ - * / //(商的整数) %(余数) **(次幂)
比较:== != >= <= < >等
赋值:= += -=
逻辑运算:not and or
成员运算:in not in
一 数字
数字一般在计算的时候用的多,运算后无理数的话,总共保留16位数字
例如:print(2/3) 结果:0.6666666666666666 print(80/9) 结果为:11.428571428571429
二 布尔
其结果就两种
True 或 1 --》表示真
False 或 0 ---》表示假
优先级的大小:()> not > and >or
三 字符串
字符串一般使用 ’ ‘或 “ ”或 ’‘’ ‘’‘ 给括起来,其中’‘’ ‘’‘在多行字符串中使用
例如:
msg = ''' 床前明月光, 疑是地上霜。 举头望明月, 低头思故乡。 ''' print(msg)
View Code
字符串中含有 ’ 号时,其一般使用“”给括起来
例如: msg = "My name is 星辰, I'm 22 years old!"
3.1 字符串------增
str='hello world' str1='!!!' str2='oh' print(str+str1) #使用两种字符串拼接的方式,后拼接 结果 hello world!!! print(str2,' '+str) #使用两种字符串拼接的方式,前拼接 结果为 oh hello world str=str * 3 #使用字符串乘法的方式,重复拼接 结果为 hello worldhello worldhello world print(str)
View Code
3.2 字符串-------删
3.2.1 使用strip的方式
strip() 的用法默认删除字符串前后的空格,换行符,制表符,加上参数就能删除相应的字符串例如:strip('h') -->依次删除首尾处出现 h 的字符,strip使用删除多个字符的情况较复杂,这理先不研究str='hello world' print(str.strip('h ')) 其结果为ello world
View Code
3.2.2 strip的说明
strip 删除是字符串收尾的字符,中间不做考虑例如:
str="hello ll " print(str.strip("he")) #删除的字符可以从开头匹配:llo ll 注意最后的空格保留了print(str.strip(' ll')) #最后的空格可以不匹配:hello 后面没有空格print(str.strip("ll ")) #连着匹配后面的空格 :hello 后面没有空格print(str.strip('ll')) #在中间,原字符串不变,中间空格不能省print(str.strip('llo')) #在中间,字符串不变
3.3 字符串-------改
3.3.1使用replace的方式替
例如:s="xingchen 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen"s8=s.replace("xingchen","hehe") #默认全部替换 结果为:hehe 啊林凤娇辣椒粉 hehe 啊链接发垃圾 hehes8=s.replace("xingchen","hehe",1) #替换的数量 结果为: hehe 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen
View Code
3.4 字符串-------查
3.4.1 使用索引,索引默认是从0开始的
例如:str='abc' print(str[0]) 其结果为 aprint(str[-1]) 结果为 c
View Code
3.4.2 使用切片的方式,截取字符串的一段,(原则就是顾头不顾腚)s[起始索引:结束索引+1:步长]
例如:
str='abcdef' print(str[0:3]) 或者 print(str[:3]) --> abcprint(str[3:6]) 或者 print(str[3:100]) --->def采用步长的方式,默认步长是1,print(str[0:3:2]) ----》 acprint(str[-1:-4:-1]) --->fed # -4<-1,步长使用 -print(str[-1:-4:-2]) --->fd
View Code
3.4.3 使用split分割的方式,结果由 str ---> list
s1 = 'alex wusir taibai ritian' print(s1.split()) ---> ['alex', 'wusir', 'taibai', 'ritian'] #默认一空格分割s2 = 'alex,wusir,taibai,ritian‘ print(s2.split(,)) ----->同上 #指定以,分割s3 = 'alexwusirtaibairitian' print(s3.split('i',2)) --->['alexwus', 'rta', 'bairitian'] #指定以 i 分割,并指定两个 i,则分成了三段,按照i 出现的位置依次分割s3 = 'alexwusirtaibairitian' print(s3.split('i',100)) --》['alexwus', 'rta', 'ba', 'r', 't', 'an'] # i最多出现了5次,因此只能分成6 段
View Code
3.4.4 让 list ---> str ,可以考虑使用join的方式
l1=['alex','wusir','ritian']s10=' '.join(l1) print(s10,type(s10)) ---> alex wusir ritian <class 'str'>s11='_'.join(l1) print(s10,type(s10)) ---> alex_wusir_ritian <class 'str'>
View Code
3.4.5-1 通过元素找字符串的索引 ---》find
s = 'alexwausir's1=s.find("a") print(s1) ---> 0 #找到a的索引s2=s.find("al") print(s2) ---> 0 #找到的第一个索引作为结果s3=s.find("ax") print(s3) ---> -1 #找不到,返回值是-1
View Code
3.4.5-2 index 命令和find类似,但是找不到它会报错,而不是-1
s = 'alexwausir' s3=s.index("ax") print(s3) --》ValueError: substring not found
3.4.6 startwith和endwith 以什么为开头或结尾
s = 'alexWUsir'# s6=s.startswith('a')# s6=s.startswith('alex') #结果为True# s6=s.startswith('alexa') #结果为False# s6=s.startswith('WU',4,) #验证WU是否在索引为4的位置,结果为True# s6=s.startswith('WU',4,5) #从索引4的位置到5,也即是W,查找WU的位置,结果为False 【4,5)#s6=s.startswith('WU',4,6) #从索引4的位置到6,也即是W,查找WU的位置,结果为True [4,6)
View Code
3.5 字符串的其他用法
3.5.1 计算字符串的个数:s='abcdef' print(len(s)) ---> 6
计算字符出现的个数:print(s.count('a'))
3.5.2 判断字符串的组成
isalnum:由数字或者字母组成
isdigit:由数字组成
isalpha:由字母组成
3.5.3 将字符串填入相应的格式内----》format
第一种用法:s = "我叫{},今年{},爱好{}"s12 = s.format('太白', '25', '女') print(sl2) 第二种用法:s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"s13 = s1.format('太白', '25', '女') print(sl3)第三种用法:s3 = "我叫{name},今年{age},爱好{hobby}"s14 = s3.format(age=25,hobby='girl',name='太白') print(sl4)
View Code
3.5.4 字符串的大小写转化
s.capitalize() # 首字母大写其余字母小写s.title() #非字母隔开的每个单词首字母大写例如: s_s='2alex %wusjlfj**sjflj2%tian%2%' print(s_s.title()) 结果为: 2Alex %Wusjlfj**Sjflj2%Tian%2%s.swapcase() #大小写反转,即大写变小写,小写变大写s.upper() 全部大写 s.lower() 全部小写
View Code
四 元组 返回头部
元组:只读列表,使用(),里面的内容使用逗号隔开,里面的元素不可更改,但是如果里面嵌入列表或者字典时还是可以修改的
支持count查找某个元素的数量,例如tu.count('name')
注意: tu=(1,) tu=(1,2)是元组,tu(1)不是元组,是int
4.1 单纯的元组
不支持增、删、改,主要讲查
4.1.1 使用for循环遍历
tu = (1, 2, 33, 'alex')for i in tu:print i
View Code
4.1.2 支持索引查找
print(tu[0]) ----> 1
4.1.3 通过index查找
s=('name','a','name','alex') print(s.index('name',1)) #从‘a'开始查找 #支持index查找索引,不支持find
print(s.index('name',s.index('a'))) #从a的索引位置往后查找 name
4.2 嵌入式元组
元组中可以有列表,可以嵌入字典,元组中的列表适用列表的方法等等
五 列表
列表外面使用【】,中间元素使用逗号隔开,列表中可以嵌入列表和元组
5.1 列表的---增
5.1.1 append 其后面只能增加一个元素例如:s.append('nihao') s.append(1) s.append([1,2,3]) s.append((1,2,3))5.1.2 insert insert(位置,元素)例如:s.insert(1,'name')5.1.3 extend 是可以迭代的例如:s=[] s.extend('aaa') s.extend([1,2,3]) s.extend((4,5,6)) ---->其结果为: ['a', 'a', 'a', 1, 2, 3, 4, 5, 6]5.1.4 extend扩展字典时,只保留keys=['abc']s.extend({'a':'alex'})print(s) #['abc', 'a']
View Code
5.2 列表的---删
5.2.1 pop 根据索引删除,不能根据元素删除例如:s.pop(1)5.2.2 remove 根据元素删除例如:s.remove('name')5.2.3 del 根据索引或者切片删除 del s[]例如:del s[1] del s[0:3]5.2.4 clear清空列表内的所有元素,也即变成一个空列表例如:s.clear()5.2.5 直接使用切片的方式将一段内容清空例如: li = ['alex','wusir','eric','rain','alex']li[1:4]=''print(li) ------>['alex','alex']
View Code
5.3 列表的--改
5.3.1 根据索引修改例如:s[0]='nihao'5.3.2 根据切片修改 按照切片修改时,将删除切片区域的元素,并将要增加的字符串以单个字符的方式分别加入列表例如:l=['ni','wo','ta','women']l[:3]='afdfgaggga %*gaga\tegtgcfjaj;fjinkjnfknk'print(l) -->结果:['a', 'f', 'd', 'f', 'g', 'a', 'g', 'g', 'g', 'a', ' ', '%', '*', 'g', 'a', 'g', 'a', '\t', 'e', 'g', 't', 'g', 'c', 'f', 'j', 'a', 'j', ';', 'f', 'j', 'i', 'n', 'k', 'j', 'n', 'f', 'k', 'n', 'k', 'women']另1:加步长的情况,替换前后的元素必须一样多例如:l=['ni','wo','ta','women']l[:3:2]='ab'print(l) ----->结果为:['a', 'wo', 'b', 'women']另2:使用字典替换的情况,字典的键作为元素替换到列表中,值被抛弃例如:l=['ni','wo','ta','women']l[:3]={'username':'xingchen','hobby':'girl'}print(l) --->结果为:['username', 'hobby', 'women']另3:使用列表替换元素时,列表的每个元素成为了它的新元素例如:l=['ni','wo','ta','women']l[:3]=[11,22,33,44,'abc']print(l) ---> [11, 22, 33, 44, 'abc', 'women']
View Code
5.4 列表的---查
索引查 print(s[0])切片查 print(s[:3])切片加步长查 print(s[:3:2])for循环查 for i in s:print i判断是否包含:print('a' in s) -->显示True 或者 False当列表中嵌入列表时:print([1,2] in s)
View Code
5.5列表的其他方式:
# print(len(l)) # 总个数# print(l.count('a')) # 某个元素出现的次数# l1 = [1, 9, 8, 4, 3, 2, 6,]# l1.sort() # 正序排序# l1.sort(reverse=True) # 倒叙排序# l1.reverse() # 翻转,前后换位置# print(l1)
View Code
六 字典
字典:key-values存储,字典的键 必须是唯一的,不可重复,value 可以为任意数据类型或者对象。
字典的键可以使用的数据类型:int str tuple bool
6.1 字典的---增
根据键增加 例如: dic=[] dic['name']='xingchen' #由于name键在字典中没有,所以增加,但是如果存在的话,就会修改值
根据setdefault 例如:dic.setdefault('name','xiaobai') #无则增加,有则不变
6.2 字典的---删
6.2.1 pop 其会返回值例如:dic.pop('name') ---》其会返回键name对应的值dic.pop('不存在','此键不存在') --》删除一个不存在的键,可以预定返回的值6.2.2 popitem 3.5之前是随机删除,3.6之后是删除最后一个键值对,其括号中不加入键名例如:dic.popitem()6.2.3 clear清空 例如:dic.clear()6.2.4 del 从内存层面删除这个字典 例如:del dic
View Code
6.3 字典的---改
6.3.1 根据存在的键名改: dic['name']='wuming'6.3.2 update 根据一个字典去更新另外一个字典例如:dic = {"name": "jin", "age": 18,"sex": "male"}dic2 = {"name": "alex", "weight": 75}dic2.update(dic)print(dic2) ---->结果 {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
View Code
6.4 字典的---查
6.4.1 get 有返回值例如:dic={'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}print(dic.get('name1')) -->返回Noneprint(dic.get('name1','没有此键')) --》返回 没有此键6.4.2 for循环查 默认遍历字典的键 keys(),还可遍历字典的值 values() 键值对items()例如:for i in dic:print(dic[i])另:可以键,值分别赋值给变量for key val in dic.items():print(key val)6.4.3 使用键名查 dic['name']6.4.4 包含查询 print('name' in dic)
View Code
6.5 字典的其他用法
fromkeys的用法
例如:
dic=dict.fromkeys('abc',[]) #fromkeys命令建立一个列表,建立一个键值对后,它们指向的是同一个内存 print(dic) #{'a': [], 'b': [], 'c': []} dic['c'].append(666) #给一个键赋值,其他的也赋了同样的值 print(dic) #{'a': [666], 'b': [666], 'c': [666]} dic['a'].append(777) print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]} #如何脱离这个限制 dic['b']=[666,777] print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]} dic['c'].append('其他') print(dic) #{'a': [666, 777, '其他'], 'b': [666, 777], 'c': [666, 777, '其他']} 结果就脱离限制了
View Code
****最后:在循环列表或者字典的时候,千万不要做添加或者删除操作。应借助于其他变量如列表
例如:
将索引为奇数对应的元素删除 l1 = [11, 22, 33, 44, 55] # for i in range(len(l1)): # print(i) # print(l1) # if i % 2 == 1: # del l1[i] # print(i) # print(l1) # print(l1) #[11, 33, 44] 结果不是我们想要的 #应使用下面方法 for i in range(len(l1)-1,-1,-1):if i % 2 == 1:del l1[i] print(l1) #[11, 33, 55]
View Code
7其他 返回顶部
foramt格式化
例如 2后面两个%是为了打印%,相当于转换命令
# job = input('请输入职业:')
# hobbie = input('请输入爱好:')
# msg = '''------------ info of %s -----------
# Name : %s
# Age : %d
# job : %s
# Hobbie: %s
# ------------- end -----------------
# ''' % (name, name, int(age), job, hobbie)
# print(msg)
# print('我叫%s,今年%d,学习进度2%%' % ('xingchen', 10000))
range 范围
转载于:https://www.cnblogs.com/mmyy-blog/p/9046009.html
day2----python的基本类型相关推荐
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过 ...
- Day2 - Python基础2 列表、字典、集合 --转自金角大王
Day2 - Python基础2 列表.字典.集合 --转自金角大王 Posted on 2018-01-24 13:23 Byd_lei 阅读(41) 评论(0) 编辑 收藏 本节内容 列表.元组 ...
- 全面理解Python中的类型提示(Type Hints)
众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...
- python判断字符类型alpha_Python3.10第二个alpha版本来了!最新特性值得关注
选自towardsdatascience 作者:James Briggs 机器之心编译 编辑:陈萍 Python3.10 的第二个 alpha 版本已在 11 月初发布,相比于不久前发布的 3.9 版 ...
- python 功能 代码_让你的Python代码实现类型提示功能
Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示.为了解决这个问题,Python 3.6 新增了几个特性PE ...
- 在Python中检查类型的规范方法是什么?
检查给定对象是否为给定类型的最佳方法是什么? 如何检查对象是否从给定类型继承? 假设我有一个对象o . 如何检查是否为str ? #1楼 前往雨果: 您可能是说list而不是array ,但这指向类型 ...
- python程序设计语言是什么类型的语言-Python 是弱类型的语言 强类型和弱类型的语言区别...
Python 是弱类型的语言 在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言.C++.Java 是强类型语言的代表. 下面我们以 C++ 为例来演示强类型语 ...
- python语言必背代码-让你的Python代码实现类型提示功能
Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示.为了解决这个问题,Python 3.6 新增了几个特性PE ...
- python读文件代码-Python读取表格类型文件代码实例
这篇文章主要介绍了Python读取表格类型文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 resp = My_Request_ ...
- 聊一聊Python的变量类型判断type和isinstance
正常情况下不应该编写代码检查类型的,而应该直接假设被操作的instance具有你希望的属性,否则抛出异常. class Parrot:def fly(self):print("Parrot ...
最新文章
- 上海交大开源训练框架,支持大规模基于种群多智能体强化学习训练
- mysql设置Tooken过期时间_基于thinkPHP3.2实现微信接入及查询token值的方法
- Word中大括号内公式如何左对齐
- QPushButton
- Web框架之Django_03 路由层了解(路有层 无名分组、有名分组、反向解析、路由分发 视图层 JsonResponse,FBV、CBV、文件上传)
- 剑网三虽然是游戏,但场面堪比电影大片,发布会会带来什么惊喜?
- NOSQL系列-Redis精简版安装与Ruby测试
- python求取列表中的质数
- 绑定任意格式的XML文档到WPF的TreeView
- Swift中类的使用
- 洛谷oj---1036 选数
- ppt手动放映怎么设置_PPT如何设置幻灯片自动播放免除手动一张一张的点击
- Mac - 输入法卡顿
- 平均绝对值误差(L1_Loss)和 均方误差(L2_Loss)
- Aatcc加速器市场现状及未来发展趋势
- 美版iPhone4卡贴解锁
- 面试被问扔鸡蛋问题:100层扔鸡蛋问题(扔球问题)
- 生产计划:制定您的生产流程
- 了解Intel IPP
- 教育技术(Educational technology)学习分析和教育数据挖掘领域的SCI、SSCI、CSSCI期刊与会议