python基础知识整理
Posted 屌丝程序猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础知识整理相关的知识,希望对你有一定的参考价值。
1 逻辑运算 and,or, not
(1)在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优
先级从左往右计算。
(2)计算下面例题的运算结果
1 3>4 or 4<3 and 1==1 #False 2 1 < 2 and 3 < 4 or 1>2 #True 3 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1# True 4 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #False 5 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #False 6 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #False
总结: x or y , x为真,值就是x,x为假,值是y;x and y, x为真,值是y,x为假,值是x。
or找真,and找假
2 python基础数据类型
(1)str
~~切片语法:str[start:end:step] start: 起始位置,end: 结束位置,step:步长
~~切片规则:顾头不顾尾
~~str 字符串操作:
1 ret6 = s13.find("tory") # 查找‘tory‘的位置, 如果没有返回-1 2 print(ret6)
3 ret8 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程序会报错
# 条件判断 s14 = "123.16" s15 = "abc" s16 = "[email protected]" # 是否由字母和数字组成 print(s14.isalnum()) print(s15.isalnum()) print(s16.isalnum()) # 是否由字母组成 print(s14.isalpha()) print(s15.isalpha()) print(s16.isalpha()) # 是否由数字组成, 不包括小数点 print(s14.isdigit()) print(s14.isdecimal()) print(s14.isnumeric()) # 这个比较牛B. 中文都识别. print(s15.isdigit()) print(s16.isdigit())
(2)列表 list
# 迭代添加 lst = ["王志文", "张一山", "苦海无涯"] lst.extend(["麻花藤", "麻花不疼"]) print(lst) #[‘王志文‘, ‘张一山‘, ‘苦海无涯‘, ‘麻花藤‘, ‘麻花不疼‘]
# 切片修改
lst[1:4:3] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步长不是1, 要注意. 元素的个数 print(lst)
#排序 lst = [1, 11, 22, 2] lst.sort() # 排序. 默认升序 print(lst) lst.sort(reverse=True) # 降序 print(lst) #反转 lst = ["太白", "太黑", "五色", "银王", "日天", "太白"] print(lst) lst.reverse() print(lst) l = len(lst) # 列表的长度 print(l)
注意,嵌套的多层列表采用降维操作.一层一层的看就好.
(3)元组 tuple
元组: 俗称不可变的列表.又被成为只读列表, 元组也是python的基本数据类型之一, 用小括号括起来, 里面可以放任何数据类型
的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能改.关于不可变, 注意: 这里元组的不可变的意思是子元素不可变. 而子元素
内部的子元素是可以变, 这取决于子元素是否是可变对象
tu = (1, "哈哈", [], "呵呵") # tu[2] = ["fdsaf"] # 这么改不行 tu[2].append("麻花藤") # 可以改了. 没报错 tu[2].append("王剑林") print(tu)
注意,元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组.
(4)字典 dict
字典中的key必须是可哈希的不可变的数据,dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. 而hash表不是连续的. 所以不能进行切片工作.
它只能通过key来获取dict中的数据,
#字典的修改 dic = {"id": 123, "name": ‘sylar‘, "age": 18} dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"} dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增. print(dic) print(dic1
#利用items()解构 print(dic.items()) # dict_items([(‘id‘, 123), (‘name‘, ‘sylar‘), (‘age‘, 18), (‘ok‘, ‘科比‘)]) 这个东西也是list. 只不过list中装的是tuple for key, value in dic.items(): # ?? 这个是解构 print(key, value) # 解构 a, b = 1, 2 print(a, b)
嵌套的字典也采用降维操作.
3 小数据池
小数据池(常量池): 把我们使用过的值存储在小数据池中.供其他的变量使用.
小数据池给数字和字符串使用, 其他数据类型不存在.
对于数字: -5~256是会被加到?小数据池中的. 每次使?用都是同?一个对象.
对于字符串串:
1. 如果是纯文字信息和下划线. 那么这个对象会被添加到小数据池
2. 如果是带有特殊字符的. 那么不会被添加到小数据池. 每次都是新的
3. 如果是单?一字母*n的情况. ‘a‘*20, 在20个单位内是可以的. 超过20个单位就不会添加
到小数据池中
注意(一般情况下): 在py文件中. 如果你只是单纯的定义?个字符串串. 那么一般情况下都是会
被添加到小数据池中的. 我们可以这样认为: 在使用字符串的时候, python会帮我们把字符串进行缓存
, 在下次使?的时候直接指向这个字符串即可. 可以节省很多内存.
以上是关于python基础知识整理的主要内容,如果未能解决你的问题,请参考以下文章