文章目录
- 一、下载Python
- 二、变量
- 三、数据类型
- 四、运算符
- 五、语句
- 六、容器类型
- 七、函数 function
- 八、常用API
- 九、面向对象
- 十、三大特征:封装、继承、多态
- 十一、六大原则:
- Python基础学习笔记(二)
一、下载Python
-
官网:https://www.python.org/
-
下载最新版本:python-3.10.2-amd64.exe
-
安装:
- Install Now:快速安装,勾选添加环境变量;
- Customize Installation:自定义安装,选择安装位置,勾选2、3、4选项;
-
学习使用:
IDLE字体修改:
Options > Configure IDLE
选择字体为 Consolas。IDLE两种模式:
-
交互模式:直接在IDLE中输入指令,给出一个指令,机器立刻给出一个反馈。
- 输入
print("Hello World!")
打印hello world; - 输入 算数自动计算出结果……
- 输入
import this
,打印Python的禅宗(py的优点等等)。
- 输入
-
编辑器模式:以 .py 结尾的文件,包含全部代码。
-
点击
File > New File
创建新文件,文件后缀为 .py 结尾; -
输入测试游戏代码,保存 ctrl + s ,点击
Run > Run Module
运行文件;""" 第一个小游戏 """ temp = input("猜数字小游戏,猜猜我想的是哪个数字:") guess = int(temp) if guess == 8: print("你好棒棒") print("猜对了也没奖励!") else: print("猜错了!正确答案是8") print("游戏结束")
注意:
遵守Python的语法规范,代码样式指导手册PEP8;
官网:https://www.python.org/dev/peps/pep-0008/
-
-
-
BIF内置函数:
在IDLE中输入:
dir(__builtins__)
查看Python的所有内置函数,例如:print()、input() 等; -
在 Python 中可以通过
help()
内置函数或者__doc__
属性查看某个函数的说明文档,如下代码所示:# 查看 print() 内置函数的说明文档 help(print) print(print.__doc__)
-
Python的注释:
- 单行注释:使用
#
开头,例如:# 单行注释
; - 多行注释:使用三个连续的引号
'''
或者"""
作开头和结尾,也叫长字符串,不支持嵌套。
- 单行注释:使用
-
为自定义函数设置说明文档:
当使用
help()
内置函数或者__doc__
属性即可查看的说明文档# 定义一个比较数字大小的函数 def num_max(num1, num2): """ 比较两个数字的大小 :param num1:形参1,数字1 :param num2:形参2,数字2 :return:大的数字,max_num = num1 if num1 > num2 else num2 """ max_num = num1 if num1 > num2 else num2 return max_num help(num_max) print(num_max.__doc__)
二、变量
变量:关联一个对象的标识符。以字母(区分大小写)、数字、下划线组成,但不能以数字开头,支持中文。
-
格式一:变量名 = 变量值,例如:
x = 3
; -
格式二:变量名1, 变量名2 = 变量值1, 变量值2,例如:
x, y = 3, 4
; -
格式三:变量名1 = 变量名2 = 变量值,例如:
x = y = 3
; -
使用变量:例如:
print(x)
,即可输出变量的值; -
变量删除:del 语句:
- 格式:del 变量名1,变量名2 ……
- 作用:删除变量,接触与对象的关联
- 自动化内存管理的引用计数:每个对象记录着被变量引用的次数,次数为 0 时自动销毁。
-
两个值互换:
x = 3 y = 5 # 方式一 z = x x = y y = z print(x, y) 5 3 # 输出结果 # 方式二,变量的格式二 x, y = y, x print(x, y) 5 3 # 输出结果
三、数据类型
-
核心数据类型:
- 变量没有数据类型,但关联的对象有类型;
- 使用
type
函数查看类型。
-
空对象:None
作用:
- 占位
- 接触与对象的绑定 关系
-
整形:int
-
浮点型:float
-
小数:0.1
-
科学计数法:e/E±指数,例如:1.23e-2 (等于0.0123) 、1.234e5 (等于123400.0)
-
-
字符串:str
-
复数(特定运算中涉及):complex
- 由实部和虚部组成的数字;
- 虚部以
j
或J
结尾; - 字面值:1j、1+1j。
-
布尔:bool
-
类型转换:
格式:数据类型(变量值),例如:int(“50”)、str(100)等等。
四、运算符
- 算术运算符:+ 、- 、* 、/ (整除)、// (地板除,结果不含小数)、%、** (幂运算,次方)。
- 增强运算符:+=、-=、*=、/=等,与算术运算符个数一致。
- 比较运算符:< 、<= 、> 、>= 、== 、!= ,返回一个布尔值。
- 逻辑运算符:and、or、not
- 短路运算:一旦结果确定,后面语句不执行,例如:1>2 and input(“请输入”) == “”
- 身份运算符:is、is not
- 优先级:(由上至下,算术 --> 身份)
五、语句
-
行
-
物理行:实际代码行数,一个物理行可包括多个逻辑行,使用分号分割;
-
逻辑行:对应一条指令,建议一个物理行对应一个逻辑行;
-
换行:
-
隐式换行:使用括号,所有的括号中内容随意换行;
-
显示换行:使用折行符
\
换行,必须放在行的末尾;
-
-
-
pass 语句:用于填充语法空白;
-
选择语句:
-
if elif else语句:注意缩进,冒号
if 条件1: 满足条件1时执行 elif 条件2: 满足条件2时执行 else: 都不满足时执行
-
真值表达式:如果变量有值(不是None、“”、False),则为True。
-
条件表达式 (三元表达式):根据条件,去为变量赋值,例如:x = 2 if 2 > 1 else 1。
-
-
循环语句:
-
while语句:
while 条件: 循环体 # break else: 不满足条件
-
for语句:遍历可迭代元素
for 变量名 in 可迭代对象: 循环体 else:
-
range函数:整数生成器,倒序时步长取负值
- 接收三个参数,分别是:开始、结束、步长,含开始不含结尾。开始默认值 0,步长间隔默认值 1;
- range(1, 5, 1),指生成1、2、3、4 的整数;
- range(1, 5),参数代表开始、结束,步长间隔取默认值;
- range(5),指生成0、1、2、3、4 的整数,其他参数取默认值;
-
-
跳转语句:只存在循环语句中
- break语句:跳出循环
- continue语句:跳出本轮循环
六、容器类型
-
通用操作:
-
加法操作:使用加号将多个字符串拼接为一个字符串,字符串间可简写忽略加号;
-
乘法操作:字符串乘以数字,实现重复多少次此字符串;
-
比较运算:==、!=、<、>等,按编码大小比较;
-
索引操作:格式:容器[整数],根据索引获取指定位置字符串,索引从零开始;
aa = "hello world"print(aa[4])o # 输出结果
-
内建函数:
- len函数,获取序列的长度:
- 正向索引:len(字符串) - 1,从 0 开始;
- 反向索引:- len(字符串),从 -1 开始。
- max函数,最大值;
- min函数,最小值;
- sum函数,求和;
- len函数,获取序列的长度:
-
切片操作:slice、split,格式:容器[开始:结束:间隔],包含开始,不包含结尾;
aa = "hello world" print(aa[1:6]) ello # 输出结果,正常输出 print('{!r}'.format(aa[1:6])) 'ello ' # 输出结果,格式化为带引号输出 print(aa[:3]) # 前三个,简写 print(aa[-3:]) # 后三个,简写 print(aa[::-1]) # 倒序输出 print(aa[::1]) # 正序输出
-
包含:in、not in,例如:“ell” in “hello” ,结果为布尔值 True;
-
-
字符串 str:由一系列字符组成,存储的是字符的编码值!
-
id函数:返回对象真实内存地址;
-
ord函数:返回字符对应的 Unicode 编码值,例如:ord(“s”);
-
chr函数:返回整数对应的字符串,例如:chr(114);
-
单引号 Single quotes:
'hello world'
; -
双引号 Double quotes:
"hello world"
; -
三引号 Triple quoted :长字符串,实现换行字符串
triple_quotes = '''hello world'''triple_quotes = """hello world"""
-
转义字符:用于表示一些不能直接显示的ASCII字符,使用
\
开头; -
原始字符串:表示字符串中没有转义符
转义字符需要正常使用,不作为转义字符时,可以在前面加上r,转义不生效;
print("D:\one\two\three")D:\one wo hree # 输出结果print(r"D:\one\two\three")D:\one\two\three # 输出结果
-
字符串格式化:
- 格式:
"…%s…%d…%f…"%(变量1, 变量2, 变量3)
,运行时会自动将变量插入对应位置中; - 使用
%
类型码占位,%s
指字符串,%d
指整数,%f
指小数; %2s
指规定占位符长度为 2,%.2f
指保留 2 位小数(四舍、六入、五平分)
- 格式:
-
-
列表 list:由一系列变量组成的可变序列容器
- 格式一:容器名 = [],内部放对象,使用逗号分隔;
- 格式二:容器名 = list(),参数放可迭代对象,将对象按索引分为多个对象;
- 添加:append函数;
- 插入:insert函数,参数一为下标,参数二为插入对象;
- 修改:容器名[索引] = 数据值,也可以使用切片修改多个值,如:list01[2] = “你好”、list01[-2:] = [1, 2];
- 删除:remove函数,参数为元素;或使用 del 语句,根据索引,切片删除;
- 循环:for语句;
- 建议使用索引操作,因为切片会创建新的列表,浪费内存;
- 正序:range(len(列表名)),通过索引才能操作每一项数据;
- 倒序:range(len(列表名) - 1, -1, -1)
- 深浅拷贝:
- 浅拷贝:list中的copy函数,或使用切片操作,浅拷贝等于切片;
- 深拷贝:导入 import copy,使用copy.deepcopy(列表);优点:不影响原数据;缺点:占内存;
- 区别:浅拷贝只复制新列表,重新引用已有的变量;深拷贝则是复制所有的列表及存储的变量;
- 循环删除:使用倒序删除,否则会有漏删、下标越界问题出现;
- 列表推导式:简洁方式构建列表;
- 格式一:变量 = [表达式 for 变量 in 可迭代对象]
- 格式二:变量 = [表达式 for 变量 in 可迭代对象 if 条件],if条件不满足则丢弃当前项;
- 例如:list2 = [item for item in list1]、list2 = [item for item in list1 if item > 20]
- 列表与字符串的转换:
- 列表转字符串:join函数,例如:result = “连接符”.join();
- 字符串转列表:split函数,例如:list01 = “字符串”.split(“分隔符”);
-
元组 tuple:由 变量 组成的不可变序列,无法增删改;
- 格式一:tuple1 = (),注意:一个大小的元组创建:tuple1 = (元素, ),不写逗号表示元素原始的类型;
- 格式二:tuple1 = tuple(可迭代对象);
- 格式三:tuple1 = 100, 200, 300,可省略括号,不建议;
- 查询:x, y = tuple1,指将元组中数据前两位赋值给 x 和 y;
- **变量交换的本质 **就是创建元组,例如:x, y = (y, x)
- 格式化字符串的本质 就是创建元组,例如:“…%s…%d…” % (name, age)
- 索引
- 切片
- 循环
-
字典 dict:由 键值对 组成的可变散列容器,无序的;优点:查改最快;
- 格式一:dict1 = {},键值对 使用冒号分隔,例如:“name” : “Bob”;
- 格式二:dict1 = dict( 可迭代对象 ),格式:dict1 = dict([(“name”, “zs”), (“age”, 23)]),建议使用方括号;
- 字典转列表:list(dict1),结果只会将键存储进列表,值将会丢弃;
- 添加 / 修改:字典名[“键”] = 值,如果键不存在则添加,存在则是修改;例如:dict1[“name”] = “zs”
- 查询:字典名[“键”],根据 键 获取 值,如果 键 不存在则报错
- 获取键:for 键 in 字典名
- 获取值:for 值 in 字典名.values()
- 获取键值对:
- for kv in 字典名.items(),获得的是元组;
- for 键, 值 in 字典名.items(),分别获取键和值;
- 删除:del语句,例如:del dict1[“name”],如果 键 存在则删除,如果 键 不存在则报错;
- 字典推导式:建议转换可迭代对象为字典;
- 格式一:变量 = {键 : 值 for 变量 in 可迭代对象}
- 格式二:变量 = {键 : 值 for 变量 in 可迭代对象 if 条件}
-
集合 set:由 不重复的不可变类型变量(元组/数/字符串)组成的可变散列容器,即只有 键 的字典;
- 格式一:set1 = {“值1”, “值2”},此方式不能创建空集合;
- 格式二:set1 = set(可迭代对象),唯一的创建空集合方式;
- 增加:add函数,例如:set1.add(“key”);
- 删除:
- remove函数,存在则删除,否则报错;先判断在删除!!!
- discard函数,存在则删除,不存在不报错!
- 数学运算:
- 交集 & :取出两个集合中相同的元素;set1 & set2
- 并集 | :取出两个集合中不重复的元素;set1 | set2
- 补集 ^ :取出两个集合中除去相同的元素后剩余的元素;set1 ^ set2
- 减法 - :取出集合 1 有的而集合 2 没有的,set1 - set2
- 子集 < :判断集合 2 是否包含集合 1 ,set1 < set2
- 超集 > :判断集合 1 是否包含集合 2 ,set1 > set2
-
固定集合 frozenset:不可变的集合;
- 用于对列表的去重复,相对来说节省内存;
-
嵌套循环 for for:外层循环一次,内层循环一轮;
-
列表排序:
list1 = [55, 66, 99, 54, 33, 98, 15, 22, 78] # 排序 for i in range(len(list1) - 1): for j in range(i + 1, len(list1)): if list1[i] > list1[j]: list1[i], list1[j] = list1[j], list1[i]
-
列表推导式嵌套循环:实现列表的全排列;
# 制作扑克牌 numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] colors = ["黑桃♠", "梅花♣", "方块♦", "红桃♥"] puker = [i+j for i in numbers for j in colors] puker.append("大王 标签:__,函数,Python,self,笔记,学习,对象,print,变量 From: https://blog.csdn.net/fyx_demo/article/details/140870146
-