1.python基础
Python的基本数据类型:
• 整数(int),例如6 • 浮点数(float),例如6.6 • 字符串(str),例如"6","python" • 布尔值(bool),例如True、False 注:使用type()内建函数查看对象类型.
运算符:
运算符 | 描述 | 示例 |
+ | 加法 | (6 + 6) 结果12 |
- | 减法 | (6 - 6) 结果0 |
* | 乘法 | (6 * 6) 结果36 |
/ | 除 | (8 / 6) 结果1.33333333 |
// | 整除 | (8 / 6) 结果1 |
% | 取余 | (6 % 6) 结果0 |
** | 幂 | (6 ** 3) 结果46656,即6 * 6 * 6 |
() | 小括号 | 小括号用来提高运算优先级,即(1+2)*3 结果为9 |
变量: 编程语言中能储存结果或能表示值的抽象概念。
用途: 给一段数据赋予一个简短、易于记忆的名字,方便重用。
变量名=变量值 例如: name=“aliang” 多重赋值: name1, name2 = “aliang”,”lizhenliang” 变量引用: print(变量名)
格式化字符串:
操作符号 | 描述 |
%s | 字符串 |
%d | 整数 |
%f | 浮点数,可指定小数点后的精度 |
print(“hello %s”%name) 保留2位小数点: calc = 100 / 88 print('计算结果: %.2f' %calc)
赋值操作符:
操作符 | 描述 | 示例 |
= | 赋值,将=左侧的结果 赋值给等号左侧的变量 |
a = 10 b = 20 |
+= | 加法赋值 | c += a 等价 c = c + a |
-= | 减法赋值 | c -= a 等价 c = c – a |
*= | 乘法赋值 | c *= a 等价 c = c * a |
/= | 除法赋值 | c /= a 等价 c = c / a |
//= | 整除赋值 | c //= a 等价 c = c // a |
%= | 取余赋值 | c %= a 等价 c= c % a |
**= | 幂赋值 | c **= a 等价 c = c ** a |
转义符:
转义字符 | 说明 |
\n | 换行符,将光标位置移到下一行开头 |
\r | 回车符,将光标位置移到本行开头 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格 |
\b | 退格(Backspace),将光标位置移到前一列 |
\\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写 |
获取用户输入:
input()内建函数: 用于与用户交互,接收一个参数,即要向用户显示的提示或者说明,让用户知道该怎么做。 示例: name = input(“请输入你的姓名:” ) print(name)
注释:
• 一个#号表示单行注释 # print(name) • 三个单引号或者三个双引号表示多行注释 ''' 多行注释 '''
字符串格式化输出:
name = “aliang” age = 30 # 方法1 print("我的名字是%s,今年%s岁了。 " % (name, age)) # 方法2 print(f"我的名字是{name},今年{age}岁了。 ")
字符串拼接:
使用“+”可以对多个字符串进行拼接。 示例: str1 = "hello" str2 = “world" print(str1 + str2) 其他方式: • 格式化输出 • 逗号 • join() 内建函数,将序列中的元素拼接成一个字符串。
获取字符串长度:
len()内建函数: 计算字符串的长度。 语法格式: len(string)
字符串切片:
切片:截取字符串中的某部分内容 语法格式: string[start:end:step] • string 要切片的字符串 • start 要切片的第一个字符的索引(包括该字符),如果不指定默认为0 • end 要切片的最后一个字符的索引(不包括该字符),如果不指定默认为字符串的长度 • step 表示切片的步长,如果不指定默认为1 示例: 截取第5个字符: s[4] 截取第1个字符到第5个字符: s[0:5] 截取最后1个字符: s[-1]
字符串处理方法:
xxoo = "abcdef" *print("去除两边空格: %s" % xxoo.strip()) *print("感叹号替换为句号: %s" % xxoo.replace('!','.')) *print("以空格分隔切分成列表: %s" % xxoo.split(' ')) *print("w字符是否是开头: %s" % xxoo.startswith('w')) print("首字母大写: %s" % xxoo.capitalize()) print("字符l出现次数: %s" % xxoo.count('l')) print("感叹号是否结尾: %s" % xxoo.endswith('!')) print("w字符索引位置: %s" % xxoo.find('w')) # xxoo.index('W') print("格式化字符串: Hello{0} world!".format(',')) print("是否都是小写: %s" % xxoo.islower()) print("是否都是大写: %s" % xxoo.isupper()) print("所有字母转为小写: %s" % xxoo.lower()) print("所有字母转为大写: %s" % xxoo.upper()) print("切分为一个列表: %s" % xxoo.splitlines()) print("大小写互换: %s" % xxoo.swapcase())
列表:
定义列表: computer = ["主机","显示器","鼠标","键盘"]
类型 | 方法 | 用途 |
查 | index("元素") | 查看元素索引位置 |
count("元素") | 统计元素出现次数 | |
reverse() | 倒序排序元素 | |
sort() | 进行排序 | |
增 | append("元素") | 追加一个元素 |
insert(index, "元素") | 在指定索引位置插入一个元素 | |
改 | computer[index] = "元素" | 修改指定索引的值 |
删 | remove("元素") | 删除指定元素 |
pop(index=-1) | 通过索引删除元素并返回索引 |
切片:
与字符串切片使用方法一样。 语法格式: list[start:end:step] 示例: 截取第1个元素: computer[0] 截取第1个字符到第5个元素: computer[0:5] 截取第1个到倒数第2个元素: computer[0:-1] 截取最后1个元素: computer[-1]
清空列表:
• 重新初始化列表 computer = [] • del语句删除列表 del computer
元组:
定义元组: computer = ("主机","显示器","鼠标","键盘")
类型 | 方法 | 用途 |
查 | index("元素") | 查看元素索引位置 |
count("元素") | 统计元素出现次数 |
同样支持切片,与列表使用方法一样
集合:
集合(Set):是一个无序、不重复元素的序列,主要用于元素去重和关系测试
定义方法: set()函数或者大括号来创建集合。
注意:想要创建空集合,必须使用set()而不是{}。后者用于创建空字典。
定义空数组: computer = set() 定义元组: computer = {"主机","显示器","鼠标","键盘"} 或者 computer = set(["主机","显示器","鼠标","键盘","主机"])
类型 | 方法 | 用途 |
查 | 不支持,一般用for遍历 | |
增 | add("元素") | 添加元素 |
删 | remove("元素") | 删除指定元素 |
discard("元素") | 如果有元素则删除 | |
pop("元素") | 删除第1个元素并返回元素 |
列表去重:
computer = ["主机","显示器","鼠标","键盘","显示器","鼠标"] s = set(computer) print(s)
关系测试:
关系符号 | 描述 |
- | 差集 |
& | 交集 |
| | 合集、并集 |
!= | 不等于 |
== | 等于 |
对两个列表进行关系测试: a = set([1, 2, 3, 4, 5, 6]) b = set([4, 5, 6, 7, 8, 9]) # 返回a集合中元素在b集合没有的 print(a - b) # 返回b集合中元素在a集合中没有的 print(b - a) # 返回交集,即两个集合中一样的元素 print(a & b) # 返回合集,即合并去重 print(a | b) # 判断是否不相等 print(a != b) # 判断是否相等 print(a == b)
字典:
字典(Dict):是一个具有映射关系的数据结构。用于存储有一定关系的元素。
格式: d = {'key1':value1, 'key2':value2, 'key3':value3}
定义字典: computer = {"主机":5000,"显示器":1000,"鼠标":60,"键盘":150}
注意:字典通过key来访问value,因此字典中的key不允许重复。
方法 | 用途 |
computer["key"] | 获取key的值 |
computer.get("key", None) | 获取key的值,如果不存在返回None |
keys() | 获取所有键 |
values() | 获取所有值 |
items() | 获取所有键值 |
computer["key"] = value | 添加键值,如果键存在则覆盖 |
update("key") | 添加新字典 |
setdefault("key", default=None) | 如果键不存在,添加键并将值设置默认值 如果键存在返回值 |
pop("key") | 删除指定键 |
computer.popitem() | 删除最后一对键值并返回 |
字典嵌套:
字典里的值不但是可以写整数、字符串,也可以是其他数据类型,例如列表、元组、集 合、字典,这样可满足一个键还包含其他属性。 computer = {"主机":{"CPU":1300,"内存":400,"硬盘":200},"显示器":1000,"鼠标":60,"键 盘":["机械键盘","薄膜键盘"]} 操作key中字典: computer["主机"]["硬盘"] computer["主机"]["硬盘"] = "300“ 操作key中列表: computer["键盘"] computer["键盘"].append("其他")
常见数据类型转换:
函数 | 描述 |
int(x[,base]) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将对象x转换为字符串 |
tuple(seq) | 将序列seq转换为一个元组 |
list(seq) | 将序列seq转换为一个列表 |
比较操作符:
操作符 | 描述 | 示例 |
== | 相等, 两边值是否相等 | (6 == 6) 结果 True |
!= | 不相等, 两边值是否不相等 | (6 != 6) 结果False |
> | 大于, 左边值是否大于右边值 | (8 > 6) 结果True |
< | 小于, 左边值是否小于右边值 | (8 < 6) 结果False |
>= | 大于等于, 左边值是否大于等于右边值 | (6 >= 6) 结果True |
<= | 小于等于, 左边值是否小于等于右边值 | (6 <= 6) 结果True |
逻辑操作符:
操作符 | 逻辑表达式 | 描述 |
and | x and y | 与,所有的条件都 False,结果就为False True结果才为True;只要有一个为 |
or | x or y | 或,所有的条件只要有一个是True结果就为True |
not | not x | 非,结果取反 |
成员操作符:
操作符 | 描述 | 示例 |
in | 如果在指定的序列中找到值返回 True,否则返回False |
computer = ["主机","显示器","鼠标","键盘"] ("主机" in computer) 结果True ("音响" in computer) 结果False |
not in | 如果在指定的序列中没有找到值 返回True,否则返回False |
print("主机" not in computer) 结果False print("音响" not in computer) 结果True |
身份操作符:
操作符 | 描述 |
is | 判断两个标识符是否引用一个对象 |
is not | 判断两个标识符是否引用不同对象 |
条件判断:
if <表达式>: <代码块> elif <表达式> <代码块> else: <代码块>
三目表达式:
"条件成立" if age > 18 else "条件不成立"
for循环:
for <变量> in <序列>: <代码块> #示例1:遍历字符串 s = "123456" for i in s: print(i) #示例2:遍历列表 computer = ["主机","显示器","鼠标","键盘"] for i in computer: print(i,len(i)) #示例3:遍历字典 computer = {"主机":5000,"显示器":1000,"鼠标":60,"键盘":150} for i in computer.items(): print(i) print("名称: %s\t价格: %s" % (i[0],i[1])) #示例4:嵌套循环 s1 = "123456" s2 = "456789" for i in s1: for x in s2: if i == x: print(i) #示例5: range循环 for i in range(5 print(i)
while循环:
while <表达式>: <代码块> #示例1:当条件满足时停止循环 count = 0 while count < 5: print(count) count += 1 #示例2:死循环 count = 0 while True: print(count) count += 1
continue与break语句:
• continue 当满足条件时,跳出本次循环 • break 当满足条件时,跳出所有循环 #注: 只有在for、 while循环语句中才有效。 #示例1: continue for n in range(1,6): if n == 3: continue else: print(n) #示例2: break for n in range(1,6): if n == 3: break else: print(n)
文件操作:
with open(file,mode='r',encoding="utf8") as f: data = f.read() print(data) • file:打开的文件路径 • mode(可选):打开文件的模式,如只读、追加、写入等 • r:只读 • w:只写 • a:在原有内容的基础上追加内容(末尾) • w+:读写 如果需要以字节(二进制)形式读取文件,只需要在mode值追加‘b’即可,例如wb
方法 | 描述 |
f.read([size]) | 读取size字节,当未指定或给负值时,读取剩余所有的字节,作为字符串返回 |
f.readline([size]) | 从文件中读取下一行,作为字符串返回。如果指定size则返回size字节 |
f.readlines([size]) | 读取size字节,当未指定或给负值时,读取剩余所有的字节,作为列表返回 |
f.write(str) f.flush |
写字符串到文件 刷新缓冲区到磁盘 |
f.seek(offset[, whence=0]) |
在文件中移动指针,从whence(0代表文件起始位置,默认。 1代表当前位置。 2代表文件末尾)偏移offset个字节 |
f.tell() | 当前文件中的位置(指针) |
f.close() | 关闭文件 |
函数:
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!