python基础二

Python与AI

AI是什么?

人工智能(Artificial Intelligence)缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的定义是让机器实现原来只有人类才能完成的任务,其核心是算法。


AI的四大分支

模式识别:是指对表征事物或者现象的各种形式(数值的文字的逻辑关系的等)信息进行处理分析,以及对事物或现象进行描述分析分类解释的过程,例如汽车车牌号的辨识涉及到图像处理分析等技术。

机器学习:研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构不断完善自身的性能,或者达到操作者的特定要求。

数据挖掘:知识库的知识发现,通过算法搜索挖掘出有用的信息,应用于市场分析、科学探索、疾病预测 等。

智能算法:解决某类问题的一些特定模式算法;例如,我们最熟悉的最短路径问题,以及工程预算问题等。

Python3 中六个标准的数据类型:

Number(数字),String(字符串),List(列表),Tuple(元组),Sets(集合),Dictionary(字典)

Number(数字):Python3 支持 int、float、bool、complex(复数)

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。整数 包含正整数和负整数,用int来表示。在这里整数被允许具有无穷的精度(只要内存空间允许,它可以增长成任意位数的数字)。

浮点数(float)表示小数,带一个小数点,加上一个科学计数标志e或者E。例如:

在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

Python的复数常量写成实部+虚部的写法,虚部是以j或J结尾的。例如:


Python中整数表现形式:十进制,二进制,八进制,十六进制

2进制是以0b开头的: 例如: 0b11 则表示十进制的3

8进制是以0o开头的: 例如: 0o11则表示十进制的9

16进制是以0x开头的: 例如: 0x11则表示十进制的17

进制转换:

转为二进制:bin()

转为八进制:oct()

转为十进制:int(“要转换的数值”,要转换的数的进制)

转为十六进制:hex()

十进制转为二进制:bin(10)

十进制转为八进制:oct(8)

十进制转为十六进制:hex(10)

二进制转为十进制:int("1001",2)

二进制转为八进制:oct(0b1010)

二进制转为十六进制:hex(0b1001)

八进制转为二进制:八进制先转为十进制,再转为二进制bin(int('17',8))

八进制转为十进制: int('17',8)

八进制转为十六进制:就是八进制先转为十进制,再转为十六进制hex(int('17',8))

十六进制转为二进制: bin(0xa)

十六进制转为十进制: int("ff", 16)

                                   int('0xab', 16)

十六进制到八进制: oct(0xf)

字符串

字符串是单个字符的字符串的序列,其他类型的序列还包括列表和元祖

'''...''' , """..."""可以用来定义多行字符串

‘...’ , “...”只能用来定义单行字符串

""和''没有区别,仅仅是为了简化转义字符的使用。例如要输出:’3’比’2’大转义字符表示: '\'3\' 比 \'2\' 大’

简化表示:"'3'比'2'大"

字符串格式化,求5+3的和,在屏幕上输出:5+3=8

format问题:求5+3的和,在屏幕上输出:5+3=8%"5+3={0}".format(5+3) 

注:0相当于第1个占位符,"5+3={0},5-3={1}".format(5+3,5-3)

"5+3=%i,5-3%i"%(5+3,5-3) 注:i是类型

推荐使用format,可以复用:"5+3={0},5-3={1}{0}".format(5+3,5-3)

len(字符串名):计算字符串的长度。

例:s = 'span' 

print(len(s))   输出4

字符串名[索引]:得到索引位置的字符。

print(s[1]) 输出 p

注意:索引从0开始

print(s[-1]) 输出 n

注意:python中可以反向索引,从最后一个开始(-1),正向索引从左边开始计算,反向索引从右边开始计算

分片:从一个字符串中取出一部分的方法。格式:X[I:J]

含义:取出在X中从偏移量为I,直到但不包含偏移量为J的内容。

例:从字符串s = ”I love python”中提取字符串”love”:s[2:6]

注:分片的左边界默认为0,左边界默认为分片序列的长度

1.X[1:] 相当于X[1:len(X)]

2.X[:3] 相当于X[0:3]

3.X[:-1] 相当于X[0:-1] 结果为去除掉最后一个字符

4.X[:] 相当于X[0:len(X)]

合并:作为一个序列,字符串支持用+,+=进行拼接,或者用*进行重复

s = 'span’

s+'xyz’ 输出:spanxyz

s += 'abc' 输出:spanabc

s*3 输出:spanspanspan

修改字符串的大小写:title()

以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。

例:name = "jack love lily"

print(name.title())  输出


将字符串改为全部大写upper()或全部小写lower():

name = "jack love lily"

print(name.upper())

print(name.lower())

输出:


删除空白

剔除字符串末尾的空白:rstrip()

剔除字符串开头的空白:lstrip()

剔除字符串两端的空白:strip()

name = " pythin "

print(name.rstrip())

print(name.lstrip())

print(name.strip())

字符串特点:不可变性——在创建后不能就地改变。注意: 在之前的例子中,没有通过任何操作对原始的字符串进行改变,每个字符串都被定义为生成新的字符串作为其结果在核心类型中,数字,字符串和元组是不可变的;列表和字典是可变的。

raw字符串表示原始字符串:你看到这个字符串是什么就显示什么,所有字符都不进行转义

写法: 在字符串前面加r

作用: 抑制转义

如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀r,表示这是一个 raw 字符串,里面的字符就不需要转义了。

例如:r'\(^_^)/ \(~_~)/’还可以将raw字符串和多行字符串结合起来使用:a = r'''\(^_^)/\(~_~)/’‘’ 

注意:raw字符串不能以单个“\”结尾

类型转换

问题:"2"+3报错,类型不一致

隐式转换:小范围类型数据向大范围类型数据转换,自动完成。例如:3.2+33自动转为浮点型

显示转换:手动指定数据的类型例如:int(“2”)+3 将str类型的数据”2”转为int类型数据2,输出:5

"2"+str(3) 将int类型的数据3转为str类型数据”3”,输出:2

3int(3.2) 将float类型的数据转为int类型数据,输出:3

查看数据类型:type(数据)

例如:print(type(3)),输出


列表

列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。

定义格式:[元素一,元素二,...]

例如:定义列表students,存储学员姓名:

students = ["张三","李四","王五"]

查询元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python 即可

例如,下面的代码从列表 students 中提取第一个学员:

students = ["张三","李四","王五"]

print(students[0])

增加元素

1.在列表末尾添加元素:append()

例如,增加新学员展昭到students列表末尾:

students.append("展昭")

print(students)

2.在列表中插入元素:insert()

例如,增加新学员张龙到students列表第二个位置:

students.insert(1,"张龙")

print(students)

修改元素:要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

例如,将students中的第二个学员改名为包拯:

students[1] = "包拯"

print(students)

删除元素

1.使用del语句删除元素,条件是知道其索引。

例如,删除students列表中的第二个元素:

del students[1]

print(students)

2.使用方法 pop()删除元素 注:未指明索引时,默认删除的是最后一个元素,返回值为被删除的元素。

例如,删除students列表中的第一个元素:

students.pop()

print(students)

3.根据值删除元素remove()。返回值为被删除的元素。

例:删除students列表中的元素"包拯":

students.remove("包拯")

print(students)

组织列表:

1.使用方法sort()对列表进行永久性排序

例如: 让列表中的元素按照字母顺序排序:

cars = ['bmw', 'audi', 'toyota', 'subaru']

cars.sort()

print(cars)

按与字母顺序相反的顺序排列列表元素,向 sort() 方法传递参数 reverse=True:

cars = ['bmw', 'audi', 'toyota', 'subaru']

cars.sort(reverse=True)

print(cars)

2.使用函数sorted()对列表进行临时排序。要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数 sorted()。

例如:cars = ['bmw', 'audi', 'toyota', 'subaru’]

print(cars)

print(sorted(cars))

print(cars)

3.反转列表元素: reverse()

例如:cars = ['bmw', 'audi', 'toyota', 'subaru']

print(cars)

cars.reverse()

print(cars)

4.获取列表的长度:len()

例如:cars = ['bmw', 'audi', 'toyota', 'subaru']

print(len(cars))

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

定义格式:(元素一,元素二,...)

例如:定义列表numbers,存储整数数据:numbers = (200, 50)

1.尝试修改元组 numbers 中的一个元素,看看结果如何:

例如:numbers = (200, 50)numbers[0] = 1


由于试图修改元组的操作是被禁止的,因此 Python 指出不能给元组的元素赋值。

2.修改元组变量虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

例如:

numbers = (200, 50)

print(numbers)

numbers = (1,2,3,4)

print(numbers)

由于试图修改元组的操作是被禁止的,因此 Python 指出不能给元组的元素赋值

查询元素:通过索引获取对应的额元素

例如:

numbers = (200, 50)

print(numbers[0])

print(numbers[1])相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

字典

在 Python 中,字典是一系列键值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何 Python 对象用作字典中的值。

定义格式:在 Python 中,字典用放在花括号 {} 中的一系列键 — 值对表示,alien_0 = {'color': 'green', 'points': 5}

访问字典中的值:要获取与键相关联的值,可依次指定字典名和放在方括号内的键

例如:alien_0 = {'color': 'green'}

print(alien_0['color'])

添加键 — 值对:要添加键 — 值对,可依次指定字典名、用方括号括起的键和相关联的值

例如:

alien_0 = {'color': 'green', 'points': 5}

print(alien_0)

alien_0['x'] = 0

alien_0['y'] = 25

print(alien_0)

修改字典中的值:通过操作键来完成

alien_0 = {'color': 'green', 'points': 5}

alien_0['color'] = 'yellow'

print(alien_0)

删除键 — 值对:可使用 del 语句将相应的键 — 值对彻底删除。使用 del 语句时,必须指定字典名和要删除的键。例如:alien_0 = {'color': 'green', 'points': 5}

print(alien_0)

del alien_0['points']

print(alien_0)

创建一个空字典:有时候,在空字典中添加键 — 值对是为了方便,而有时候必须这样做。为此,可先使用一对空的花括号定义一个字典,再分行添加各个键 — 值对

例如:

alien_0 = {}

alien_0['color'] = 'green’

alien_0['points'] = 5

print(alien_0)

集合(set)

集合(set)是一个无序不重复元素的序列。它的主要作用如下:去重,把一个列表变成集合,就自动去重了关系测试,测试两组数据之前的交集、差集、并集等关系

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:parame = {value01,value02,...}或者set(value)

例:student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

print(student) 

# 输出集合,重复的元素被自动去掉

成员运算符in

如果在指定的序列中找到值返回 True,否则返回 False

例:# 成员测试

if('Rose' in student) :

     print('Rose 在集合中')

else :

     print('Rose 不在集合中')

例:a = set('abracadabra')     b = set('alacazam')

print(a)

print(a - b) # a和b的差集

print(a | b) # a和b的并集

print(a & b) # a和b的交集

print(a ^ b) # a和b中不同时存在的元素

s = set([3,5,9,10]) #创建一个数值集合

t = set("Hello") #创建一个唯一字符的集合

t.add('x') # 添加一项

s.update([10,37,42]) # 在s中添加多项

t.remove('H')

len(s)

一个数异或于同一个数两次,还是它本身(可用于变量交换值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值