基本数据类型
1、数字(int)
在python3中,所有数字都是int类型
在python2中,有int类型和long类型
2、字符串(str)
3、列表(list)
4、元组(tuple)
5、字典(dict)
6、布尔值(bool)
pycharm 小贴士:
用鼠标指向函数,点住ctrl,点击鼠标左键,可以定位到函数
********************************************************************
# 数字int类型
- int #转换为数字类型
a = '123' # 字符串是字符串类型
b = int(a) # 转换为数字类型
b = b + 1000
print(type(a),a) # 查看a的类型
print(type(b),b) # 查看b的类型
num = '0011'
v = int(num,base = 2) #base转换2进制为10进制
num = 'a'
v = int(num, base = 16) #将字符串a用16进制转化为10进制,结果为10
print(v)
- bit_length() #返回2进制长度
age = 10
r = age.bit_length(age) #返回10的2进制长度,结果为7
print(r)
*********************************************************************
#字符串类型 str
#首字母大写
test = 'alex'
test.capitalize() #首字母大写,结果是Alex
#变为小写字母
test = 'aLex'
test.casefold() #将字母变为小写字母,这个更厉害,有很多未知的对应关系
test.lower() #将字母变为小写字母
#使用字符串填充,字符串居中
test.center(20) #一共20个字符,将文本居中
test.center(20,*) #一共20个字符,将文本居中,空格用*代替,代替字符只能是1个字符
# 使用字符串填充
test = 'alex'
test.ljust(20, "*") # 字符串在左边
test.rjust(20, "*") # 字符串在右边
#使用0填充字符串
test.zfill(20) #使用0进行填充,最后写alex
#寻找字符串中子序列的出现次数,可以指定起始位置和结束位置
test = 'alexalex'
test.count('ex') #计算在字符串中出现的次数,结果是2
test.count('ex',5) #从第五个字符开始寻找,结果是1
test.count('ex',5,6) #从第五个开始到第六个结束,结果是0
encode #后面讲
#判断字符串的起始和结尾字符
test.endswith('a') #判断字符串是否以a结尾,结果为False
test.startswith('a') #判断字符串是否以a开始
#字符串根据制表符断句转换
test = '12345678\t9'
test.expandtabs(6) #把字符串中的 tab 符号('\t')转为空格,
#这一句写法的意思是,从开始按每6个进行转换,遇到包含/t的时候,看/t在6个字符串中的位置,以最多6个进行填充
test = 'username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123'
test.expandtabs(20)
#可以输出一个有格式的文本列
#寻找字符串中的内容
test = 'alexalex'
test.find('ex') #从前往后寻找字符串,返回字符串起点位置
test.find('ex',5,7) #设置起点位置和结束位置,现在的结果是-1,是没找到的意思
#大于等于5,小于7的意思
# 格式化字符,将一个字符串中的占位符号替换为指定的值
test = 'i am {name}'
test.format(name = 'alex') #将大括号内的字符,代替为alex,结果是i am alex
test = 'i am {name},age {a}'
test.format(name='alex',a=19) #结果为i am alex,age 19
test = 'i am {0},age {1}'
test.format('alex',19) #结果也为i am alex,age 19,根据替换的顺序进行替换,从0开始
test = 'i am {name},age {a}'
test.format_map({'name':'alex','a':19}) #传入的值必须采用这种写法
#字符串寻找
text.index('8') #跟find功能类似,没有找到的时候程序报错
#替换字符
test = 'alexalexalex'
test.replace('ex','bbb') #用bbb替换字符串中的ex
test.replace('ex','bbb',2) #用bbb替换字符串中的ex,只替换前两个
#判断字符串中只包含数字和字母
test = 'uasf890_+'
test.isalnum() #运行结果为False
test = 'uasf890'
test.isalnum() #运行结果为True
#判断字符串中只包含字母
test = 'uasf890'
test.isalpha() #运行结果为False
test = 'uasf'
test.isalpha() #运行结果为True
#判断是否为数字
test = '123'
test = '②' #特殊数字
test.isdecimal() #判断是否为十进制小数,正常数字输出的是True,特殊的输出的是False
test.isdigit() #判断是否为数字(包含了特殊符号),正常数字输出的是True,特殊的输出的也是True
test.isnumeric() #判断是否为数字(包含了特殊符号和中文),正常数字输出的是True,特殊的输出的也是True
# 字母、数字、下划线:标识符
test = '_123'
test.isidentifier() #判断是否为正确标识符(函数名),返回布尔值。数字不能作为第一个字符
#判断是否包含的所有字符都可以输出,没有不可显示的内容,如:/t
test = 'lfjsdak\tljfkla'
test.isprintable() #此时输出的是False
#是否全部都是空格,如果是空字符串的时候输出False
test.isspace()
#是否是标题(每一个字符都是标题,首字母全部大写?)
test.istitle()
#转换全部字符串中的每一个字符都是标题,首字母全部大写
test.title()
#将字符串中的每一个元素按照指定的分隔符进行拼接
test = '你是风儿我是沙'
t = ' '
t.join('test') #在每个字符中间增加一个空格
' '.join(test) #这个跟上面的一行是一个结果
#转换为小写
test = 'Alex'
test.islower() #判断是否全部是小写
test.lower() #将全部字符变为小写
#转换为大写
test.isupper() #判断是否全部是大写
test.upper() #将全部字符变为大写
#删除空格以及制表符、以及指定的字符,优先匹配最多匹配结果
test = ' alex '
test.lstrip() #将左边的空格删除
test.rstrip() #将右边的空格删除
test.strip() #将全部的空格删除
test = 'xalex'
test.lstrip('9lexex') #从左边删除字符串中的所有字符,先进行最多匹配,再进行下一次匹配
#按照规则替换相应的字符
m = str.maketrans('aeiou','12345') #首先指定一个字符的对应关系
test = 'fjkasjflasjflasl;fjllkdsajfl;asfj' #设置一串字符
new_test = test.translate(m) #按照规则将字符进行替换
#分割字符串
test = 'testjflsajfdslkjfl'
test.partition('s') #从字符串左边开始,按照s进行分割,分割成为3个字符串
test.rpartition('s') #从字符串右边开始,按照s进行分割,分割成为3个字符串
test.split('s') #将字符串中的全部字符,按照s进行分割成为n份,s就没了
test.split('s',2) #从左开始,按s进行分割2次,s消失
test.rstrip('s') #从右边开始,按s进行分割
# 正则表达式也可以进行分割,并且可以自己进行设置分割的元素,是否保留
test.splitlines() #根据换行符进行分割,参数True保留换行符,False不保留换行符
#判断字符串以??开头??结尾
test = 'backend 1.1.1'
test.startswith('a') #判断字符串是否以a开头
test.endswith('a') #判断字符串是否以a结尾
#大小写转换
test = 'AleX'
test.swapcase() #结果为aLEx
以下是必须要掌握的:
join
split
find
strip
upper
lower
replace
********************************************************************
range #创建连续的数字,或带步长的连续的数字
v = range(100) #v就等于0至99
#python2中立即创建,python3中不创建,直至for循环时创建,并按照循环数依次创建
v = range(0,100,5) #按照5步长进行创建
for item in v:
print(item)
#range练习
test = input('...')
l = len(test)
r = range(l)
for item in r:
print(item,test[item])
#代码简写
test = input('...')
for item in range(0,len(test)):
print(item,test[item])
*************************************************************
下面提到的可以在其他数据类型中也可以使用
# 通过索引方式获取字符串的某一个字符
test = 'alex'
test[0] #这个是a
test[2] #这个是e
# 通过切片方式获取字符串的某一段字符
test[0:1] #表示一个索引范围,这个只能拿到a,这个范围是大于等于0,小于1
test[0:-1] #表示直接取到最后一个位置
#获取字符串的长度
len(test) #获取字符串的长度,如果是中文的话,也返回中文的字符长度。注:在python2中返回的是字节数,一个汉字是3个字节,返回的是汉字数*3的个数
#对于列表的话,len返回的是列表中的逗号的数量
# 下面的代码会依次取出test字符串中的字符,每一个字符一行
test = '1234567890'
for zjw in test:
print(zjw)