一、基本知识
2.一行多条语句:
3.断行:
4.注释
'''这是一段 多行注释'''
5. 变量
1. 变量类型(局部变量、全局变量、系统变量)
2. 变量赋值
多重赋值x=y=z=1
多元赋值x,y = y,x
3. 变量自增 x+=1 x-=1(不支持x++, x--)
***Python3中没有常量******
二、Python的基本数据类型(6种)
1.数字Number
1. 种类
1. 整型int(Python3中没有长整型,int长度几乎没有限制)
2. 浮点型float
3. 布尔型bool
**False: 0,0.0,'',[],(),{}
**True: 除False以外,['']或[[],[]]不是False
4. 复数型complex
2. 操作符: +,-,*,/,//(地板除),**(乘方)
***Python3中的/是真实除,1/2=0.5*****
3. 类型转换
1. str(): 其他类型转为字符串, 如str(12)
2. int(): 字符串数字转为整型(字符串不是纯整数会报错), 如int("12")
3. float(): 字符串转换为浮点数,如float("1.23")
2.字符串String
1. 字符串系统方法
- len(): 计算字符串长度,如len("abcdefg")
- find()/index(): 查找字符串中某个字符第一次出现的索引(index()方法查找不到会报错), 如"abcdefg".find("b"); "abcedfgg".index("g")
- lower()/upper(): 将字符串转换为全小写/大写,如"AbcdeF".lower();"abcedF".upper()
- isdigit()/isalpha()/isalnum(): 判断字符串是否纯数字/纯字母/纯数字字母组合, 如isdigit("123"),结果为 True
- count(): 查询字符串中某个元素的数量,如"aabcabc".count("a")
- join(): 将列表元素按字符串连接,如"".join(["a","b","c"])会按空字符连接列表元素,得到"abc"
- replace(): 替换字符串中的某已部分,如"hello,java".replace("java", "python"),将java 替换为 python
- split(): 和join相反,将字符串按分隔符分割成列表, 如"a,b,c,d".split(",")得到["a", "b", "c", "d"]
- strip()/lstrip()/rstrip(): 去掉字符串左右/左边/右边的无意字符(包括空格,换行等非显示字符),如" this has blanks \n".strip()得到"this has balnks"
2. 字符串格式化
- %: 如"Name: %s, Age: %d" % ("Lily", 12)或"Name: %(name)s, Age: %(age)d" % {"name": "Lily", "age": 12}
- format: 如"Name: {}, Age: {}".format("Lily", 12)或"Name: {name}, Age: {age}".format(name="Lily",age=12)
- substitude(不完全替换会报错)/safe_substitude: 如"Name: ${name}, Age: ${age}".safe_substitude(name="Lily",age=12)
列表元素支持各种对象的混合支持嵌套各种对象如["a", 1, {"b": 3}, [1,2,3]]
1. 列表操作
赋值: l = [1, "hello", ("a", "b")]
获取: a = l[0] # 通过索引获取
增: l.append("c");l.extend(["d","e"]);l+["f"]
删: l.pop() # 按索引删除,无参数默认删除最后一个;l.remove("c") # 按元素删除 改:l[1]="HELLO" # 通过索引修改
查: 遍历 for i in l: print(i)
2. 列表系统方法
append()/insert()/extend(): 添加/插入/扩展(连接) index(): 获取元素索引
count(): 统计元素个数
pop()/remove(): 按索引/元素删除 sort()/reverse(): 排序/反转
例如: 字符串反转s="abcdefg"; r=''.join(reversed(a))
- 4.元组tuple
-
1. 不可改变,常用作函数参数(安全性好)
2. 同样支持混合元素以及嵌套
3. 只有一个元素时,必须加","号,如a=("hello",) - 因为Python中()还有分组的含义,不加","会识别为字符串
*****字符串/列表/元组统称为序列有相似的结构和操作方法*****
-
5.集合set
1.集合可以通过序列生成a = set([1,2,3]) 2.集合无序,元素不重复(所有元素为可哈希元素) 3.集合分为可变集合set和不可变集合frozenset
4.操作方法: 联合|,交集&,差集-,对称差分^
5.系统函数: add()/update()/remove()/discard()/pop()/clear()
6.字典dict
- 字典是由若干key-value对组成, 字典是无序的, 字典的key不能重复,而且必须是可哈希的,通常是字符串 字典操作
- 赋值: d = {"a":1, "b":2}
- 获取: a = d['a']或a = d.get("a") # d中不存在"a"元素时不会报错 增: d["c"] = 3; d.update({"d":5, "e": 6}
- 删: d.pop("d");d.clear() # 清空
- 查: d.has_key("c")
- 遍历:
遍历key: for key in d:或for key in d.keys():
- 遍历value: for value in d.values():遍历key-value对: for item in d.items():
三、序列相关操作方法
1.索引
- 正反索引: `l[3];l[-1]`
- 索引溢出(IndexError): 当索引大于序列的最大索引时会报错,如[1,2,3,4]最大索引是3,引用l[4]会报IndexError
2.切片
- l[1:3] # 从列表索引1到索引3(不包含索引3)进行截取, 如 l = [1, 2, 3, 4, 5], l[1:3]为[2, 3]
- l[:5:2] # 第一个表示开始索引(留空0), 第二个表示结束索引(留空为最后一个,即-1), 第三个是步长, 即从开头到第5个(不包含第5个),跳一个取一个
例如: 字符串反转 s="abcdefg";r=s[::-1]
3.遍历
- 按元素遍历: for item in l: print(item)
- 按索引遍历: for index in range(len(l)): print(l[index])
- 按枚举遍历: for i,v in enumerate(l): print((i,v))
4. 扩展/连接(添加多个元素): extend()/+ "abc"+"123";[1,2,3]+[4,5];[1,2,3].extend([4,5,6,7])
5. 类型互转: str()/list()/tuple()
****list转str一般用join(), strl转ist一般用split()******
6.系统函数
- len(): 计算长度
- max()/min(): 求最大/最小元素
- sorted()/reversed(): 排序/反转并生成新序列(sort()/reverse()直接操作原序列)l_new=sorted(l);l_new2=reversed(l)