输入数据类型;通过按住ctr键可以追到各种数据类型底层类的实现方法。
1.数字 int
a = "123"
(1)b = int (a) //int 方法将字符串转换成数字类型
type(a)//获得变量a的类型。
type(b)//---
v = int (a , base = 2/8/16)//将字符串以2进制/8进制/16进制转换成数字类型
age = 10
(2)age.bit_length()//计算数字至少需要多少位二进制位表示
2.字符串str
strm = "ADAG"'
strm.capitalize()//将首字母大写
下面这两个方法都是将大写变成小写,lower是普通用法、case fold可以用于很多未知字符的转换
strm.lower()//变成小写
str.casefold()//
strm.islower()//判断是否全部为小写
strm.upper()//全部转变成大写
strm.isupper()//判断是否全部为大写
strm.center(20,“*”)//设置字符串宽度为20,将字符串strm居中,其余空白位置用*填充
str.ljust(20 ,"*")//将strm放在左边,右边剩余部分使用*填充
strm.rjust(20 ,"*")//将strm放在右边,左边剩余不放呢使用*填充
strm.count("ad" ,start ,end)//统计字符串中子序列在给定范围出现的次数。
strm.startwith("AD")//判断字符串是否已AD开始
strm.endwith("AG")//判断字符串是否以AG序列结尾
strm.find("AD" ,start ,end)//寻找AD在start到end范围内首次出现的位置
占位符的使用
test = ' i am {name} , age {n}'
test.format("jefy" ,16)
test.format("name" :"jefy" ,n:19)//以字典的形式格式化字符串
test.isalnum()//判断字符串中是否只是包含字母或数字
str = "username \t psw k\t denglu\tusername \t psw k\t denglu\tusername \t psw k\t denglu\t"
str.expandtabs(21)//根据给定的长度断句
print(str)
test = "addldkj"
test.isalpha()//判断test中不包含数字,即:字母和汉子
//判断字符串中是否完全是数字
test.isdecimal()//判断字符串中是否完全是数字、其中包括特殊字符数字
dest.isdigit()//
dest.isnumeric()//
dest.isprintable()//判断字符串中是否包含不可显示的字符;如:\t \n--
test.isspace()//判断字符串是否完全是空格,是为true,否则为false
test.title()//转换成标题
test.istitle()//判断是否为标题
“-”.join(test)//通过特殊字符将字符串中的每个字符拼接
“ ”.join(test)//
test.lstrip()//默认去掉字符串左边的空格或空行
test.lstrip("as")//字符串按照从左到右的顺序和给定的字符串匹配,按照有多到少的匹配顺序去除字符串
test.rstrip()//默认去掉字符串右边的空格或空行
test.rstrip("SAA")//
test.strip()//去掉字符串前后的空格
str1 = "sajflhk"
str2 = "1234567"
v = jllskjfl;ak
#建立对应关系
m = str.maketrans(str1 ,str2)
v.translate(m)//将v中出现的str1,使用str2替换
v.partition("S")//从左至右,在由此出现s的位置将字符串分割成3分
v.rpartition("S")//从右至左,--
v.split("s")//将字符串在所有s处分割,分割的值不包含s
v.split("S" ,2)//从左至右,指定s的个数2,进行分割
v.rsplit("S")//按照从右至左的顺序进行分割
v.splitlines(true/false)//根据字符串中的换行符进行分割,true为保留换行符,false为不保留换行符
v.startwith(”A“)//判断字符串是否以--开始
v.endwith(”A“)//判断字符串是否以--结束
v.swapcase()//将字符串中的大小写相互转换
test = "adagddahjsgfahjta"
通过下表/索引访问字符串中的元素
test[0]==a
切片
test[0 ,2] == "ad"
test[0,-1] //得到从第一个到倒数第二个字符
//-1表示最后一个,-2倒数第二个字符,-3表示倒数第三个
len(test)//获得字符串长度
test.split('a')//将字符串转换成列表
for循环//
for item in test :
print(test[item])
while index < len(test):
v = test[index]
index+=1
print(v)
字符串一旦创建就不能再被修改:原因是内存是连续的,若添加/删除/修改字符串内容,如要将字符串修改位子后面的所有子移动,这是基本不会实现的。
字符串一旦重新赋值或拼接,会在静态存储区重新开辟一块内存空间,将指针指向重新开辟的内存空间。
replace()
test = "ADagahagshaaj"
test.replace("AD" ,"fff" ,3)//用字符串fff替换前3次出现过的AD。
v = range(100)//生成0-99连续数字;等价于range(0 ,100)
v1 = range(0 ,100 ,5)//生成步长为5,0-99的一系列数据
任意输入以字符串,显示输入的内容,并显示每个字符对应的索引
在python2.7版本中,.len()计算字符串字节总数;在python中.len()计算字符串中字符个数。
python中各种基本类型之间的相互转换
a = 123
v= str(a)//整形转换成字符串
a = "1231"
v = int(a)//字符串转换成整形
v = bool(a)//将字符串转换成bool型
实现加法运算 结果为14
3.列表list
列表是可以容纳任何类型数据的一个集合
li = [1,2,[1,2] ,"ad"]
li[1]== 2//可以通过下标访问列表
li[0,3]//通过切片访问列表
li[0 ,-1]//
while index <5:
index += i
print(li[index])
字符串被创建后不能被修改,列表元素是可以被修改的。
del li[1]//删除列表指定索引处元素值
li[0:3] = ["13" ,2 ,[1,2,3]]//改变列表指定索引处的值
del li[0:3]//通过切片形式删除元素
v = 2 in li //返回true
v1 = 2 in li[2] //2在列表的列表中,结果返回true
将列表转换成字符串
若列表中只有字符串的情况
li = ["Adf" ,"adkl" ,"akdl"]
v = "".join(li)//将只包含字符串的列表转换成字符串
若列表中既有数字,又有字符串,则使用for 循环将列表转换成字符串
li.append(5)//在原列表的尾端添加元素5,
li.append([12,23,334])//将列表作为一个整体,直接添加到元列表中作为一个元素。
li.extend()//扩展原列表, 传入的参数必须是可迭代对象 ;如字符串,列表等
.extend()//对参入的参数进行for遍历,然后一个个元素追加到列表中
li.clear()//清空列表,[]
v = li.copy()//浅拷贝
i = li.count(12)//计算某个元素出现的次数
b = li.index(12)//找某个元素的位置
li.insert(0 ,99)//在0号位置插入99
b = li.pop()//删除列表最后一个至,并返回该值
b = li.pop(1)//删除指定索引位置的值,并返回该值
li.remove(12)//删除列表中指定的值
li.reverse()//将列表中的元素位置,按次序反转。
li.sort()//将列表中的元素从小到大排序
li.sort(reverse = true)//将列表中元素按照从大到小的次序反转
4.元组tuple
元组定义 k = (12,345,)//在元组最后最好加上逗号,当元组只有一个元素是,用以区分方法。
元组不能被修改,增加/删除。
可以通过索引、切片、for循环遍历。
4.1字符串/元组/列表之间的相互转换
s = "akdfjla"
li = [13, 23 ,"akjdfjl"]
t = (5 ,23 ,"akld")
v = tuple(s)//字符串转换成元组
v = tuple(li)//列表转换成元组
v = list(t)//元组转换成列表
5.字典dict
字典定义:k = {12:"232" ,"akd":"q4"}
字典中的value可以是任意类型"
k = {"qw":"akdfjl" ,"akd":12 ,"akfj":true ,"dfk":[12,34,"ak"] ,"alkd":(12,234 ,"akd") ,"akl":{"lk":1}}
字典中的key值不能是列表、字典(因为这两种值可以被修改)
5.1通过索引的方式拿到字典中的value
比如:拿到value 1
k["akl"]["lk"]就能得到字典中字典的值1
5.2删除value
del k["qw"]//通过字典的key删除对应的value
5.3 for 循环遍历字典
k = {"qw":"akdfjl" ,"akd":12 ,"akfj":true ,"dfk":[12,34,"ak"] ,"alkd":(12,234 ,"akd") ,"akl":{"lk":1}}
for item in k.keys():
print(item)//遍历字典中的key
print(item ,k[item])//通过遍历字典的key,同时打印key&&value
for item in k.value()
print(item)//遍历字典中的value
for k ,v in k.items()
print(k,v)//直接遍历字典中的key/value
5.4 使用静态方法生成字典
dict.fromkeys([12,"sf"] ,23)//根据列表的值生成字典的key,字典的值统一为23
如:v ={12:23 ,“sf":23}
通过字典键取值v[23]//字典中不存在该键,故报错
v.get(key ,default value)//若字典中的key 不存在,则返回default value ,若key存在,则返回字典中的值
v.pop(key)//通过key,移除字典中的键值对,并返回该键值对
v.popitem()//随机删除一个字典中的键值对,并返回该键值对
v.setdefault("alkd" ,"akd:")//向字典中添加新键值对,若添加的键已经存在,则返回已有的键值对,若不存在,则返回新添加的键值对
v.update(k1 = 1,k2 = 4 ,k3="sak")//若字典中已存在新添加的key,则跟新对应的值,若不存在key,则将键值对添加到字典中
v.update(“alkdf":12)//更新字典键值对
6.布尔bool