day5 ---- 数据类型及常用方法(字符串、列表)
目录
一、数字型(整型、浮点型)
二、字符串
三、列表
四、补充前提知识
学习思路:
#======================================基本使用====================================== #1、用途#2、定义方式#3、常用操作+内置的方法#======================================该类型总结==================================== #存一个值or存多个值#有序or无序#可变or不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
前提知识:
可变类型:值变了,内存地址id 不变,这样的称为可变类型。
不可变类型:值变了,内存地址 id 也改变,称为不可变类型。
两句话(需要注意):1、id相等,值一定相等!
2、id不相等,值不一定相等!
一、数字型
整型:int
基本使用:
1、用途:记录整型数据可以存储的内容,如银行卡号,QQ号等等
2、定义:age = 18 # age = int(18)
3、内置方法:
十进制转其他进制
# 10进制转其他进制# 10进制转二进制 print(bin(12)) # 0b1100 0b表示后面的数字是二进制数# 10进制转八进制 print(oct(12)) # 0o14 0o表示后面的数字是八进制数 14 >>> 1*(8**1) + 4*(8**0))# 10进制转16进制 print(hex(12)) # 0xc 0x表示后面的数字是十六进制数
其他进制转10进制
# 其他进制转十进制print(int('1100',2)) # int可以传第二个参数,表示的是第一个参数到底是什么进制 然后转成十进制print(int('14',8))print(int('c',16))
类型总结:
1、只能存一个值
2、因为只有一个值,所以无所谓有序无序
3、不可变类型:因为值不同id也不同
浮点型:float
基本使用:
1、用途:存储使用小数记录的数据内容,如圆周率、身高、体重等等非整数型数据。
2、定义:salary = 3.1 # salary = float(3.1)
3、内置方法:可以将纯数字型字符串转为浮点型数据
res = float('1.11') >>> 1.11
二、字符串
基本使用:
1、用途:描述性
2、定义:单引号,双引号,三引号
3、内置方法:
字符串内置方法--优先需要掌握的
1、按索引取值(正向取,反向取):只能取值
s = 'hello big baby!' print(s[0]) h print(s[-1]) !
2、切片(顾头不顾尾,步长):从一个长的字符串中截取一小段形成一个新的字符串
# 左边的固定就是头,右边固定就是位 没有说按数字来分头尾 s = 'hello big baby!' print(s[0:5]) hello print(s[0:10:2]) hlobg
View Code
了解负数取值
s = 'hello big baby!'print(s[-1]) # -1 代表字符串的尾部 !print(s[0:10:-1]) # 切片取值默认是从左到右的,所以从0开始想-1取值的话,结果为空 print(s[10:0:-1]) # 切片起始定位在下标为10的位置,-1代表反方向0的位置取步长 b gib olleprint(s[-1:-10:-1]) # -1代表字符串尾部,-10代表向左取值,步长为-1 !ybab gib
了解负数取值
3、长度len(),统计字符串中字符的个数
s1 = 'CQUPT'
len(s1)
5
4、成员运算 in 和not in :判断一个子字符串是否在一个大的字符串中
print('egon' in 'egon is a big sb and he is the first handsome man in hongqiao') True print('jason' not in 'egon is the first handsome man!') True
5、去掉字符串左右两边的字符 strip ,不管两边的
注意:内置方法一律使用句点符 “.”
username = input(输入你的名字:").strip() # strip()方法可以去掉输入字符两边的空格等 if username == 'jason':print('欢迎登录!')
name1 = ' jason' name2 = 'jason' name1 == name2 # 返回False,两个变量不相等,name1中有空格 Falsename1 = ' jason'.strip() # 去掉两端的空格 name2 = 'jason' name1 == name2 True
View Code
去掉字符串中左右两端特定的字符,如
1 name = '&&&egon$$jason&&' 2 name.strip('&') 3 'egon$$jason'
去字符串左边字符 lstrip() ,去掉字符串右边字符 rstrip()
1 name = '&&&egon$$jason***' 2 name.lstrip('&') 3 'egon$$jason***' 4 name.rstrip('*') 5 '&&&egon$$jason'
6、切分 split :针对按照某种分隔符组织的字符串,可以用 split 将其切分成列表,然后取值。
1 data = 'egon|jason|sean and 小猴' 2 data.split('|') 3 ['egon', 'jason', 'sean and 小猴']
注意:1、按照什么分隔符来切分就会将该分隔符在字符串中取消
2、split切分出来的结果是一个列表
3、split 指定位置来切分
1 # split 指定位置切分 2 3 data.split('j') 4 ['egon|', 'ason|sean and 小猴']
补充:split()方法后面跟着两个参数,'特定字符' 和 ‘切割次数’
str1 = 'egon&jason&sean&tank&小猴' str1.split('&') ['egon', 'jason', 'sean', 'tank', '小猴'] str1.split('&',2) ['egon', 'jason', 'sean&tank&小猴']
7、循环
data = 'egon|jason|sean' for i in data:print(i)
需要掌握的
1、strip()、lstrip()、rstrip()
2、lower() upper() :将字符串全部转为小写或大写形式
1 name = ' jaSOn' 2 name.lower() 3 ' jason' 4 name.upper() 5 ' JASON'
3、startswith() 和 endswith() :判断字符串是以什么开头和以什么结尾!
1 data = 'shanghai is a cold city!' 2 data.startswith() #报错原因是 ()内必须输入一个元素来进行判断 3 Traceback (most recent call last): 4 File "<input>", line 1, in <module> 5 TypeError: startswith() takes at least 1 argument (0 given) 6 7 data.startswith('h') 8 False
View Code
4、format 的三种玩法(Python推荐用 format 做格式化输出,但是一般还是占位符 %s 使用的比较多)
a、第一种按位置占,原理和%s一样
1 str1 = "my name is {} my school is {}".format('jason','重邮') 2 print(str1) 3 my name is jason my school is 重邮
b、第二种是按索引占位 --- 该索引指的是format 括号里参数的索引
1 str1 = "my name is {2} my school is {2}".format('jason','重邮','信科') 2 print(str1) 3 my name is 信科 my school is 信科
c、指名道姓占位(关键字传参)
str1 = "my name is {name} my school is {school}".format(name='jason',school='重邮',room='信科') print(str1) my name is jason my school is 重邮
5、split() 、rsplit()
6、join() :将容器类型中的多个字符通过指定字符拼接成一个字符串
1 data = 'egon|jason|sean' 2 data.split("|") 3 ['egon', 'jason', 'sean'] 4 res =data.split("|") 5 res_1 = "$".join(res) # 使指定字符拼接 6 print(res_1) 7 egon$jason$sean
补充: 由以上程序结果可知,不同数据类型是无法拼接的,只能拼接字符串,因为程序结果就是字符串
7、replace() 替代方法
进行替代str = 'egon is a open boy!' str.replace('egon','jason') 'jason is a open boy!'
其中replace()还可以指定第几个元素进行替代 replace(self,old,new,count)
1 str1 = 'chongqing is beautiful city,and more and more cool girl want to eat chongqing huoguo!' 2 str1.replace('chongqing','shaghai',1) # 注意replace()里面的count 是从‘1’开始的, 3 'shaghai is beautiful city,and more and more cool girl want to eat chongqing huoguo!'
8、isdigit() :判断字符串中是否是纯数字
while True:age = input('>>>:')if age.isdigit():age = int(age)if age > 28:print('阿姨好')else:print('你他妈的能不能好好输')
View Code
需要了解的内置方法
1、find() rfind() index() rindex() count
s = 'kevin is dsb o and kevin is sb' str = s.re print(s.find('dsb')) # 返回的是d字符所在的索引值 print(s.find('xxx')) # 找不到的时候不报错返回的是-1 print(s.find('i',0,3)) # 还可以通过索引来限制查找范围 print(s.index('o')) # 返回所传字符所在的索引值 print(s.index('i',0,3)) # 返回所传字符所在的索引值 print(s.count('n')) # 统计字符出现的次数
补充:find 和 index的区别
1、find 查找指定字符出现第一个字母的索引值,可以指定查找范围,如果找不到返回-1
2、find 查找指定字符出现第一个字母的索引值,可以指定查找范围,如果找不到就会报错!
str1 = 'egon&jason&sean&tank&小猴' str1.find('egon') 0str1.find('egon',0,3) # 0~3没有索引到,返回-1 -1str1.index('egon',0,4) # 可以看出这里的查询范围也是顾头不顾尾,0~4 0str1.index('egon',0,3) # 报错! Traceback (most recent call last):
View Code
2、center() ljust() rjust() zfill()
s9 = 'jason' print(s9.center(12,'*')) print(s9.ljust(40,'$')) print(s9.rjust(40,'$')) print(s9.rjust(40,' ')) print(s9.zfill(40))
3、expandtables()
s10 = 'a\tbc' print(s10.expandtabs(100))
4、captalize() swapcase() title():将每个单词的首字母进行大写
s12 = 'hElLo WoRLD sH10' print(s12.capitalize()) # Hello world 文本收个单词的首字母大写 print(s12.swapcase()) # 大小写互换 print(s12.title()) # 每个单词的首字母大小
5、is系列--不太需要,用 isdigit() 即可
类型总结
1、只能存一个值
2、有序,(有序,但凡有索引的数据都是有序的)
3、不可变类型
三、列表 ---- 内部原理就是 for 循环
基本用法:
作用:容器
定义:[ ] 可以装多个任意类型的值,并用逗号分隔开
基本的内置方法:
str = 'abcf' list(str) ['a', 'b', 'c', 'f']
由上可以看出:list 内部原理就是for 循环,所以list内部必须放容器类型!
需要优先掌握的方法
1、按索引取值(正向取值,负向取值):既可存也可取。
2、切片(顾头不顾尾,步长)
l = [1,2,3,4]
print(l[0:4]) # 列表的切片
[1, 2, 3, 4]print(l[0:4:2]) # 列表按步长切片
[99, 3]print(l[0::]) # 第一个:默认到最后 第二个:默认步长为1
[1, 2, 3, 4]print(l[5::-2]) # 5大于列表索引下标无意义,6也行,只要大于最大索引值即可,反向取值,步长-2
[4, 2] print(l[6::-1])
[4, 3, 2, 1]l[0]=99 # 列表中的元素是可变的,由此退出列表是可变类型。
l
[99, 2, 3, 4]
3、列表元素添加*****
a、尾部添加 append()
1 list_1 = [1,2,3,4] 2 list_1.append(99) 3 list_1 4 [1, 2, 3, 4, 99]
View Code
b、指定位置添加 insert()
list_1 = [1,2,3,4]
list_1.insert(2,99) # 注意:我们添加的元素是在索引值的前面
list_1
[1, 2, 99, 3, 4]
c、添加容器,如添加列表等 用 extend()方法
list_1 = [1,2,3,4]
list_2 = [33,44,77]
list_1.extend(list_2)
list_1
[1, 2, 3, 4, 33, 44, 77]
由上述代码可以看出,extend()方法的原理就是将list_2的元素for 循环列出来,在append 添加进list_2中
4、列表删除元素
a、del() 适用于所有的操作,直接将元素删除 del (列表名[索引值])
b、 pop() 尾部弹出元素 *****
list_1 = [1,2,3,4]
list_1.pop()
4
# pop()指定位置删除元素
list_1 = [1,2,3,4]
list_1.pop(2)
3
c、remove() 删除指定的元素
list_1 = [1,2,3,4]
list_1.remove(3)
list_1
[1, 2, 4]
5、长度计算 len()
6、成员运算 in 和 not in
7、循环 for i in list:
类型总结:
1、可以存多个值
2、有序
3、可变类型:原因!!! list 内部原理如图所示
转载于:https://www.cnblogs.com/qinsungui921112/p/11126598.html
day5 ---- 数据类型及常用方法(字符串、列表)相关推荐
- python字符串,列表,字典的常用方法
本篇内容 字符串的常用方法 列表的常用方法 字典的常用方法 字符串的常用方法 center 字符居中显示,指定字符串长度,填充指定的填充字符 string = "40kuai" p ...
- python字符串筛选输出_如何在Python中过滤字符串列表
Python使用列表数据类型在顺序索引中存储多个数据.它的工作方式类似于其他编程语言的数字数组.filter()方法是Python的一种非常有用的方法.可以使用filter()方法从Python中的任 ...
- Python 字符串/列表/元组/字典之间的相互转换 - Python零基础入门教程
目录 一.字符串 str 与列表 list 1.字符串转列表 2.列表转字符串 二.字符串 str 与字典 dict 1.字符串转字典 2.字典转字符串 三.列表 list 与字典 dict 1.列表 ...
- python序列类型包括字符串_python序列类型字符串列表元组
字符串 序列:序号 列 012345678 索引 序列类型,就是带有索引的数据类型:字符串/列表/元祖 name = 'wuhao dsb' # 012345678 name3 = name[0] n ...
- python 常用字符串 列表元祖字典都 自带的函数方法
上节内容回顾和补充编程语言高级低级Python种类JavaPythoncPython *****pypy字节码 和 机器码Python程序:1. 终端:C:\python35\python.exe D ...
- java list 去空字符串_从字符串列表中删除空字符串
我想从python中的字符串列表中删除所有空字符串. 我的想法如下: while '' in str_list: str_list.remove('') 有没有更多的Python方式可以做到这一点? ...
- python基础3---循环和字符串列表
复习: 1.字符串和数字之间不能⽐⼤⼩,但可以判断是否相等(⼀定不相等) 2.在判断中使⽤or的时候,后边的判断条件⼀定要写全,不能只写⼀个数据值 对于数字来说: 0-->False,其余的全是 ...
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
本文主要是学习Python基础: Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set 本文根据廖雪峰的官方网站-Python教程,认真学习,一步一步实操并 ...
- python列表元素统计ls_给定列表ls = [1, 2, 3, 1, 2, 3],其元素包含2种数据类型,哪个选项是列表ls的数据组织维度?...
[单选题]列表ls,哪个选项对ls.append(x)的描述是正确的? [单选题]哪个选项是下面代码的输出结果? d= {'a': 1, 'b': 2, 'b': '3'} print(d['b']) ...
最新文章
- cent0S7根分区扩容以及问题解决
- 详解布局之--静态、自适应、流式、响应式
- Codeforces 1149 题解
- CYQ.Data 轻量数据访问层(八) 自定义数据表实现绑定常用的数据控件(中)
- streaming api_通过Spring Integration消费Twitter Streaming API
- python学习笔记:遍历目录
- 金蝶报表制作_BI报表不光好看,更好用,为什么很多人却还不知道?
- 2 追踪光线=》2.6 反射光线
- H3C Comware平台的优势
- R语言入门(第一篇)--R软件基本操作
- java火星坐标转百度坐标_各种地理坐标系的转换,火星坐标,百度坐标,wsg84等...
- 父亲节!程序员给父亲一份代码信
- HPnbsp;Jetdirectnbsp;打印服务器配置
- ffmpeg视频剪辑视频长度问题,视频无声音,视频卡顿问题
- C#毕设asp.net江山旅游网站管理系统(论文+源码)
- 笔记:分布式大数据技术原理(一)Hadoop 框架
- 多周期MACD趋势共振制作的方法
- 让线程按顺序执行8种方法(转载)
- 4核cpu云服务器性能,4核cpu云服务器性能测试
- 直播推流神器 Kplayer 手把手教你在B站7*24h全天直播
热门文章
- map for循环_阿里面试问我hashMap的循环姿势有哪几种?
- python爬取豆瓣电影top250的名字_Python爬虫-爬取豆瓣电影Top250
- 码匠编程:学习Web前端开发时有哪些技术点
- 处理机和处理器的区别
- python 100实例_[Python] Python 100例
- 麦克纳姆轮运动原理_光是怎样被证明是电磁波的?麦克斯韦超凡的数学统一电学和磁学!...
- react优秀项目案例_2020中国5G+工业互联网大会:鄂州2项目现场签约,2项目入选十大优秀案例...
- 理想制动力分配曲线matlab源代码_宝马进入“血拼”状态,动力倍儿棒
- freebsd php mysql_在freebsd和linux下安装mysql+php+apache2
- 如果一栋楼起火谁赔偿_太原一辆快递车起火!赶紧看看有你的包裹没?