Python开发【第三篇】:Python基本数据类型

一、运算符

1、算数运算:

2、比较运算:

3、赋值运算:

4、逻辑运算(布尔值):

补充:1.从前到后,有括号先计算括号

    Ture OR  ==> Ture

    Ture AND ==>继续走

    False OR ==>继续走

    False AND ==>False

5、成员运算:

6、分类:

①结果是值:

  算数运算

    a = 10*10

  赋值运算

    a = a +1 或  a+=1

②结果是布尔值

  比较运算

    a = 1>5

  成员运算

    a = "文" in "郑建文"  

7.数字类型和运算

            ① 字符串:——   n1 = "alex"   n2 = 'root'   n3 = """eric"""  n4='''tony'''
                    加法:
                        n1 = "alex"
                        n2 = "sb"
                        n4 = "db"
                        n3 = n1 + n2 + n4
                        # "alexsbdb"                           
                    乘法:
                        n1 = "alex"
                        n3 = n1 * 10
            ②数字:——   age=21        weight = 64   fight = 5
                        n1 = 9
                        n2 = 2                           
                        n3 = n1 + n2  #获取两数之和
                        n3 = n1 - n2  #获取两数之差
                        n3 = n1 * n2  #获取两数之积
                        n3 = n1 / n2  #获取两数之商
                        n3 = n1 % n2  #获取两数之商的余数部分,可求奇数或偶数
                        n3 = n1 ** n2  #求幂
                        n3 = n1 // n2  #获取两数之商的整数部分
                        求奇偶题:
                            11  12  13 ...
                            num = 12                                
                            n = num % 2
                            if n == 0:
                                print('偶数')
                             else:
                                print('奇数')

二、基本数据类型

一、运算符
①+ 加
②- 减
③* 乘
④/ 除
⑤// 取商
⑥% 取余
in / not in 判断字符是否在字符串中
二、基本数据类型
# 类型:int str bool li
# 对象:根据str类型创建的一个对象,s1
# 方法:
1、数字int
a=123
a2=456
-int 将字符串转换为数字
a = "123"
print(type(a),a)
b = int(a)
print(type(b),b)

num = "0011"
v = int(num,base=2)
print(v)
-bit_lenth() 当前数字二进制至少用几位来表示
age = 5
#1 1
#2 10
#3 11
#4 100
#5 101
r = age.bit_length()
print(r)

2、字符串str
s="liang"
s.title()
注:查看字符串类型—Ctrl+左键
v = s.capitalize() #首字母大写
v = s.casefold() #英文、特殊字符对应关系的转换
v = s.lower() #英文字符大写变小写
v = s.count(self, sub, start=None, end=None) #统计子序列在字符串个数,子序列,开始位置,结束位置
v = s.encode(self, encoding='utf-8', errors='strict')
(重要)v = s.find(self,sub,start=None, end=None) #从开始往后找,找到第一个后获取其位置,>或>=
v = s.index(self, value, start=None, stop=None) #索引,从前往后找,找不到报错
(重要)v = s.format(self, *args, **kwargs) #格式化,将一个字符串中的占位符替换为指定的值
v = s.format_map(self, self, mapping) #格式化
例:test = "i am {name},age{a}"
v = test.format(name='梁伟文',age=19
v = test.format_map({"name":'梁伟文',"age":19})
或 test = "i am {0},age{1}"
v = test.format('梁伟文',19)
v = s.expandtabs(self, tabsize=8) #断句,制表
例:test = "username\temail\tpasswd\nliangweiwen\tliang@qq.com\t123"
v = test.expandtabs(20)
print(v)
(重要)v = t.join(test) #将字符串中的每一个元素按照指定分隔符进行拼接
例:test = "你是风儿我是啥"
t = "*"
v = t.join(test) 或 v = "*".join(test)
print(v)
判断字符串子序列属性
v = s.isalnum() #判断字符串中是否只包含字母和数字
v = s.isalpha() #判断字符串中是否是字母或汉字
v = s.isdecimal() #判断字符串是否是数字(1)
v = s.isdigit() #判断字符串是否是数字(1、②)
v = s.isnumeric() #判断字符串是否是数字(1、②、一)
v = s.isidentifier() #字母、数字、下划线:标识符 def class
v = s.isprintable() #判断字符串是否有不可显示的字符,如制表符、换行(\t \n)
v = s.isspace() #判断字符串是否有空格或全部是空格(不包括什么都不输)
v = s.istitle() #判断标题首字母都是大写
v = s.title() #变成标题(把所有单词变成首字母大写)
v = s.endswith(self, suffix, start=None, end=None) #判断字符串结尾子序列"ng"
v = s.startswith(self,prefix,start=None, end=None) #判断字符串开始子序列"l"
左右填充凑字符
v = s.ljust(20,*) #在字符串右边用*号填充够20个字符
v = s.rjust(20,*) #在字符串左边用*号填充够20个字符
v = s.center(20,*) #字符串居中两边用*号填充凑够20个字符
v = s.zfill(20) #在字符串左边用0填充够20个字符
判断是否是大小写,转变成大小写
v = s.islower() #判断字符串中字母是否都是小写
v = s.lower() #把字符串全部变成小写
v = s.isupper() #判断字符串是否全是大写
v = s.upper() #把字符串全部变成大写
v = s.swapcase() #把字符串反向替换(大写变小写,小写变大写)
去除左右空白、\t \n #(也可移除指定字符,优先最多匹配)
v = s.lstrip() #去左边
v = s.rstrip() #去右边
(重要)v = s.strip() #去除字符串指定子序列
对应关系和替换
m = str.maketrans("aeiou","12345") #对应关系
new_v = v.translate(m) 替换
例:v = "adfaasglkdfaslnieosjndsf"
m = str.maketrans("aeiou","12345")
new_v = v.translate(m)
print(new_v)
字符串分割
s = "testfsd\nfaslsga"
v = s.partition('s') #以s分割(从左开始第一个)
v = s.rpartition() #以s分割(从右开始第一个)
(重要)v = s.split('s',2) #以s全部分割,不显示s,参数为分割个数
v = s.rsplit('s') #以s全部分割
v = s.splitlines(True/False) #以换行符分割,True/False:是否保留换行符
#正则表达式分割(是否保留分割元素)
替换
s = "alex"
v = s.replace("ex","bbb")
v = s.replace("ex","bbb",1) #只替换第一个
print(v)
##############################7个基本魔法###################################
①join
②split
③find
④strip
⑤upper
⑥lower
⑦replace

##################################灰魔法####################################
①索引,下标,获取字符串里的某一个子序列
test = "alex"
v = test [2] #获取单个子序列
print(v)
②切片
test = "alex"
v = test [0,1] #获取子序列范围:0≥x<1
v = test [0,-1] #从最开始直接到最后一位,但不包含
print(v)
③len获取当前字符串中由几个字符组成
test = "alex"
v = len(test) #1个汉字Python3获取结果是1,Python2获取结果是3
print(v) #len列表的时候是按逗号来找的
for 循环/while循环
格式:for 变量名 in 字符串:
test = "郑建文妹子有种冲我来"
for zjw in test:
print(zjw)
或 test = "郑建文妹子有种冲我来"
index = 0
while index < len(test):
v = test[index]
print(v)
index += 1
print()
⑤for循环 break&continue
test = "郑建文妹子有种冲我来"
for zjw in test:
print(zjw)
break
for zjw in test:
continue
print(zjw)
range 创建连续数字
v = range(100) 或
v = range(0,100) #创建范围:[0-99]
v = range(0,100,5) #通过步长来创建
v = range(100,0,-1) #从大到小来创建
print(v)
for item in v:
print(item)
练习题
1.将文字对应的索引输出
test = input(">>>")
for item in range(0,len(test)):
print(test,test[item])
##################################深灰魔法####################################
深灰魔法————基本最常用的
注意:1.对于 len、join、for循环、索引、切片 在其他的数据类型也会用到
2.字符串一旦创建就不可修改,一旦修改或拼接就会重新生成字符串


################################## 列表 ####################################
################################## 列表 ####################################

3、列表 list
# list #类,列表
# li = [1,12,"age","name"] #通过list类创建的对象,变量名叫li
①基本格式:
# 中括号括起来
# 逗号分割每个元素
# 列表元素可以是数字、字符串、列表、布尔值。。。所有的都可以是元素
# 集合,内部放置任何东西
② 索引取值
# print(li[3]) #取值结果是元素
# li = [1,12,"age",[12,8,5,[0,1],"name"]
# li = [3][3][0] #索引取嵌套元素
③ 切片取值 print(li[3:5]) #取值结果是列表
④ for循环
for item in li:
print(item)
⑤ while循环
⑥ 列表元素可以被修改
# li = [1,12,"age","name"]
# li[2] = [19,20,45] #索引方式
# li[1:3] = [120,80] #切片方式
# print(li)
⑦ 删除
del——索引和切片删除
# li = [1,12,"age","name"]
# del li[1]
# del li[1:3]
# print(li)
in 操作
# li = [1,12,"age","name"]
# v = 20 in li #判断元素是否在列表内
# print(v)
⑨ 转换
#字符串可转换列表,数字类型无法转换,内部使用for循环
字符串转列表
# s = "asdfasklglmngaslfasgsdfios"
# new_li = list(s)
# print(new_li)
列表转字符串
情况一 既有数字又有字符串(使用for循环)
# li = [11,22,33,"123","alex"]
# s = ""
# for i in li:
# s = s + str(i)
# print(s)
# 输出结果:112233123alex
情况二 只有字符串(使用join的方法)
# li = ["123","alex"]
# v = "".join(li)
# print(v)
⑩ list类的方法
#对象.方法()————**对象调用**方法
1、append()——追加
# li = [11,22,33,44]
# v = li.append(5) #在列表后面追加元素
# print(v)
2、clear()——清空
# li = [11,22,33,44]
# v = li.clear()
# print(v)
3、copy()——拷贝
# li = [11,22,33,44]
# v = li.copy() #浅拷贝
# print(v)
4、count()——计数
# li = [11,22,33,44]
# v = li.count(22) #计算元素出现的次数
# print(v)
5、extand()——扩展原列表
注意扩展与追加的区别:append 整体加;extend 分别加
# li = [11,22,33,44]
# li.extend([9988,"不得了啊"]) # [11, 22, 33, 44, 9988, '不得了啊']
# print(li)
# li.append([9998,"不得了啊") # [11, 22, 33, 44, [9998, '不得了啊']]
# print(li)
# li.append("不得了") # [11, 22, 33, 44, '不得了']
# li.extend("不得了") # [11, 22, 33, 44, '不', '得', '了']
6、index()——索引(从前往后找)
# li = [11,22,33,22,44]
# v = li.index(22) # 根据值获取当前值的位置(从左到右)
# print(v)
7、insert()——指定索引位置插入元素
# li = [11,22,33,22,44]
# li.insert(0,22) # [22, 11, 22, 33, 22, 44]
# print(li)
8、删除
pop()——索引删除
# li = [11,22,33,22,44]
# li.pop()
# v = li.pop()
# print(li) # [11, 22, 33]
# print(v) # 22
# pop删除某个值(1、指定索引;2、默认值),并获取删除的值
remove()——指定元素删除
# li = [11,22,33,22,44]
# li.remove(22) # [11,33,22,44] 左边优先
# print(li)
del——索引和切片删除
# li = [1,12,"age","name"]
# del li[1]
# del li[1:3]
# print(li)
clear()——清空
9、reverse()——将当前列表进行翻转
# li = [11,22,33,22,44]
# li.reverse() # [44, 22, 33, 22, 11]
# print(li)
10、sort()——排序
# li = [11,22,33,22,44]
# li.sort() # [11, 22, 22, 33, 44]
# li.sort(reverse=Ture) # [44, 33, 22, 22, 11]
# print(li)
# 列表,有序;元素不可修改

################################## 元组 ####################################
################################## 元组 ####################################

4、元组 tuple
    ①书写格式
        # tu = (11,22,33,44,55,)
        # ** 一般写元组时候,推荐在最后加个逗号
        # ** 元组是有序的
    ②索引取值
        # tu = (11,22,33,44,55)
        # v = tu[0]
        # print(v)  ——> # 11
        # tu = (11,"alex",(22,33),[44,55],True,66,77)
        # v = tu[3][1]
        # print(v)  ——> # 55    #元组是有序的
(**)③切片取值
        # tu = (11,22,33,44,55)
        # v = [0,3]
        # print(v)  ——> # (11, 22, 33)
(**)④for循环,可迭代对象
        # tu = (11,22,33,44,55)
        # for item in tu:
        #     print(item)
(**)⑤类型转换
        # 字符串转元组
            # s = "sdfagaslgasga"
            # v = tuple(s)
            # print(v)  ——> # ('s', 'd', 'f', 'a', 'g', 'a', 's', 'l', 'g', 'a', 's', 'g', 'a')
        # 列表转元组
            # li = [11,22,33,44]
            # v = tuple(li)
            # print(v)  ——> # (11, 22, 33, 44)
        # 元组转列表
            # tu = (11,22,33,44)
            # v = list(tu)
            # print(v)  ——> # [11, 22, 33, 44]
(**)⑥join
        # tu = ("saf","sdfg")   注:只能是字符串,数字不行
        # v = "_".join(tu)
        # print(v)  ——> # saf_sdfg
    ⑦extend
        # li = ["adfa","kkgdl"]
        # v = li.extend((11,22,))
        # print(v)  ——> # ['adfa', 'kkgdl', 11, 22]
(最重要)补充:元组的第一级元素不可被修改/删除/增加
        # tu = (11,"alex",(22,33),[(44,55)],True,66,77)
        # tu[3][0] = 567
        # print(tu) ——> # (11, 'alex', (22, 33), [567], True, 66, 77)
    方法:
        # count,获取指定元素在元组中出现的次数
        # index, 索引指定元素位置

################################## 字典 ####################################
################################## 字典 ####################################

5、字典 dict
    ①基本结构
        info = {"k1":"v1","k2":"v2"}    #"k1":"v1",键值对
    ②字典的value可以是任何值,可无限嵌套
 1  info = {
 2      "k1":18,
 3      "k2":True,
 4      "K3":[
 5          11,
 6          [],
 7          (),
 8          22,
 9          33,
10          {
11              "K1":'V1'
12              'K2':'V2'
13          }
14      ]
15      "K4":(11,22,33)
16  }
17  print(info)
18  # ——> # {'k1': 18, 'k2': True, 'K3': [11, [], (), 22, 33, {'K1': 'V1', 'K2': 'V2'}], 'K4': (11, 22, 33)}

 

    ③布尔值、列表、字典不能作为字典的key
1  info = {
2      1:123,
3      "k1":123,
4      True:"wuxu"
5  }
6  print(info)

 


    ④字典是无序的
 1  info = {
 2      "k1":18,
 3      "k2":True,
 4      "K3":[
 5          11,
 6          [],
 7          (),
 8          22,
 9          33,
10          {
11              "K1":'V1'
12              'K2':'V2'
13          }
14      ]
15      "K4":(11,22,33)
16  }
17  print(info)
18  ——> # {'k1': 18, 'K4': (11, 22, 33), 'k2': True, 'K3': [11, [], (), 22, 33, {'K2': 'V2', 'K1': 'V1'}]}
19  ——> # {'K4': (11, 22, 33), 'k1': 18, 'k2': True, 'K3': [11, [], (), 22, 33, {'K1': 'V1', 'K2': 'V2'}]}

 


    ⑤索引取值
 1  info = {
 2      1:123,
 3      "k1":123,
 4      True:"wuxu",
 5      "k2":{
 6          "k3":123,
 7          "k4":456
 8      }
 9  }
10  v1 = info[1] ——》# 123
11  v2 = info["k1"]  ——》#123
12  v3 = info['k2']['k4']  ——》# 删456
13  print(v1,v2)

 


    ⑥del 删除
 1  info = {
 2      2:123,
 3      "k1":123,
 4      True:"wuxu",    # True 1    False 0
 5      "k2":{
 6          "k3":123,
 7          "k4":456
 8      }
 9  }
10  del info["k1"]
11  del info['k2']['k4']
12  print(info)

 


    ⑦for 循环
 1  info = {
 2      "k1":18,
 3      "k2":True,
 4      "K3":[
 5          11,
 6          [],
 7          (),
 8          22,
 9          33,
10          {
11              "K1":'V1'
12              'K2':'V2'
13          }
14      ]
15      "K4":(11,22,33)
16  }
17  for item in info: #——》默认循环是主key
18  print(item)
19  for item in info.keys(): #——》循环所有的key
20  print(item)
21  for item in info.values(): #——》循环所有的values
22  print(item)
23  for k,v in info.items(): #——》循环所有的key和values
24  print(k,v)

 


    ⑧方法
        1.clear()
        2.copy()
        3.fromkeys
            # v = dict.fromkeys(["k1",123,"999"],123) #根据序列,创建字典,并指定统一的值
            # print(v)  #——》{'999': 123, 'k1': 123, 123: 123}
        4.get 根据key获取值,key不存在时,可以指定默认值(None)
1 # dic = {"k1":"v1",
2 #        "k2":"v2"}
3 # v = dic.get('k1')
4 # s = dic.get("k11")
5 # i = dic.get('k22',22)
6 # print(v) #——》v1
7 # print(s) #——》None
8 # print(i) #——》22

 


        5.pop() 删除并获取值
          popitem() 随机删
1 # dic = {"k1":"v1",
2 #        "k2":"v2"}
3 # v = dic.pop('k1')
4 # s = dic.pop('k3',90)
5 # print(dic,v,s) #——》{'k2': 'v2'} v1 90

 


        6.setdefault 设置值
            已存在,不设置,获取当前key对应的值
            不存在,设置,获取当前key对应的值
1 # dic = {"k1":"v1",
2 #        "k2":"v2",
3 #        "k3":""}
4 # v1 = dic.setdefault('k1','123')
5 # v2 = dic.setdefault("k3","456")
6 # print(v1,v2)

 


        7.update() 更新
1 # dic = {"k1": "v1",
2 #        "k2": "v2"}
3 # dic.update({"k1":"123", "k3":456})
4 # dic.update(k1=123,k2=234,k3="你好")  #效果同上
5 # print(dic)    #——》{'k1': '123', 'k2': 'v2', 'k3': 456}

 


        8.最常用
            keys()
            values()
            item()
            get()
            update()

################################## 整理 ####################################
一、数字
int(...)

二、字符串
replace
find
join
strip
startswith/endswith
split
upper
lower
format

三、列表
append
extend
insert
索引、切片、循环

四、元组
索引、切片、循环 #一级元素不能被修改

五、字典
get
update
keys
values
items
for循环、索引

六、布尔值
bool()
None "" [] () 0 ==>False


 



 

posted @ 2019-08-01 22:26  Code小王子  阅读(81)  评论(0)    收藏  举报