机械学习—零基础学习日志(python编程)

零基础为了学人工智能,正在艰苦的学习

昨天给高等数学的学习按下暂停键,现在开始学习python编程。

我学习的思路是直接去阿里云的AI学习课堂里面学习。

整体感觉,阿里云的AI课堂还是有一些乱,早期课程和新出内容没有更新和归档。我因为本身有一定的python基础,所以看起来相对来讲快一些。

但是如果大家从零开始学习python,我会建议学习《python编程:从入门到实践》,说实话,真的是超级经典的书籍。另外,其他的大佬推荐《菜鸟编程》。

我个人体感是,一个毫无基础的同学去学习Python,还是得找组织,另外,项目和代码一起学习,不要闭门造车,多和身边的人交流。

我把在阿里云课堂上的学习笔记同步到这里。

is,is not与地址可变类型
复制代码
a = ["hello"]
b = ["hello"]
print(a is b, a == b)  # False True
print(a is not b, a != b)  # True False

a = "hello"
b = "hello"
print(a is b, a == b)  # True True
print(a is not b, a != b)  # False False

注意:

  • is,is not 对比的是两个变量的内存地址
  • ==,!= 对比的是两个变量的值
  • 比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
  • 对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。
位运算

在龙珠训练营学习了位运算的知识点。

正数的补码,原码,反码都是正数,也就是正数是完全正常的表示。

那如何理解,计算机负数的补码以及反码呢?

我个人的理解是,为了计算机的计算逻辑正确。正数+负数为零,所以对负数进行了特别操作,使用反码,补码的方式,让正数+负数为零。

负数在计算机内部的表示,本身是用补码的方式表示,所以,1001,具体表示的方法是,1001+?变成0呢。加上0111会变成0,也就是加上7变成0,所以,最后1001是-7.

布尔运算优先级

优先级 not > and > or

布尔型

布尔 (boolean) 型变量只能取两个值,TrueFalse。当把布尔型变量用在数字运算中,用 10 代表 TrueFalse

复制代码
print(True + True)  # 2
print(True + False)  # 1
print(True * False)  # 0
assert 关键词
  • assert这个关键词我们称之为"断言",当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

    my_list = ['lsgogroup']
    my_list.pop(0)
    assert len(my_list) == 0

    AssertionError

enumerate()函数
复制代码
enumerate(sequence, [start=0])
  • sequence:一个序列、迭代器或其他支持迭代对象。

  • start:下标起始位置。

  • 返回 enumerate(枚举) 对象

    seasons = ['Spring', 'Summer', 'Fall', 'Winter']
    lst = list(enumerate(seasons))
    print(lst)

    [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

    lst = list(enumerate(seasons, start=1)) # 下标从 1 开始
    print(lst)

    [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

    for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
    print('Done!')

    2 I love Python

    3 I love R

    4 I love Matlab

    5 I love C++

    Done!

Python 标准异常总结
  • BaseException:所有异常的 基类
  • Exception:常规异常的 基类
  • StandardError:所有的内建标准异常的基类
  • ArithmeticError:所有数值计算异常的基类
  • FloatingPointError:浮点计算异常
  • ++OverflowError++:数值运算超出最大限制
  • ++ZeroDivisionError++:除数为零
  • ++AssertionError++:断言语句(assert)失败
  • ++AttributeError++:尝试访问未知的对象属性
  • EOFError:没有内建输入,到达EOF标记
  • EnvironmentError:操作系统异常的基类
  • IOError:输入/输出操作失败
  • ++OSError++:操作系统产生的异常(例如打开一个不存在的文件)
  • WindowsError:系统调用失败
  • ++ImportError++:导入模块失败的时候
  • KeyboardInterrupt:用户中断执行
  • LookupError:无效数据查询的基类
  • ++IndexError++:索引超出序列的范围
  • ++KeyError++:字典中查找一个不存在的关键字
  • ++MemoryError++:内存溢出(可通过删除对象释放内存)
  • ++NameError++:尝试访问一个不存在的变量
  • UnboundLocalError:访问未初始化的本地变量
  • ReferenceError:弱引用试图访问已经垃圾回收了的对象
  • RuntimeError:一般的运行时异常
  • NotImplementedError:尚未实现的方法
  • ++SyntaxError++:语法错误导致的异常
  • IndentationError:缩进错误导致的异常
  • TabError:Tab和空格混用
  • SystemError:一般的解释器系统异常
  • ++TypeError++:不同类型间的无效操作
  • ++ValueError++:传入无效的参数
  • UnicodeError:Unicode相关的异常
  • UnicodeDecodeError:Unicode解码时的异常
  • UnicodeEncodeError:Unicode编码错误导致的异常
  • UnicodeTranslateError:Unicode转换错误导致的异常

异常体系内部有层次关系,Python异常体系中的部分关系如下所示:

Python标准警告总结
  • Warning:警告的基类
  • DeprecationWarning:关于被弃用的特征的警告
  • FutureWarning:关于构造将来语义会有改变的警告
  • UserWarning:用户代码生成的警告
  • PendingDeprecationWarning:关于特性将会被废弃的警告
  • RuntimeWarning:可疑的运行时行为(runtime behavior)的警告
  • SyntaxWarning:可疑语法的警告
  • ImportWarning:用于在导入模块过程中触发的警告
  • UnicodeWarning:与Unicode相关的警告
  • BytesWarning:与字节或字节码相关的警告
  • ResourceWarning:与资源使用相关的警告
奇思妙想:
复制代码
a = [1, 3, 2, 6]

# 使用 sorted() 函数
print(sorted(a))  # 输出 [1, 2, 3, 6]
print(a)          # 输出 [1, 3, 2, 6],原列表未改变

# 使用 list.sort() 方法
print(a.sort())   # 输出 None
print(a)          # 输出 [1, 2, 3, 6],原列表已被排序
  • sorted(a) 返回一个新的排序后的列表,而不修改原列表。
  • a.sort() 就地对原列表进行排序,返回 None,并修改原列表。

主要参考资料:阿里云《龙珠训练营》 AI学习课程

相关推荐
鱼鱼说测试2 分钟前
postman功能接口测试
开发语言·lua
Achou.Wang4 分钟前
源码分析 golang bigcache 高性能无 GC 开销的缓存设计实现
开发语言·缓存·golang
胖达不服输18 分钟前
「日拱一码」105 机器学习原子间势能MLIP
人工智能·机器学习·机器学习原子间势能·mlip
MicroTech202525 分钟前
微算法科技MLGO推出隐私感知联合DNN模型部署和分区优化技术,开启协作边缘推理新时代
科技·算法·dnn
绵羊202326 分钟前
R语言绘制热图
开发语言·r语言
小冯记录编程44 分钟前
深入解析C++ for循环原理
开发语言·c++·算法
Purple Coder1 小时前
面试-上海电力大学研一的学习经验
学习
为java加瓦1 小时前
Lombok @Data 注解在 Spring Boot 项目中的深度应用与实践指南
java·开发语言·数据库
董世昌411 小时前
js怎样改变元素的内容、属性、样式?
开发语言·javascript·ecmascript
CodeCraft Studio1 小时前
国产化Excel开发组件Spire.XLS教程:将Python列表转换为Excel表格(3种实用场景)
开发语言·python·excel·spire.xls·python列表转excel·国产化文档开发