python基础(二)——基本数据类型

时间:2022-12-21 14:56:05

1.数字

int (整型)

   在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

   在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

注意:

 ·在python3中,不管数字有多大 都是int

 ·在python2中,数字过大之后为 long ,长整型

--强制类型转换,将字符转为数字

a = '123'
print(type(a),a)  # str
b = int(a)
print(type(b),b)  # int

--二进制:

num = '0011'
v = int(num,base = 2)    # 2进制转10进制
print(v)          # 3

--十六进制:

num = 'a'
v = int (num,base = 16)  # 16进制转10进制
print(v)          # 10

--bit_lenght

#当前数字的二进制,至少用n位表示 

2.字符串(引号)

string = "name"                                    

string = 'name'

string = '''name'''

string = """name"""       以上都是字符串

赋值   name = "hello world"

加法   name1 =  "小"

         name2 = "明"

         name3 = name1 + name2

乘法:

         name = "小明"

         name1 = name * 10     #结果 10个小明  

字符串常用功能: 移除空白、分割、长度、索引、切片。

【1】方法:

    rapitalize()  #首字母大写

    casefold()   #所有变小写,很多未知的字符都会变成相应的小写

    lower()        #大写字母变小写

    islower()     #判断是否是小写 

    isupper()    #小写换大写

    upper()       #判断是否是大写

    center(20,'*')         #设置宽度,并将内容居中; 20:总长度,*填充(一个字符,可有可无)

    ljust(20,'*')    #字符放左边

    rjust(20,'*')    #字符放右边

    count()        #在字符串中寻找,子序列的个数, 2、3 参数是,起始和结束位置。(左闭右开区间)

    endwith()    #是否以参数结尾

    startwith()    #是否以参数开头

    find()            #从开始往后找,找到第一个获取其位置。 2、3 参数是,起始和结束位置。(左闭右开区间),未找到返回-1

    format()        #格式化,将字符串中(花括号)内容替换。

eg:

test = 'i am {name}'
v = test.format(name = 'Liang')

#按顺序替换

test = 'i am {0},age is {}'
v = test.format('Liang',19)

format_map()

test = 'i am {name}'
print(test)   #i am name
v = test.format_map({'name': 'apple'})    #与format 书写类型不同,但功能相同
print(v)      #i am apple

index()    #找到返回索引,但是未找到会报错,建议用find

test = 'i am superman'
v = test.index(am)
print(v) # 2

isalnum()    #字符串中,是否只包含 字母和数字。 返回值 bool

test = '123aaa'
v = test.isalnum()
print(v) #True

isalpha()          #是否是字母,汉字

isdecimal()      #是否是数字,十进制

isdigit()           #是否是数字

isnumeric()     #是否是数字

isprintable()    #是否存在不可显示的字符  eg: \t 制表符    \n换行

issapce()         #是否全部是空格

istitle()            #是否是标题格式(首字母大写)

title()               #转换成标题的样式

expandtabs()    #断句 20。

s = 'username\temail\tpassword\nMr.liang\tliang@163.com\t123\nMr.liang\tliang@163.com\t123'
print(s.expandtabs(20)) 

结果:

username         email                       password
Mr.liang            liang@163.com       123

Mr.liang            liang@163.com       123

swapcasse()    #大小写转换

#字母,数学,下划线:标识符, def  class

a = 'def'
v = a.isidentifier()
print(v)  #True

lstrip()    #无参,去除左边空白,\t、\n      指定内容也可以去掉,下同

 rstrip()    #去除右边空白,\t、\n

strip()       #去除左右空白,\t、\n

maketrans()

translate()  #组合使用,替换。

v = 'adsjifoaifja'
m = str.maketrans('aeiou','12345')
new_v = v.translate(m)
print(new_v)        #1dsj3f413fj1

replace()    #替换

test = 'hellohellohello'
v = test.replace('ll','xx',2)  把前两个ll 替换成xx
print(v)    #hexxohexxohello

分割

partition()

rpartition()

split()

rsplit()

splitlines()    #根据换行分割   参数 : true,false 是否保留换行。

join()    #将字符串中的每一个元素按照指定的分隔符进行拼接

test = 'hello'
v = ' '.join(test)
print(v)    #h e l l o
常用:
join, split , find , strip ,upper , lower ,replace、len 、for 、索引、切片

【2】取字符: #索引下标

切片

test = 'hello'
v= test[0]
print(v)  # h
v1 = test[0:2]
print(v1)  # he 

#python3 :  len获取当前字符串中由几个字符组成

test = '你好'
v = len(v)
print(v)    #3

注:1.在python2中,一个汉字三个字符。  此结果为 6

       2.字符串在修改或者拼接时,会在内容里创建一个新的字符串,占用另一个块内存。

(3)布尔  True 真 ; False 假

空字符串为假     “”:假 ;  “

3.列表   有序的可以被修改

创建:

name_list = ['小明',19]
or
name_list = list(['小明',19])

1.列表可以嵌套。

2.列表中的元素:数字、字符串、列表、布尔值.....所有的都能当进去。

3.基本操作:索引、切片、追加、删除、长度、循环、包含。

(1)索引取值: name_list[1] # 小明

(2)切片取值:name_list[0:2] # ['小明',19]  #结果也是列表

(3)循环:

name_list = ['小明',19]
for i in name_list:
    print(i)

(4)切片

修改

name_list = ['小明',19]
name_list[1:2] = [20]

删除

name_list = ['小明',19]
del name_list[0:1]

(5)索引

修改

name_list = ['小明',19]
name_list[1] = 20

删除

name_list = ['小明',19]
del name_list[1]

(6)in操作

name_list = ['小明',19]
v = 19 in name_list    #True

(7)嵌套

name_list = ['小明',19]
name_list[0][1]    #明

(8)字符串转换列表, list('string')  内部使用for循环

【1】.有数字、字符串

n = ['123',4567,89]
s = ''
for i in n:
    s += str(i)
print(s)

【2】.直接字符串join方法,只有字符串

n = ['123','456']
v = ''.join(n)
print(v)

4.方法(11个)

append()    #整个追加到最后

n = [11,22,33]
n.append(44)

clear()    #清空

n = [11,22,33]
n.clear()

copy()    #拷贝

n = [11,22,33]
v = n.copy()

count()    #计算元素出现的次数

n = [11,22,33]
v = v.count(22)

extend()    #扩展列表,把每个元素循环加入列表

n = [11,22,33]
li.extend(44,55)

index()    #根据值获取当前索引位置(左边优先)

n = [11,22,33]
v = n.index(22) 

insert()    #指定索引位置插入,参数1,插入位置;参数2,插入内容。

n = [11,22,33]
li.insert(0,99)

pop()    #删除某个值(1.指定索引;2默认最后的值),并获取删除的值

n = [11,22,33]
v = n.pop()    

remove()    #删除指定值,左边优先

n = [11,22,33]
n.remove(11)

PS: pop, remove, del,  clear

reverse()    #反转

n = [11,22,33]
n.reverse()

sort()    

n = [11,22,44,33]
n.sort()    #小到大
n.sort(reverse=Ture)    #大到小

4.元组          

1.创建:

n = (11,22,33)
或
n = tuple((11,22,33))

2.基本操作:索引、切片、循环、长度、包含

(2)索引

tu = (11,22,33,44)
v = tu[0]

切片

tu = (11,22,33,44)
v = tu[0:2]
 

循环(可迭代对象)

tu = (11,22,33,44)
for i in tu:
    print(i)

3.方法

count()    #获取元组中的指定元素出现的次数。

index()    #获取元素中的指定元素的所有位置。

注:元组的一级元素不可被修改、删除、增加

       一般写元组的时候,在最后括号之前加一个逗号

       字符串、元组、列表三者之间可以相互转换

5.字典         

(1)创建:

n = {'name': 'mr.liang','age': 19}    #两个键值对一个key,一个value
或
n = dict({'name': 'mr.liang','age': 19})

(2)value可以是任何值;列表、字段不能作为字典的key

(3)字典是无序的

(4)常用操作:索引、新增、删除、(键,值,键值对)、循环、长度

索引

info = {'k1':11,'k2':22,'k3':33}
v = info['k1']

删除

info = {'k1':11,'k2':22,'k3':33}
del info['k1']

循环

info = {'k1':11,'k2':22,'k3':33}
for i in info:
    print(i,info[i])       
info = {'k1':11,'k2':22,'k3':33}
for k,v in info.items():
    print(k,v)    

(5)方法

clear()

copy()

fromkeys()    #根据序列,创建字段,并指定统一的值

dict = {'k1': 1}
v = dict.formkeys(['k2'],22)
print(v)            #{'k1': 22}

get()        #根据key取值,key不存在时,取第二个参数。

d = {'k1': 22}
d.get('k1',11)

pop()    #  删除并获取值。 当key不存在时,返回第二个参数。

d = {'k1':1,'k2':2}
v = d.pop('k1',0)

setdefault()    #设置值,已存在,不设置,获取当前key对应的值;不存在,则设置,获取当前对应key的值

d = {'k1':1}
v = d.setdefault('k2',1)

update()    #存在的更新,不存在添加。

d = {'k1':1}
d.update({'k1':11,'k2':22})
或 d.update(k1=11,k2=22)

重要:

keys()、values()、item()、get()、update()



其它                                                                                                                        

1.  for 循环

用户可按照顺序迭代对象中的内容

break、continue

test = '妹子有种冲我来'
for i in test:
    print(i)

2.  range()   创建连续数字

range(1,2,3)    1:起始位置 ,2:结束位置, 3:步长

注意:在python2中, range(100) 会创建内存,打印内容为0-99

          在python2中,xrange(),与在python3中的效果一样,在for循环里一个一个创建

          在python3中,range(100)则不会创建内存,打印内容为range(0,100),只有在for循环里才会创建内存。

for i in range(10):
    print(i)    #打印0-9

3.  enumerate 

 给迭代对象添加序号

test = '放着我来'
for i,v in enumerate(test):
    print(i,v)    #输出结果一个字一个字输出

总结:

一、数字

1.int()

二、字符串

repalce、find、join、strip、startwith、split、upper、lower、format

tempalte = 'i am {name}, age : {age}'

v = tempalte.format(name = 'Liang', age = 19)

#v = tempalte.format(**{'name': 'Liang', 'age' : 19})

三、列表

append、extend、insert

索引、切片、循环

四、元组

索引、切片、循环

一级元素不能被修改、删除、增加

五、字典

get、update、keys、values、items、

循环、索引

字典可以使用in操作,

六、布尔值

None、‘’、()、[]、{} 0 - ----->  False


可变与不可变

1.可变:列表、字典

2.不可变:字符串、数字、元组


访问顺序:

1.顺序访问:字符串、列表、元组

2.映射:字典


存放元素个数:

容器类型:列表、元组、字典

原子:数字、字符串。