python--002--数据类型(int、str)
1. 整型 int
int()、bit_length()
v = int("a", base=16) # 表示以16进制转换a
print(v)
age = 5
r = age.bit_length() # 输出二进制表示age要用几位
print(r)
2. 字符传 str
1) capitalize() 将字符串首字母大写
swapcase() 将大写转换为小写,将小写转换为大写;大小写转换
test = "wendy" v = test.capitalize() # 将字符串首字母大写 print(v)
输出为: Wendy
test = "SHFJSHFKDjdjdjjdgg"
v = test.swapcase()#大小写转换
print(v)
output:
shfjshfkdJDJDJJDGG
2) casefold() 、lower() 都是将所有字符变为小写,casefold比lower更厉害,对很多其他未知的都可以变小写
test = "wEnDy"
v = test.casefold() # 将所有字符变小写
print(v)
输出为:wendy
test = "wEnDy"
v = test.lower() # 将所有字符变小写
print(v)
输出为:wendy
3)count() 去字符串中寻找,子序列出现的次数
test = "wEnDy"
v = test.count("D") # 去字符串test中寻找,子序列D出现的次数
print(v)
输出为:1
4) endswith()、startswith() 以什么结束和开始,返回true或false
test = "wEnDy"
v = test.startswith("w") # 以什么开始
v1 = test.endswith("d") # 以什么结束
print(v,v1)
输出:True False
5)find() 从开始往后找,找到第一个后,返回其位置。与index功能一样,不过如果找不到fin返回 -1 ,而index会直接报错,所以find更常用
index() 与find功能一样
test = "wEnDy" v = test.find("D") # 从开始往后找,找到第一个后,获取其位置 print(v)
输出:3
test = "wEnDy"
v = test.index("D") # 从开始往后找,找到第一个后,获取其位置
print(v)
输出为3
6)format() 格式化,将第一个字符串中的占位符替换为指定的值,第二种方式必须从0开始,依次赋值
format_map() 与format的区别是传入字典形式的参数
test ='I am {name},age is {age}'
v=test.format(name="wendy",age=19) #第一种方式
print(v)
test1 ='I am {0},age is {1}'
v1=test1.format('wendy',19) # 第二种方式
print(v1)
输出均为:I am wendy,age is 19
test = 'I am {name},age is {age}'
v = test.format_map({"name": 'wendy', "age": 19}) # 传入字典形式的参数
print(v)
输出也为:I am wendy,age is 19
7)expandtabs(x) x个为一段,遇到\t后补充空格至x位,最后一段不管,打印出来像表格
test="name\temail\tpwd\nlishining\tlishining@.com\t123\n "
v=test.expandtabs(15) # 15个为一段,遇到\t后补充空格至15位,最后一段不管
print(v)
输出为:
name email pwd
lishining lishining@.com 123
8) isalnum() 判断是否只包含数字和字母
isalpha() 表示是否是字母或汉字
isdecimal() # 表示是否是数字,最常用
isdigit() # 表示是否是数字,比isdecimal更厉害,能识别特殊字符
isnumeric() # 表示是否是数字,最厉害,能识别中文的一二,但是最常用的是第一个isdecimal
isprintable()# 表示是否存在不可显示的字符,类似于有转义字符就会为false
isspace()#表示是否全部是空格
istitle()#判断是否是标题(每个词首字母大写)
title()#将字符串变为标题(每个词首字母大写)
9) islower()、isupper() #判断是否是大小写
lower()、upper() #将字符变为大写或小写
10) join() 将每个字之间加上指定的空格或_等指定的字符
test (= "你是风儿"
v = "_".join(test) # 将每个字之间加上指定的空格、_
v2 = " ".join(test)
print(v,v2)
output 你_是_风_儿 你 是 风 儿
11)ljust()、rjust()、center()、zfill()
test = "addd"
v = test.ljust(20, "*") # 字符在最左边,其余用*填充
print(v)
v = test.rjust(20, "*") # 字符在最右边,其余用*填充
print(v)
v = test.center(20, "*") # 字符在中间,其余用指定的*填充
print(v)
v = test.zfill(20) # 左边用0填充,字符在最右边
print(v)
output:
addd****************
****************addd
********addd********
0000000000000000addd
12) lstrip()、rstrip()、strip() 去除字符串左边或右边的空格,其中strip()同时去除左右的空格
还可以指定要移除的字符:v=test.lstrip(“x”)# 从左边开始移出指定字符,优先最多匹配
test = " addd dhdj\t "
v=test.lstrip()# l代表left左边
print(v)
v=test.rstrip()# r代表右边
print(v)
v=test.strip() #去除字符串左边或右边空格,也可以去除\t\n
print(v)
output:
addd dhdj #注:此处是有空格的
addd dhdj
addd dhdj
13) m=str.maketrans(“seiou”,“12345”) #建立对应关系
newv=test.translate(m) # 按照m对应关系进行替换test中的字符
test.replace("aa", "bb", 2) # 表示替换将aa替换为bb,替换2次
test = "sgjawouaagggbd"
m = str.maketrans("seiou", "12345") # 建立对应关系
newv = test.translate(m) # 按照m对应关系进行替换test中的字符
print(newv)
V = test.replace("aa", "bb", 2) # 表示替换将aa替换为bb,替换2次
print(V)
output:
1gjaw45aagggbd
sgjawoubbgggbd
14)分割
partition("s")# 找到第一个s进行分割成3份,包含s
rpartition("s")#从右边找到第一个s进行分割成3份,其中s为1份
split("s")# 以s进行分割,但拿不到s
splitlines()#按行进行分割,可以设置true或false是否保留换行符
test = "ghhsgjawouaagsggbd\tjfhjdkdsfifjfjf"
v=test.partition("s")# 找到第一个s进行分割成3份,包含s
print(v)
v=test.rpartition("s")#从右边找到第一个s进行分割成3份,其中s为1份
print(v)
v=test.split("s")# 以s进行分割,但拿不到s
print(v)
v=test.split("s",2)#2代表分割2次
print(v)
v=test.splitlines()#按行进行分割,可以设置true或false是否保留换行符
print(v)
output:
('ghh', 's', 'gjawouaagsggbd\tjfhjdkdsfifjfjf')
('ghhsgjawouaagsggbd\tjfhjdkd', 's', 'fifjfjf')
['ghh', 'gjawouaag', 'ggbd\tjfhjdkd', 'fifjfjf']
['ghh', 'gjawouaag', 'ggbd\tjfhjdkdsfifjfjf']
['ghhsgjawouaagsggbd\tjfhjdkdsfifjfjf']
最重要的:join、split、find、strip、upper、lower、replace
3. 字符串的其他用法:
len、for模块、索引、切片
注意:字符串一旦创建不可修改,一旦修改或拼接,就会在内存中重新生成字符串
len---可以取长度
v = len(test)
for i in test:
pass
test[2] --取值
test[0:2] --取一段值
4. range()在python2 和3的区别
V=range(100)
Python3中循环的时候才一个一个生成数字,python2中,使用range创建后马上就创建了0到99
Python2 中xrange---循环的时候才一个一个的生成
for i in range(0,100,1) # 取值从小到大
for i in range(100,0,-1) # 取值从大到小