目录
一.标识符、数值数据类型、运算符。
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
你的鼓励是我前进的动力,一起交流学习!