【python数据基础】

目录

一.标识符、数值数据类型、运算符。

1.标识符

2.数值数据类型

3.常见运算符

二.python数据类型即其常见方法。

1.字符串

2.列表

3.元组

4.字典

5.集合


一.标识符、数值数据类型、运算符。

1.标识符

标识符含义:凡是我们自已起名的名字,都统称为标识符
标识符组成:只能由字母,数字,下划线组成, 不能使用关键字
在python 中,标识符是区分大小写的,比如A ,a是不一样的

命名时要做到见名知义
标识符的命名风格:
1.下划线命名法,单词字母小写,单词与单词之间用下划线连接, 比如:max_number ,test_data
max_number = 100
2.大驼峰命名法,第一个单词大写,比如: MaxNumber,TestData
MaxNumber = 100
3.小驼峰命名法,第一个单词首字符小写,第二个单词首字符大写,比如: maxNumber
maxNumber = 100

2.数值数据类型

数值类型数据:整数(int):整型、浮点数(float):小数、布尔(bool):只有两个值(True ,False)。type()方法可以查看数据类型。

3.常见运算符

赋值运算符  = += -=

比较运算符   == <>  >= <= !=
        注意:"=="只需数值相等结果即相等。
逻辑运算符  and  or not

成员运算符  in  not in

身份运算符  is  not is
        注意:'is'需指向地址相等结果才相等。

二.python数据类型即其常见方法。

1.字符串

字符串的表示方法:使用单/双引号:''/""。
1.字符串的索引、切片:
a.字符串索引(index):从前往后取:是从0开始,第一个字符下标为0,第二个为1,依次往下排
                     从后往前取:是从-1开始,和一个字符下标为-1,第二个为-2,依次往下排
b.字符串取值:利用下标索引。如:str[index]
c.字符串切片:str[头:尾:间距]。取头不取尾,尾需+1。
str = '123456789'
print(str[1:9:1])
#输出为:123456789
print(str[1:9:2])
#输出为:(13579)
注意:切片也可从后往前取:从-1开始
2.字符串拼接:
a.使用符号: +               
str1 = "python" 
str2 = "hello"
str3 = str1 + str2 
print(str3)
#输出为:'pythonhello'
b.使用方法:"连接符号".join((字符1,字符2,...))
str4 = "-".join((str1,str2))
#输出为:'python-hello' 
两个字符串之间拼接用"隔开"

3.字符串的其它常用方法。
方法        描述
find        查找指定元素的位置
count       查找元素的个数
replace     替换字符
split       字符串分割
format      格式化输出
upper       将字母转化成大写
lower       将字母转化成小写

4.字符串的转义和格式化输出:

a.字符串转义:
换行符\n
水平制表符\t
关闭转义 r
转义转义字符 \
#\n换行
s = 'hello\nworld'
#输出为:
#hello
#world

b.格式化输出。

format(),该函数把字符串当成一个模板,通过传入参数进行格式化,并且使用大括号{}作为特殊字符代替%

数据          格式       结果       描述
5.11111       {:.2f}     5.11       保留小数点后两位
2.11          {:.0f}     2          不带小数
5             {:>4}      xxx5       数字补空格(填充左边,宽度为4)
5             {:<4}      5xxx       数字补空格(填充右边,宽度为4)
0.25          {:.2%}     25.00%     百分比格式
aa            {:10}      aa         左对齐(默认,宽度为10)
aa            {:<10)    aa         右对齐(宽度为10)
aa            {:^10)     aa         中间对齐( 宽度为10)
desc_info = "本人名字:{},性别:{},年纪:{}".format("python大神","男",18)  # 这里有三个{}待输入数据占位符,就需要传3个值进去
print(desc_info)

# format高级用法
# 这里可以控制输入的数据存放位置,在括号中设置放入的位置,参数位置起始位置是0开始

s1 = "aaa:{2}bbb:{1}ccc:{0}".format("111","222","333")   # 通过下标来控制,传入数据显示的位置
print(s1)

s1 = "aaa:{c}bbb:{a}ccc:{a}".format(a="python",b="php",c="c++")   # 通过变量名来控制,传入数据显示的位置
print(s1)

s1 = "aaa:{a}bbb:{a}ccc:{a}".format(a="python")   # 通过变量名来控制,传入数据显示的位置
print(s1)

F表达式:(最好用的一种)

name = "vikesoft"
age = 15
s1 = F"年纪{age*2},姓名{name}"   # 这里F可大小写,不区别;在花括号中可以填变量或表达式
print(s1)

2.列表

列表定义形式:[], list
列表中的元素可以是任意类型,元素之间用逗号分隔
列表的基本操作: 1.下标取值(列表中的下标是从0开始)  2.切片(切片方式和字符串方式,方法一样)
# 下标方式获取(列表名[下标])
li = [18,"vikesoft",True,1.11]   # 这个列表中保存了一个数字,一个字符,一个bool
print(li[1])   # 下标方式取值,正向从0开始:0、1、2、3...逆向从-1开始:-1、-2、-3...

# 切片方式获取(列表名[头,尾,步长],步长默认为1)
print(li[1:3])  # 这里可以获取第二个,第三个值。

# 获取列表(或字符串,字典,集合,元组)中的元素数量 : len()
print(len(li))   # 获取到列表中有多少个元素

 列表的操作方法:

1  增    append(尾部增加一个元素)  insert(指定位置插入一个元素) extend(插入多个元素)
2  删    pop(默认从尾部删除一个元素,也可指定位置)  remove(删除指定元素,从前往后) clear(清空列表中所有元素)
3  查    index(查找元素的位置,找到第一个就返回结果) count(统计某一个元素的在列表中的个数)
4  改    通过下标修改值
5  其他  copy(拷贝) reverse(反向) sort(排序)
li = [1,2,3]
li.append(888)   # append方法使用 ,末尾增加
print(li)

li.insert(0,666)  # insert方法, 在下标为0的位置插入一个666
print(li)

li.extend([000,777,555])  # extent一次性添加多个元素,以列表方式
print(li)

li.remove(2)  # 删除列表中的元素2, 如果删除没有的元素,会报错
print(li)

li.pop(0)   # 根据下标来删除指定元素(默认删除尾部);这里删除下标为0的元素
print(li)

li.clear()  # 清空列表
print(li)

列表的其他方法:

# 根据元素查找对应的下标(如果找不到对应的元素,则报错) ,下标是从0开始计数
# 注意:如果列表中有两个相同的元素,则返回的是第一个元素的位置

li = [1,2,3,11,22,33,55,3]

res = li.index(3)   # 查找3在列表的下标
print(res)

res = li.count(3)   # 统计3在列表中的个数
print(res)

# 通过下标指定元素进行修改; 重新赋值的方式
li[3] = 999     # 下标为3的原来的值11,修改之后变成999
print(li)


# 列表排序,注意 列表中的数据要求是全数字
# 排序两种方式:从小到大,从大到小
li = [233,12,33,7,12,9,1,88,99,100]
li.sort()   # 这里要注意了,列表排序之后,并不返回值,所以这里要注意了
print(li)   # 这里输出是从小到大排序
li.sort(reverse=True)  # sort函数中指定reverse 为True,则返回的结果是从大到小排序
print(li)

li.reverse()    # reverse方法倒序输出列表中的元素
print(li)

li0 = [1,2,3]
li1 = li0
li2 = [1,2,3]
print(li0)
print(li1)
print(li2)


# 查看数据的内存地址标识:内置函数 id()
# 如果id地址一样,则这三个列表存储的地址是一样,否则,则不同地址
print(li0,id(li0))
print(li1,id(li1))    # 大家看到li0,li1存储的地址是相的
print(li2,id(li2))    # li2存储的地址是不同,为什么呢(这种可能面试会问到)?

li3 = li0.copy()      # 调用copy方法,将li0的内容赋值给li3
print(li3,id(li3))    # li3的地址会和li0一样吗?


# 因为li0,li1指向的同一个内存地址,li2是重新申请了一个空间

3.元组

元组 :表示形式:()、tuple
注意: 当元组中只有一个元素时,怎样定义?
列如  tu1 = (11) ,这时print(type(tu1)),显示的数据类型是int,因为小写的()是个运算符,
所有当元组中只有一个元素时,必须这样定义 tu = (11,)  ,必须在第一个元素后加个逗号

元组的元素和列表一样,可以是任意类型
操作方法 : 下标取值  切片(和字符串一样的)
元组是不可变类型的数据,定义完之后,内部数据是不可以修改的
字符串也是不可变类型的数据
列表是可变类型的数据

4.字典

字典:表现形式{}
每个元素由两部分组成,中间以:隔开,前面部分叫键,后面部分叫值(key:value)
通过字典来保存一条数据,这样有一个好的地方,就是要获取某一个值时(比如姓名),不需要知道他的下标,
只需要知道name就可以。
字典的规范:
     key: 不能重复 ,后一个会把前一个的值覆盖掉,只能是不可变类型的数据(不能用列表),如果有重复的key。
     value:可以是任意类型数据

字典的相关方法:

# ==================字典的方法:增,删,查,改===============================
# 1 增 添加元素
dic = {"a":11,"b":22,"c":33}
dic["aa"] = 888   # 这里要注意,如果字典中有同名的键,则就是修改这个键所对应的value
print(dic)

# update方法,一次性往 字典中添加多个键值对,也可以理解成将一个字典更新原来的字典中
dic.update({"aa":111,"bb":222,"cc":333})
print(dic)

# 2 修改元素
# 直接通过键去重新赋值,修改这个键所对应的值
dic["aa"] = 999
print(dic)

# 3 删除元素
# 方法1   pop 通过键去删除对应的
v = dic.pop("a")  # 删除键a所对应的键和value, 返回值就是这个键所对应的value
print(dic)
print(v)     # 删除键a所对应的键和value, 返回值就是这个键所对应的value

# 方法2   popitem ,默认删除最后一个键值对 (此方法,网上很多说是随机删除的,但python3.5后就不是随机的了,是删除最后一个
dic.popitem()
print(dic)


# 4 查找 ,方法get
res = dic.get("aa")    # 通过键aa去找对应的value,如果键不存在,则返回none
print(res)

# 5  其他方法
#  keys:获取字典中所有的键     values:获取字典中所有的值  items: 获取字典中的键值对
res = dic.keys()
print(res)
li = list(res)   # 可以通过list转换成一个列表
print(res)

res = dic.values()
print(res)
print(list(res))   # 可以通过list转换成一个列表

res = dic.items()
print(res)
print(list(res))   # 可以通过list转换成一个列表

# ================其他拓展的=========================
# del 方法
# 1 删除变量
# a = 100
# del a
# print(a)  # 这里会报错,因为变量a 被 删除了

# 2 删除列表中元素
# li = [1,2,3]
# del li[0]
# print(li)

# 3 删除字典中的键值对
# dic2 = {"aa":11,"bb":22,"cc":33}
# del dic2["bb"]
# print(dic2)

5.集合

集合的表示:{value,value,...}
空集合的定义: set()
集合的特征
     1 集合中的数据只能存放不可变类型的数据(用来区分可变,不可变类型数据)
       集合中不能放列表,也不能放字典,因为他们是可变类型
     2 集合中不能存在重复的元素(可以用来对数据进行去重处理)

集合的方法:

# 空集合
s = set()      # 定义一个集合;
print(type(s))   # 输出s的数据类型为set

# 对列表,元组进行去重
li = [11,22,11,22,33,11,22,33,5,6]
s2 = set(li)   # 通过转换成集合类型的操作来去掉重复的数据
print(s2)

li2 = list(s2)   # 再通过列表函数list将集合转换成列表进行输出,这时就去掉重复的数据了
print(li2)

li = {1,2,33,5,6,7,'aa','bb'}
li.add(999)  # 位置是随机的
print(li)

li.pop()  # 随机删除一个元素
print(li)

li.remove('bb')  # 删除指定元素
print(li)


# 集合的交集,并集,差集
# a&b    # 集合a和b中都包含了的元素
# a|b    # 集合a或b中包含 了的所有元素
# a-b    #集合a中包含而集合b中不包含的元素

#  交集举例代码
a = {1,2,3,11,22}
b = {11,22,33,44,55,1}
s = a&b
print(s)

# 并集
s2 = a|b
print(s2)

# 差集
s3 = a - b
print(s3)

# ========in  not in====================
allvalue = ["小明","小胡","小刘","abc"]
name = "小明"

# 判断一个数据是否是另一个数据中的成员
print(name in allvalue)   #  返回True

# 判断一个数据不是另一个数据中的成员
print(name not in allvalue)

# ============is  is not ================
#  身份运算符  (注意,和==不一样,==是判断两个数据值是否一致)
#  比较两个数据的id是一致 : is
#  比较两个数据的id是否不一致: is not
#  id 是查看数据的内存地址

li1 = [1,2,3]
li2 = [1,2,3]

print(li1,id(li1))
print(li2,id(li2))

print(li1 == li2)   # == 是比较数据内容是否一致
print(li1 is li2)   # is 是比较数据的id是否一样
print(li is not li2)  # is not 是比较数据的id是否是不一样,是不一样,返回True


你的鼓励是我前进的动力,一起交流学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值