python 集中基本数据类型

输入数据类型;通过按住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 	 psw k	 denglu	username 	 psw k	 denglu	username 	 psw k	 denglu	"
str.expandtabs(21)//根据给定的长度断句
print(str)
test = "addldkj"
test.isalpha()//判断test中不包含数字,即:字母和汉子

//判断字符串中是否完全是数字
test.isdecimal()//判断字符串中是否完全是数字、其中包括特殊字符数字
dest.isdigit()//
dest.isnumeric()//

dest.isprintable()//判断字符串中是否包含不可显示的字符;如: --
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

 

原文地址:https://www.cnblogs.com/jefy/p/9194072.html