人工智能python零基础入门,python人工智能编程教程

本文详细介绍了Python编程的PEP8编码规范,包括缩进、文档编写、空格使用、注释、命名规则,以及Python的基础概念如序列、字典、类和对象、运算符优先级、异常处理、函数、输入输出、字符串转换等,适合初学者参考。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了人工智能python零基础入门,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

一、PEP8编码规范

1、代码编排

        a、使用4空格缩进。不使用Tab,更不允许用Tab和空格混合缩进
        b、每行最大长度最大79字节,换行可以使用反斜杠,最好使用圆括号
        c、类和全局函数定义间隔两个空行,类内方法定义间隔一个空行,其它地方可以不加空行python流星雨特效代码

2、文档编排

        模块内容的顺序:模块说明和docstring(文档字符串)—import—globals&constants(常量)—其他定义。其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。
        不要在一句import中导入多个模块,比如不推荐import os, sys。
        尽可能用import XX 而不采用from XX import YY引用库,因为可能出现名字冲突。

3、空格的使用

        总体原则,避免不必要的空格。
        a、各种右括号前不用加空格
        b、逗号、冒号、分号前不要加空格。
        c、函数的左括号前不要加空格。如func(1)。
        d、序列的左括号前不要加空格。如list[2]。
        e、操作符左右各加一个空格,不要为了对齐增加空格。
        f、函数默认参数使用的赋值符左右省略空格。
        g、不要将多条语句写在同一行,尽管使用‘;’允许。
        h、if/for/while语句中,即使执行语句只有一句,也必须另起一行

4、注释

        总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释!
        避免无谓的注释。

5、文档描述

        为所有的共有模块、函数、类、方法写docstrings。

6、命名规范

        a、避免单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。
        b、模块命名尽量短小,使用全部小写的方式,可以使用下划线。
        c、命名尽量短小,使用全部小写的方式,可以使用下划线。
        d、类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。
        e、异常命名使用CapWords+Error后缀的方式。
        f、全局变量尽量只在模块内有效,类似C语言中的static。实现方法有两种,一是__all__机制;二是前缀一个下划线。
        g、函数命名使用全部小写的方式,可以使用下划线。
        h、常量命名使用全部大写的方式,可以使用下划线。
        i、类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。
        j、类的属性有3种作用域public、non-public和subclass API。
        k、类的属性若与关键字名字冲突后缀一下划线,尽量不要使用缩略等其他方式。
        l、为避免与子类属性命名冲突,在类的一些属性前缀一下划线,前缀两条下划线。比如:类Foo中声明__a,访问时,只能通过Foo._Foo__a,避免歧义。如果子类也叫Foo,那就无能为力了。

        m、类的方法第一个参数必须是self,而静态方法第一个参数必须是cls

二、知识点总结

1、序列

        字符串(str)、列表(list)、元组(tuple)、字节串(bytes)、字节数组 (bytearray)

可变序列:列表(list)、字节数组 (bytearray)

不可变序列:字符串(str)、元组(tuple)、字节串(bytes)

2、字典

字典的值(value)可以是任意类型:

        字典的值可以是布尔值,数据,字符串,None,列表,元组,字典,集合,函数,类对象等所有类型

字典的键(key)必须为不可变类型的值:(集合内的元素必须是不可变的对象)
        不可变的类型:
                bool,int,float,complex,str,tuple,frozenset(固定集合)、字节串(bytes)
                包括:None

注:可变类型:列表(list),字典(dict),集合(set)、字节数组 (bytearray)

3、可迭代对象

序列:字符串(str)、列表(list)、元组(tuple)、字节串(bytes)、字节数组 (bytearray)

字典:字典是可迭代对象,字典只能对键进行迭代访问

集合(set)、固定集合(frozenset)

4、类变量和实例变量(实例属性)

        类变量:类变量是类的属性,此属性属于类,不属于此类创建的实例

        实例变量(属性):每个实例可以有自己的变量,称为实例变量(属性)

class A(): 
	v = 100			# 类变量
	x = 99			# 类变量
	def __init__(self): 
		self.v = 200	# 实例变量(属性)

a = A() 
print(a.v)               # 200 访问实例变量
print(a.__dict__["v"])   # 200 访问实例变量

print(a.x)               # 99  通过实例对象访问类变量,条件:实例变量(属性)没有和类变量重名
print(A.v)               # 100 通过类A 访问自身的类变量
print(a.__class__.v)     # 100 通过实例对象属性(__class__)获得绑定的类A ,然后访问类变量
5、浅拷贝和深拷贝

浅拷贝
        L1 = [1,2,3]
        L2 = L1.copy()    # 方法1

        L2 = L[:]             # 方法2 切片复制是浅拷贝
        L2 = L[::]            # 方法3 切片复制是浅拷贝

        L2 = copy.copy(L1)    # 方法3 copy模块中的方法 import copy

深拷贝   

        L2 = copy.deepcopy(L1)    # 调用深拷贝函数进行复制

三、运算符优先级

运算符描述
(), [], {key: value}, {}元组表达式、列表表达式、字典表达式、集合表达式
x[index], x[index:index],索引,切片,
x(arguments...), x.attribute函数调用,属性引用
**指数 (最高优先级)
~, +, -按位翻转, 正号,负号
*, /, %, //乘,除,取模和地板除
+, -加法, 减法
>>, <<右移, 左移运算符
&位与(AND)
^位异或(XOR)
|位或(OR)
<=, <, >, >=, ==, !=,
is, is not, in, not in
比较,身份测试,成员资格测试
not布尔非
and布尔与
or布尔或
if - else条件表达式
lambdalambda表达式

四、异常类型

错误类型说明
ZeroDivisionError除(或取模)零 (所有数据类型)
ValueError传入无效的参数
AssertionError断言语句失败
StopIteration迭代器没有更多的值
IndexError序列中没有此索引(index)
IndentationError缩进错误
IOError输入/输出操作失败
ImportError导入模块/对象失败
NameError未声明/初始化对象 (没有属性)
AttributeError对象没有这个属性
BaseException所有异常的基类
SystemExit解释器请求退出
KeyboardInterrupt用户中断执行(通常是输入^C)
Exception常规错误的基类
GeneratorExit生成器(generator)发生异常来通知退出
StandardError所有的内建标准异常的基类
ArithmeticError所有数值计算错误的基类
FloatingPointError浮点计算错误
OverflowError数值运算超出最大限制
EOFError没有内建输入,到达EOF 标记
EnvironmentError操作系统错误的基类
OSError操作系统错误
WindowsError系统调用失败
LookupError无效数据查询的基类
KeyError映射中没有这个键
MemoryError内存溢出错误(对于Python 解释器不是致命的)
UnboundLocalError访问未初始化的本地变量
ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError一般的运行时错误
NotImplementedError尚未实现的方法
SyntaxError Python语法错误
TabErrorTab 和空格混用
SystemError一般的解释器系统错误
TypeError对类型无效的操作
UnicodeErrorUnicode 相关的错误
UnicodeDecodeErrorUnicode 解码时的错误
UnicodeEncodeErrorUnicode 编码时错误
UnicodeTranslateErrorUnicode 转换时错误
以下为警告类型
Warning警告的基类
DeprecationWarning关于被弃用的特征的警告
FutureWarning关于构造将来语义会有改变的警告
OverflowWarning旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning关于特性将会被废弃的警告
RuntimeWarning可疑的运行时行为(runtime behavior)的警告
SyntaxWarning可疑的语法的警告
UserWarning用户代码生成的警告

五、函数

1、数值类型

数值对象的构造(创建)函数

函数说明
float(obj)用字符串或数字转换为浮点数, 如果不给出参数,则返回0.0
int(x, base=10)用数字或字符串转换为整数,如果不给出参数,则返回0
complex(r=0.0, i=0.0)用数字创建一个复数(实部为r,虚部为i)
bool(x)用x创建一个布尔值(True/False)

预置(内建)的数值型函数

函数说明
abs(x)取x的绝对值
round(number[, ndigits])对数值进行四舍五入, ndigits是小数向右取整的位数, 负数表示向左取整
pow(x, y, z=None)相当于x ** y 或 x**y % z
2、help() 查看函数帮助
help函数
>>> help(abs)  # 查看abs函数的帮助
3、基本输入输出

基本输入 input

函数说明
input('提示字符串')返回输入的字符串(仅Python3)('提示字符串' 可以是空)

基本输出函数 print

函数说明
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)将一系列的值以字符串形式输出到 标准输出设备上,默认为终端.

参数选项

选项的关键字参数为:
sep:   两个值之间的分隔符,默认为一个空格' '
end:   输出完毕后在流末尾自动追加一个字符串,默认为换行符'\n'
file:  流对象,默认为sys.stdout.
flush: 是否立即将流进行输出
4、字符串转换

字符串编码转换函数

函数说明
ord(c)返回一个字符的Unicode值
chr(i)返回i这个值所对应的字符

整数转换为字符串函数

函数说明
hex(i)将整数转换为十六进制字符串
oct(i)将整数转换为八进制字符串
bin(i)将整数转换为二进制字符串

字符串构造函数

函数说明
str(obj='')将对象转换为字符串
5、range()函数
函数意义
range(stop)从零开始,每次生成一个整数后加1操作,直到stop为止(不包含stop)
range(start,stop[,step])从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以是负数)
6、列表的构造函数list
函数说明
list()# 生成一个空的列表 等同于 []
list(iterable)# 用可迭代对象创建一个列表
7、元组的构造(创建)函数tuple
函数说明
tuple()生成一个空的元组,等同于 ()
tuple(iterable)用可迭代对象生成一个元组
8、序列相关函数
函数说明
len(seq)返回序列的长度
max(x)返回序列的最大值的元素
min(x)返回序列的最小值的元素
sum(x)返回序列中所有元素的和
any(x)真值测试,如果列表中其中一个值为真值则返回True
all(x)真值测试,如果列表中所有值为真值则返回True
reversed(seq)返回反向顺序的迭代器对象
sorted(iterable, key=None, reverse=False)返回已排序的列表
9、字典的构造(创建)函数dict
函数说明
dict()# 生成一个空的字典 等同于 {}
dict(iterable)用可迭代对象初始化一个字典
dict(**kwargs)命名关键字传参形式生成一个字典
10、集合构造(创建)函数 set和frozenset

集合函数set

函数说明
set()创建一个空的集合对象(不能用{}来创建空集合)
set(iterable)用可迭代对象创建一个新的集合对象

固定集合函数 frozenset

函数说明
frozenset()创建一个空的固定集合对象
frozenset(iterable)用可迭代对象创建一个新的固定集合对象
11、globals() / locals() 函数
函数说明
globals()返回当前全局作用域内变量的字典
locals()返回当前局部作用域内变量的字典
12、eval(), exec() 函数
函数说明
eval(source, globals=None, locals=None)把一个字符串source当成一个表达式来执行,返回表达式执行后的结果
exec(source, globals=None, locals=None)把一个字符串source当成程序来执行.
13、高阶函数

map、filter、sorted函数

函数说明
map(func, *iterables)用函数和对可迭代对象中的每一个元素作为参数计算出新的可迭代对象,当最短的一个可迭代对象不再提供数据时此可迭代对象生成结束
filter(function, iterable)筛选可迭代对象iterable中的数据,返回一个可迭代器对象,此可迭代对象将对iterable进行筛选.函数function 将对iterable中的每个元素进行求值,返回False则将此数据丢弃,返回True,则保留此数据
sorted(iterable, key=None, reverse=False)将原可迭代对象的数据进行排序,生成排序后的列表
iterable 可迭代对象
key 函数是用来提供一个值,这个值将作为排序的依据
reverse 标志用来设置是否降序排序
14、dir函数
函数说明
dir([对象])返回一个字符串列表

dir函数函数说明

  • 如果没有参数调用,则返回当前作用域内的所有变量的列表
  • 如果给定一个对象作用参数,则返回这个对象的所有变量的列表
    • 对于一个模块,返回这个模块的全部变量
    • 对于一个类对象,返回类对象的所有变量,并递归的基类对象的所有变量
    • 对于其它对象返回所有变量、类变量和基类变量
15、迭代器函数iter和next
函数说明
iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是能提供一个迭代器的对象
next(iterator)从迭代器iterator中获取一下个记录,如果无法获取一下条记录,则触发 StopIteration 异常

迭代工具函数

函数说明
zip(iter1 [,iter2 [...]])返回一个zip对象, 此对象用于生成一个元组,此元组的个数由最小的可迭代对象决定
enumerate(iterable[, start])生成带索引的枚举对象,返回的迭代类型为索引-值对(index-value)对,默认索引从零开始,也可以用start指定
16、字节串/数组的生成函数

字节串函数bytes

函数说明
bytes()生成一个空的字节串 等同于 b''
bytes(整型可迭代对象)用可迭代对象初始化一个字节串
bytes(整数n)生成n个值为0的字节串
bytes(字符串, encoding='utf-8')用字符串的转换编码生成一个字节串

字节数组函数 bytearray

函数说明
bytearray()创建空的字节数组
bytearray(整数)用可迭代对象初始化一个字节数组
bytearray(整型可迭代对象)生成n个值为0的字节数组
bytearray(字符串, encoding='utf-8')用字符串的转换编码生成一个字节数组
17、文件的打开函数
字符含义
open(file, mode='rt')用于打开一个文件,返回此文件流对象.
如果打开文件失败,则会触发OSError 错误!
如果要打开的文件不存在,则会触发FileNotFoundError 错误!

mode 模式字符的含义

字符含义
'r'以只读方式打开(默认)
'w'以只写方式打开,删除原有文件内容(如果文件不存在,则创建该文件并以只写方式打开)
'x'创建一个新文件, 并以写模式打开这个文件,如果文件存在则会产生"FileExistsError"错误
'a'以只写文件打开一个文件,如果有原文件则追加到文件末尾
'b'用二进制模式打开
't'文本文件模式打开 (默认)
'+'为更新内容打开一个磁盘文件 (可读可写)
  • 缺省模式是 'rt'
  • 'w+b' 可以实现二进制随机读写,当打开文件时,文件内容将被清零
  • 'r+b' 以二进制读和更新模式打开文件,打开文件时不会清空文件内容
  • 'r+' 以文本模式读和更新模式打开文件,打开文件时不会清空文件内容
18、对象的属性管理函数
函数说明
getattr(obj, name[, default])从一个对象得到对象的属性;getattr(x, 'y') 等同于x.y; 当属性不存在时,如果给出default参数,则返回default,如果没有给出default 则产生一个AttributeError错误
hasattr(obj, name)用给定的name返回对象obj是否有此属性,此种做法可以避免在getattr(obj, name)时引发错误
setattr(obj, name, value)给对象obj的名为name的属性设置相应的值value, set(x, 'y', v) 等同于 x.y = v
delattr(obj, name)删除对象obj中的name属性, delattr(x, 'y') 等同于 del x.y
19、super函数
函数说明
super(type, obj)返回绑定超类的实例(要求obj必须为type类型的实例)
super()返回绑定超类的实例,等同于:super(class, 实例方法的第一个参数),必须用在方法内
20、用于类判断的函数
函数说明
issubclass(cls, class_or_tuple)判断一个类是否继承自其它的类,如果此类cls是class 或 tuple中的一个派生子类则返回True,否则返回False
21、用于判断实例对象的类型的函数
函数说明
isinstance(obj, class_or_tuple)返回这个对象obj 是否是 某个类的对象,或者某些类中的一个类的对象,如果是返回True,否则返回False
type(obj)返回对象的类型

六、附录

        人工智能(python)—— 目录汇总

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 对于零基础的小伙伴来说,想要从零开始学习Python入门,可以按照以下步骤进行: 1.明确学习目标:首先要明确学习Python的目的是为了满足好奇心还是有工作需要。不同的目标会决定所选用的学习内容和学习方法的不同。如果只是好奇心驱使,可以简单了解Python的基本知识,根据老师的操作做一些小案例即可。但如果是为了工作需要,就需要踏实地打好Python的基础。 2.了解Python的优势和应用领域:Python是一门非常火爆的编程语言,在人工智能、机器学习、大数据、数据分析、网络爬虫等领域有着广泛的应用。它具有良好的可读性和满足感,易于学习和上手,适合零基础和跨专业的学习者。 3.掌握基础知识:在学习Python的过程中,需要掌握一些基础知识,包括了解Python是什么,能做些什么;了解变量、算法、解释器、编程规范等基本概念;掌握Python的基本数据类型、列表和元组的操作方法、字符串操作方法以及基本的字典操作方法等。 4.选择合适的学习资源:可以选择一些优质的学习资源,如在线教程、视频教程、书籍等,来系统地学习Python的知识。同时,可以参加一些线下或线上的编程培训班或课程,通过实践和项目实战来提升自己的编程能力。 5.练习和实践:学习编程最重要的一点就是要进行实践和练习。可以通过编写小程序、解决实际问题、参与开源项目等方式来巩固所学的知识,并提升自己的编程能力。 总之,从零基础入门Python需要明确学习目标,掌握基础知识,选择合适的学习资源,并进行实践和练习。通过持续的学习和实践,相信你可以快速入门Python编程。 #### 引用[.reference_title] - *1* *2* *3* [零基础如何快速学会Python?](https://blog.csdn.net/xiangxueerfei/article/details/127319517)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值