机械学习—零基础学习日志(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学习课程

相关推荐
一尘之中1 分钟前
网 络 安 全
网络·人工智能·学习·安全
TNT_JQR2 分钟前
电子信息类专业技术学习及比赛路线总结(大一到大三)
单片机·嵌入式硬件·学习
柏箱2 分钟前
PHP基本语法总结
开发语言·前端·html·php
学习前端的小z3 分钟前
【AIGC】ChatGPT是如何思考的:探索CoT思维链技术的奥秘
人工智能·chatgpt·aigc
漏刻有时7 分钟前
微信小程序学习实录9:掌握wx.chooseMedia实现多图片文件上传功能(选择图片、预览图片、上传图片)
学习·微信小程序·notepad++
学无止境\n8 分钟前
[C语言]指针和数组
c语言·数据结构·算法
进阶的架构师12 分钟前
互联网Java工程师面试题及答案整理(2024年最新版)
java·开发语言
黄俊懿12 分钟前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构
新缸中之脑12 分钟前
Llama 3.2 安卓手机安装教程
前端·人工智能·算法
易辰君13 分钟前
python爬虫 - 深入requests模块
开发语言·爬虫·python