python基础——4(数字、字符串、列表类型的内置方法介绍)
目录
一、可变与不可变类型
可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型
不可变类型:值改变,id也跟着改变,证明产生了新的值,是不可变类型
# 整型是不可变类型
x = 9
print(id(x))
x = 10
print(id(x))
# 列表是可变类型
l = ['a','b']
print(id(l))
l[0] = 'A'
print(l)
print(id(l))
二、数字类型
# 一、整型int
# ======================================基本使用======================================
# 1、用途:记录年龄、等级、数量
# 2、定义方式
age = 10 # 相当于age=int(10)
# 数据类型转换: 只能将纯数字的字符串转成int
x=int('123123')
print(x,type(x))
x=int('12.3') # 报错
# 二、浮点型float
# ======================================基本使用======================================
# 1、用途:记录身高、薪资、体重
# 2、定义方式
salary = 10.1 # 相当于salary=float(10.1)
# 数据类型转换: 只能将包含小数的字符串转成float
x=float('3.1')
print(x,type(x))
# ======================================该类型总结====================================
# 存一个值
# 不可变
三、字符串类型
# ======================================基本使用======================================
# 1、用途:记录描述性质的状态
# 2、定义方式:在单引号、双引号、三引号内包含一串字符串
msg='hello' # msg=str('hello')
# 数据类型转换:所有类型都可以被str转成字符串类型
res=str([1,2,3])
print(res,type(res))
# 3、常用操作+内置方法
# 优先掌握的操作(*****)
# 3.1按索引取值(正向取+反向取),只能取
msg = 'hello'
print(msg[0],type(msg[0]))
print(msg[-1]) # o
print(msg[-2]) # l
# msg[0] = 'H' # TypeError: 'str' object does not support item assignment,只能取,不能改
# 3.2、切片(顾头不顾尾,步长)
msg = 'hello world'
res = msg[0:3:1] # 0 1 2
print(res) # hel
print(msg) # hello world,原值未改变
res = msg[:]
print(res) # hello world
res = msg[::2]
print(res) # hlowrd
res = msg[-1:-12:-1]
print(res) # dlrow olleh
res = msg[-1::-1]
print(res) # dlrow olleh
res = msg[::-1]
print(res) # dlrow olleh
# 3.3、长度len
msg = 'hello world'
print(len(msg)) # 11
# 3.4、成员运算in和not in :判断一个子字符串是否存在于大字符串中
msg = 'bb is a dsb'
print('bb' in msg) #True
print('bb' not in msg) #False,推荐使用
print(not 'bb' in msg) #False
# 3.5、移除空白strip:移除字符串两边的字符,不指定默认移除空格
# 使用示例:
msg = ' he llo '
print(msg.strip()) # he llo
print('***dg**hh***'.strip('*')) # dg**hh
print('**+-/*ghj**@#$***'.strip('*+-/@#$')) # ghj
# 用户登录代码优化
name = input("username:").strip() #防止输入误加空格
pwd = input("password:").strip()
if name == 'shj' and pwd == '123':
print("welcome! handsome boy.")
else:
print("输错了。。")
# 3.6、切分split,针对某种有规律的字符串,按照某种分隔符分割成列表
info = 'shj:23:male'
print(info.split(':')) # ['shj', '23', 'male']
print(info.split(':',1)) # ['shj', '23:male'],可以指定切割次数
# 用冒号做拼接符,将纯字符串的列表拼接成一个字符串
l = ['shj','23','male'] # 'shj:23:male'
#第一种,用‘+’拼接
res = l[0]+":"+l[1]+":"+l[2]
print(res) # shj:23:male
#第二种,用join方法
res1 = ':'.join(l)
print(res1) # shj:23:male
# 3.7、循环
for i in 'hello':
print(i)
# 需要掌握的操作
# 1、strip,lstrip,rstrip
print('*****hhh*****'.strip('*')) #hhh
print('*****hhh*****'.rstrip('*')) #*****hhh
print('*****hhh*****'.lstrip('*')) #hhh*****
# 2、lower,upper:大小写转换
print('ABC'.lower()) #abc
print('abc'.upper()) #ABC
# 3、startswith,endswith:以某字符开头/结尾
msg = 'bb is dsb'
print(msg.startswith('b')) #True
print(msg.endswith('b')) #True
# 4、split,rsplit
a = 'a:b:c:d'
print(a.split(':',1)) #['a', 'b:c:d']
print(a.rsplit(':',1)) #['a:b:c', 'd']
# 5、replace(self,old,new,count)
msg = 'bb is bb hhh'
print(msg.replace('bb','sb')) #sb is sb hhh
print(msg.replace('bb','sb',1)) #sb is bb hhh
# 6、format的三种玩法
res='my name is %s my age is %s' %('egon',18)
print(res)
res='my name is {name} my age is {age}'.format(age=18,name='egon')
print(res)
# 了解以下两种即可
res='my name is {} my age is {}'.format('egon',18) #后面赋值要与前面的位置对应
res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18)
print(res)
# 7、isdigit
print('123123'.isdigit()) # 如果字符串是由纯数字(整数)组成的,则返回True
print('123123 '.isdigit())
print('123123asdf'.isdigit())
print('12312.3'.isdigit())
score=input('>>>>: ').strip() #score='asdfasdfasfd'
if score.isdigit():
score=int(score)
if score >= 90:
print('优秀')
else:
print('小垃圾')
else:
print('必须输入纯数字')
# 需要了解的操作
# 1、find,rfind,index,rindex,count
# print('123 ke123ke'.find('ke')) #查询,返回索引
# print('123 ke123ke'.rfind('ke')) #从右开始找,返回索引
# print('123 ke123ke'.index('ke')) #查询,返回索引
# print('123 ke123ke'.rindex('ke')) #从右开始找,返回索引
# print('123 ke123ke'.find('xxxx')) #查询结果不存在即返回-1
# print('123 ke123ke'.index('xxxx')) #查询结果不存在即报错
# print('123 ke123ke'.count('ke',0,6)) #统计索引0-6之间的‘ke’的个数
#2、center,ljust,rjust,zfill
# print('egon'.center(50,'*'))
# print('egon'.ljust(50,'*')) #左对齐,50位,后面不够的用*填充
# print('egon'.rjust(50,'*')) #右对齐,50位,前面不够的以*填充
# print('egon'.rjust(50,'0')) #右对齐,50位,后面不够用0填充
# print('egon'.zfill(50)) #右对齐,50位,后面不够用0填充
#3、captalize,swapcase,title
# print('abcdef dddddd'.capitalize()) #首字母大写
# print('abcAef dddddd'.swapcase()) #大小写交换
# print('abcAef dddddd'.title()) #每个单词的首字母大写
#4、is数字系列
num1=b'4' #bytes
num2='4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字
# bytes与阿拉伯数字组成的字符串
# print(num1.isdigit()) #True
# print(num2.isdigit()) #True
# print(num3.isdigit()) #False
# print(num4.isdigit()) #False
# 阿拉伯数字组成的字符串
# isdecimal():判断是否为十进制数
# print(num2.isdecimal()) #True
# print(num3.isdecimal()) #False
# print(num4.isdecimal()) #False
# 阿拉伯数字\中文\罗马组成的字符串
# isnumeric():判断是否只有数字,不能有小数点
# print(num2.isnumeric()) #True
# print(num3.isnumeric()) #True
# print(num4.isnumeric()) #True
# 补充:
print('1A'.isidentifier()) #判断是不是一个合法的标识符,返回false,标识符不能以数字开头
print('My Name Is Shj'.istitle()) #返回True,判断每个首字母是否大写
print('My Name Is Shj'.isprintable()) #tty文件,drive文件不能打印
print('My Name Is Shj'.isupper()) #判断是否全是大写
print('My Name Is Shj'.islower()) #判断是否全是小写
p = str.maketrans("abcdef",'123456') #用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,
# 第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系
print('asdfgh'.translate(p)) #输出1s46gh,根据 maketrans() 方法给出的字符映射转换表转换字符串中的字符
示例:
p = str.maketrans('0123456789','零一二三四五六七八九')
s = input(">>:")
print(s.translate(p))
#字符串转为字典
b = '''{
'bakend': 'www.oldboy.org',
'record':{
'server': '100.1.7.9',
'weight': 20,
'maxconn': 30
}
}'''
b = eval(b) #eval()可将字符串转为字典
print(b)
print(b['bakend'])
print(b['record'])
# ======================================该类型总结====================================
# 存一个值
# 有序
# 不可变
四、列表类型
# ======================================基本使用======================================
1、用途:按照位置记录多个值,索引对应值
2、定义方式:在[]内用逗号分隔开多个任意类型的值
l=['a',11,11.3,] # 相当于l=list(['a',11,11.3,])
# 数据类型转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表
res=list('hello')
res=list(123) #报错,不能转换
print(res)
res=list({'a':1,'b':2,'c':3}) # []
print(res)
# 3、常用操作+内置的方法
#优先掌握的操作:
#3.1、按索引存取值(正向存取+反向存取):即可存也可以取
l=['a','b','c','d','e']
print(l[0])
print(l[-1])
print(id(l))
l[0]='A'
print(id(l)) #值变了id不变,因此列表属于可变类型
# 强调强调强调!!!:列表对于不存在的索引会报错
# l[5]='AAAA'
# dic={"k1":111}
# dic['k2']=2222 #字典不存在的键值会加入字典中
# print(dic)
#3.2、切片(顾头不顾尾,步长)
l=['a','b','c','d','e']
print(l[1:4])
print(l[::-1])
#3.3、长度
l=['a','b','c','d','e']
print(len(l))
#3.4、成员运算in和not in
l=['a','b','c','d','e']
print('a' in l)
#3.5、追加append与insert
l=['a','b','c','d','e']
l.append('xxx')
l.append('yyy')
print(l)
l.insert(0,'xxxx')
print(l)
#3.6、删除
l=['a','bbb','c','d','e']
del是一种通用的删除操作,没有返回值
del l[0]
print(l)
dic={'k1':1}
del dic['k1']
print(dic)
# l.remove(指定要删除的那个元素),没有返回值
res=l.remove('bbb')
print(l)
print(res)
# l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素
l=['a','bbb','c','d','e']
l.pop(-1)
res=l.pop(1)
print(l)
print(res)
#3.7、循环
l=['a','b','c','d','e']
for item in l:
print(item)
# 练习:
# 队列:先进先出
l=[]
# # 入队
l.append('first')
l.append('second')
l.append('third')
print(l)
# # 出队
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
# 堆栈:后进先出
print(l.pop())
print(l.pop())
print(l.pop())
# 需要掌握的操作
l=['aaa','bb',345]
l.clear() # 清空列表
l.append([1,2,3]) #把整个[1,2,3]列表加进了l
#for循环实现把列表分离开加入l,即['aaa','bb',345,1,2,3]
for i in [1,2,3]:
l.append(i)
l.extend([1,2,3]) #一行代码搞定上面的要求
l.reverse() #反转
# 只有在类中中所有元素都是同种类型的情况下才能用sort排序
l=[1,3,2]
l.sort(reverse=True) # 加reverse=True用降序排序
l=['z','d','a']
l.sort()
print(l)
# ======================================该类型总结====================================
# 存多个值
# 有序
# 可变
# 浅copy
names = ["shj","cr","xxn",["aaa","bbb"],"xka","sdx","au"]
name2 = names.copy() #复制一份,只复制第一层列表,叫做浅copy
print(names)
print(name2)
names[2] = ("小仙")
names[3][0] = "AAA"
print(names)
print(name2) #name2没有改变
# 深copy
import copy
names = ["shj","cr","xxn",["aaa","bbb"],"xka","sdx","au"]
name2 = copy.deepcopy(names) #完全复制,深copy,需引入copy模块
print(names)
print(name2)
names[2] = ("小仙")
names[3][0] = "AAA"
print(names)
print(name2)
python基础——4(数字、字符串、列表类型的内置方法介绍)的更多相关文章
- Python基础部分:10、数据类型的内置方法和字符编码
目录 一.数据类型内置方法 1.字典dict内置方法 1.1.类型转换 2.字典必须要掌握的方法 2.1.取值方式 2.2.修改内部数据值 2.3.删除数据 2.4.统计字典中键值对个数 2.5.字典 ...
- python基础-字符串(str)类型及内置方法
字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ...
- Python:数字类型和字符串类型的内置方法
一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...
- python基础-数字类型及内置方法
--数字类型及内置方法 整型-int 用途:多用于年龄.电话.QQ号等变量 定义方法 age = 18 # age = int(18) 常用方式:多用于数学计算 # int(x)将x转换成整数,是向下 ...
- Python基础部分:9、数据的类型和内置方法
目录 一.数据类型内置方法理论 1.什么是数据内置方法 2.如何调用数据内置方法 二.整型(int)内置方法与操作 1.类型转换 2.进制数转换 三.浮点型(float)内置方法与操作 1.类型转换 ...
- python基础-列表List及内置方法
数据类型之列表-List 用途:用于存一个或多个不同类型的值 定义:通过中括号存值,每个值之间通过逗号进行分隔 l1 = [1,'a',3,'b'] 特性:有序.可变.存多个值的数据类型 常用方法: ...
- day006 数字类型和字符串类型的内置方法
首先,为什么要有数据类型? 对于不同类型的变量,需要用不同的数据类型去描述. 数字类型的内置方法 数据类型又分为整形和浮点型.以下所述的内置方法均适用于这两个类型. 必须掌握的方法*** 数据类型有基 ...
- day007 列表类型、元祖类型、 字典类型、 集合类型的内置方法
目录 列表数据类型的内置方法 作用 定义方式 优先掌握的方法 需要掌握的方法 元祖类型的内置方法 作用 定义方式 优先掌握的方法(参考列表方法) 字典类型的内置方法 作用 定义方式 优先掌握的方法 需 ...
- 字符串:各种奇葩的内置方法 - 零基础入门学习Python014
字符串:各种奇葩的内置方法 让编程改变世界 Change the world by program 字符串:各种奇葩的内置方法 或许现在又回过头来谈字符串,有些朋友可能会觉得没必要,也有些朋友会觉得不 ...
随机推荐
- 在img标签上尽量不要使用onerror事件
在img标签上尽量不要使用onerror事件 因为在之前的时候,我在本地对用户头像修改发现,如果图片加载失败, 使用onerror事件去获取一个默认地址的图片虽然这是可行的,但是如果刚好onerror ...
- Jenkins持续集成多任务之MultiJob
项目实践中,我们可能需要在多个任务发布成功后在执行某个任务,这里就需要用到MultiJob这个插件. 案例场景:有3个任务:A.B.C,其中C任务需要等A和B执行成功后才会执行,那么就要先执行A和B, ...
- IDEA远程调试hadoop程序
远程调试Hadoop各组件 Hadoop学习之配置Eclipse远程调试Hadoop IDEA远程调试hadoop Hadoop 研发之远程调试详细剖析--WordCount V2.0 eclipse ...
- Jamie and Binary Sequence (changed after round) - CodeForces 916B
http://codeforces.com/problemset/problem/916/B 好尬啊... #include<cstdio> #include<algorithm&g ...
- 利用uiautomator实现Android移动app启动时间的测试
为了减少因手工测试的反应误差,这里介绍下如何利用Android自带的自动化测试工具uiautomator实现app启动时间的测试. 测试基本思路如下: 1.启动前记录当前的时间戳 2.启动app,直至 ...
- ubuntu16.04里如何正确添加用root用户来登录图形界面(图文详解)
不多说,直接上干货! Ubuntu版本都默认不允许使用root登录,必须要改配置文件. 第一步: 首先设置root密码,利用现有管理员帐户登陆Ubuntu,在终端执行命令:sudo passwd ro ...
- linux小白成长之路12————Docker部署Nginx
[内容指引] Docker安装Nginx: 简单启动: 准备配置文件: 一.Docker安装Nginx 指令:docker pull nginx 二.简单启动 指令:docker run --name ...
- hihocoder1779 公路收费
思路: 枚举每个点做根即可. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; const l ...
- ES-自然语言处理
前言 自然语言处理(Natural Language Processing)是计算科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法.自然语言处理 ...
- scrollTop、offsetTop、clientTop
1.offsetTop: obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置. 2.clientTop: 这个返回的是元素周围边框的厚度, ...