1.python基础
Python的基本数据类型:
1 2 3 4 5 | • 整数( 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 |
变量: 编程语言中能储存结果或能表示值的抽象概念。
用途: 给一段数据赋予一个简短、易于记忆的名字,方便重用。
1 2 3 4 5 6 | 变量名 = 变量值 例如: name = “aliang” 多重赋值: name1, name2 = “aliang”,”lizhenliang” 变量引用: print (变量名) |
格式化字符串:
操作符号 | 描述 |
%s | 字符串 |
%d | 整数 |
%f | 浮点数,可指定小数点后的精度 |
1 2 3 4 | <br> 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),将光标位置移到前一列 |
\\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写 |
获取用户输入:
1 2 3 4 | input ()内建函数: 用于与用户交互,接收一个参数,即要向用户显示的提示或者说明,让用户知道该怎么做。 示例: name = input (“请输入你的姓名:” ) print (name) |
注释:
1 2 3 4 5 6 7 | • 一个 #号表示单行注释 # print(name) • 三个单引号或者三个双引号表示多行注释 ''' 多行注释 ''' |
字符串格式化输出:
1 2 3 4 5 6 | name = “aliang” age = 30 # 方法1 print ( "我的名字是%s,今年%s岁了。 " % (name, age)) # 方法2 print (f "我的名字是{name},今年{age}岁了。 " ) |
字符串拼接:
1 2 3 4 5 6 7 8 9 | 使用“ + ”可以对多个字符串进行拼接。 示例: str1 = "hello" str2 = “world" print (str1 + str2) 其他方式: • 格式化输出 • 逗号 • join() 内建函数,将序列中的元素拼接成一个字符串。 |
获取字符串长度:
1 2 | len ()内建函数: 计算字符串的长度。 语法格式: len (string) |
字符串切片:
1 2 3 4 5 6 7 8 9 10 | 切片:截取字符串中的某部分内容 语法格式: string[start:end:step] • string 要切片的字符串 • start 要切片的第一个字符的索引(包括该字符),如果不指定默认为 0 • end 要切片的最后一个字符的索引(不包括该字符),如果不指定默认为字符串的长度 • step 表示切片的步长,如果不指定默认为 1 示例: 截取第 5 个字符: s[ 4 ] 截取第 1 个字符到第 5 个字符: s[ 0 : 5 ] 截取最后 1 个字符: s[ - 1 ] |
字符串处理方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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) | 通过索引删除元素并返回索引 |
切片:
1 2 3 4 5 6 7 | 与字符串切片使用方法一样。 语法格式: list [start:end:step] 示例: 截取第 1 个元素: computer[ 0 ] 截取第 1 个字符到第 5 个元素: computer[ 0 : 5 ] 截取第 1 个到倒数第 2 个元素: computer[ 0 : - 1 ] 截取最后 1 个元素: computer[ - 1 ] |
清空列表:
1 2 3 4 | • 重新初始化列表 computer = [] • del 语句删除列表 del computer |
元组:
定义元组: computer = ("主机","显示器","鼠标","键盘")
类型 | 方法 | 用途 |
查 | index("元素") | 查看元素索引位置 |
count("元素") | 统计元素出现次数 |
同样支持切片,与列表使用方法一样
集合:
集合(Set):是一个无序、不重复元素的序列,主要用于元素去重和关系测试
定义方法: set()函数或者大括号来创建集合。
注意:想要创建空集合,必须使用set()而不是{}。后者用于创建空字典。
1 2 3 4 5 | 定义空数组: computer = set () 定义元组: computer = { "主机" , "显示器" , "鼠标" , "键盘" } 或者 computer = set ([ "主机" , "显示器" , "鼠标" , "键盘" , "主机" ]) |
类型 | 方法 | 用途 |
查 | 不支持,一般用for遍历 | |
增 | add("元素") | 添加元素 |
删 | remove("元素") | 删除指定元素 |
discard("元素") | 如果有元素则删除 | |
pop("元素") | 删除第1个元素并返回元素 |
列表去重:
1 2 3 | computer = [ "主机" , "显示器" , "鼠标" , "键盘" , "显示器" , "鼠标" ] s = set (computer) print (s) |
关系测试:
关系符号 | 描述 |
- | 差集 |
& | 交集 |
| | 合集、并集 |
!= | 不等于 |
== | 等于 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 对两个列表进行关系测试: 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() | 删除最后一对键值并返回 |
字典嵌套:
1 2 3 4 5 6 7 8 9 10 | 字典里的值不但是可以写整数、字符串,也可以是其他数据类型,例如列表、元组、集 合、字典,这样可满足一个键还包含其他属性。 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 | 判断两个标识符是否引用不同对象 |
条件判断:
1 2 3 4 5 6 | if <表达式>: <代码块> elif <表达式> <代码块> else : <代码块> |
三目表达式:
1 | "条件成立" if age > 18 else "条件不成立" |
for循环:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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循环:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | while <表达式>: <代码块> #示例1:当条件满足时停止循环 count = 0 while count < 5 : print (count) count + = 1 #示例2:死循环 count = 0 while True : print (count) count + = 1 |
continue与break语句:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | • 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) |
文件操作:
1 2 3 4 5 6 7 8 9 10 11 | 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() | 关闭文件 |
函数:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2018-11-05 wordpress访问速度慢