目录

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

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



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