人工智能之python基础语法

本文是小白学习python基础语法的一部分总结,欢迎大家了解或复习python观看,让我们先来讨论一下Python的变量有没有类型?其实python是没有类型的,但 Python 却是区分类型的,那类型在哪里呢?事实是,类型是跟着内存中的对象走的。类型属于对象,变量是没有类型的。一般也分实参和形参。
《learning python》中的一个观点:变量无类型,对象有类型。
python中的变量都是指针,可以指向任意类型
对象类型可以分为不可变对象类型和可变数据类型
不可变(immutable)对象类型
int
float
decimal
complex(复数)
bool
str(字符串)
tuple(元祖)
range
frozenset
bytes
可变(mutable)对象类型
list(列表)
dict(字典)
set(容器)
bytearray
user-defined classes (unless specifically made immutable)

在这里插入图片描述

常用的数据类型基本介绍

常用类型:数字,列表(list),元祖(tuple),字典(dic),集合(set),字符串。
python的存储方法:
在python中,不直接存储值,而是存储值的内存地址或者引用。
在python中,不需要事先声明变量名及其类型,使用赋值语句可直接创建任意类型的变量,变量的类型取决于等号右侧表达式值的类型。
赋值比如a=‘ABC’中,Python解释器:

  • 内存中创建一个‘ABC’的字符串
  • 创建一个名为a的变量,并把它指向ABC

下面进行列表元组字典集合运算符的基本介绍:

list(列表)

  • 列表可完成大多数集合类的数据结构的实现,列表中元素可以不相同;
  • 列表是写在方括号(【】)之间的,用逗号(,)分隔开的元素列表;
  • 列表索引值是以0为开始值,-1为结束值;
  • 列表可以进行拼接。

tuple(元祖)

  • Tuple与list类似不同之处在于tuple元素不能修改,tuple写在小括号里元素之间用逗号(,)隔开;
  • 元素不可变,但可以包含可变对象如list;
  • 注意只有一个元素的tuple,必须加逗号。

dic(字典)

  • 是无序对象集合,使用(key-value)存储,具有极快的查找速度;
  • key 使用不可变对象类型;
  • 同一个字典,key必定唯一。

set(集合)

  • set与dic类似,也是一组key的集合,但不存储value;
  • 在set中没有重复的key ,set也是无序的,重复元素在set中会自动被过滤。

String(字符串)

  • 支持字符串的拼接,截取等多种运算;
  • 字符串可以保存到变量里,也可以单独存在;
  • 字符串属于不可变类型,所有方法都返回处理后的字符串;

运算符

接下来介绍运算符:
运算符有4种:算术运算符,关系运算符,逻辑运算符,成员运算符。

算术运算符

  • +:可以进行加法运算,也可以进行字符串之间的拼接;
  • -:可以进行减法运算,也可以进行消除相同元素例如:
pythona=[1,2,4,1]
b=[1,2]
c=list(set(a)-set(b))
print(c)
>>[4]
``
  • *:可以对元素进行多次重复
  • /:可以得到浮点型的结果(这个跟Java,c还是有区别的)
  • %:取余
  • **:返回x的y次方 例如
print(2**2)  
>>4
  • //:取整除,向下取整(这个java,c的/是一样的)

逻辑运算符

  • and:x and y 如果x为false就返回true,否则返回true;
  • or:x or y 如果x为true返回x,否则返回y;
  • not:not x 如果x为true返回false,否则返回true。

成员运算符:

  • in:在指定的序列中找到值就返回true,没找到值就返回false;
  • not in :在指定的序列没有找到值就返回true,找到值就返回false。

身份运算符

主要是is与==区别:
Is:判断两个变量引用对象是否为同一个?
==:用于判断引用变量值是否相等

五种数据类型详细介绍

list(列表)

  • 列表列表可完成大多数集合类的数据结构实现;
  • 列表中元素可以不相同,它支持数字字符串,甚至可以包括列表;
  • 列表元素的修改:列表大小无限制,可随时修改.
    基本操作:

代码 用法
list+list 连接两个列表
list*整数类型 队列表进行整数次重复
list【整数类型】 索引元素
len(seq) 列表中元素个数
list【整数:整数】 取列表的一个子序列
for var in list 列表进行循环枚举
expr in list 检查expr是否在列表中
list.append(x) 在列表的末尾添加元素x
list.sort( ) 排序
list.reverse( ) 反转
list.index(x) 第一个出现x的索引值
list.insert(i,x) 在位置i处插入x
list.count(x) 返回x出现数量
list.remove(x) 删除元素x
list.pop(i) 取出列表中位置i的元素,并删除它

tuple(元祖)

  • 元祖中各元素存在先后关系,可通过索引访问元祖中元素
  • 元组定义后不能更改,也不能删除
  • 可通过索引访问的部分元素
  • 与字符串一样,可通过+号或*号进行运算

元组与列表的区别

  • 元组不可变;
  • 元组访问速度比列表更快,开销更小;
  • 元组可使代码更加安全;
  • 元组可做字典的键,也可做集合元素,但列表不可以,包含列表的元组也不行。

切片操作:
切片是用来获取列表元组,字符串等有效序列中部分元素的一种语法。
【start:end:step】

dir(字典)

  • 字典是无序的对象集合,使用(key-value)存储具有极快的查找速度;
  • Key,必须使用不可变类型;
  • 同一个字典key必须唯一。

代码 用法
keys() 返回字典中键的列表
values() 返回字典中值的列表
Items() 返回tulple的列表,每个tuple由key—value组成
clear 删除字典的所有条目
copy 返回字典结构的一个拷贝,但不复制嵌入结构
update(x) 用字典x的键值对更新字典内容
get (x[y]) 返回键x若为找到该件返回none,若提供y未找到x时返回y

字典中的值可以取任意数据类型,但键是不可变的,如字符串数字或元组
创建字典:

  • 常规方法:dict={“1”:23,“2”:“45”}
  • 使用dict函数,通过其他映射,如字典或者键值序列来创建
    items=[(‘name’,‘xx’),(‘age’,‘12’)]
  • 也可通过关键字参数创建字典
    d=dict(name=‘xx’,age=‘12’)
    字典创建添加与删除
  • 若键存在,表示修改此键值
  • 若键不存在,则添加新元素
    字典元素修改添加与删除

代码 用法
update(dict) 可以将另一个字典的元素一次性全部填加,对当前字典对象,如果两个字点有相同的键,则以另一个字典的值为准,对当前字典进行更新
pop(x) 删除指定的间对应的元素,同时返回对应的值
popitem 删除字典的一个键值对并返回,包含(key,value)的元组
del(x) 可以使用del删除指定的间对应的元素

set(集合)

  • 无序可变的容器对象,所有元素都放在一个{}里,元素之间使用,号分隔;
  • 同一个集合内的元素,是唯一的,不允许重复;
  • 集合只能包括数字,字符串,元组等不可变类型的数据;
  • 集合中的元素是无序的,元素存储顺序与添加顺序并不一致
  • 集合中并不支持使用下标直接访问特定位置下的元素,也不支持使用random的choice()函数,但支持使用random模板下的sample()函数,随机选取部分元素;
  • 可看成数学中无序、无重复的元素集合,两个set可以进行交叉并 。
    常用方法

代价 用法
s.update() 将元素添加到集合s中,元素不可以是列表元组字典
s.add(x) 将x添加到集合s中,x若已存在,不进行任何操作
s.pop(x) 将随机删除集合中的一个元素并返回
s.remove(x) 将x从s中删除,如果不存在,发生错误
s.discard(x) 将x从s中移除,如果不存在,不发生错误

String(字符串)

特点:可以使用单引号,双引号,三引号括起来,使用反斜杠转义特殊字符,Python 3中,原码文件默认以utf-8 编码,所有字符串都是unicode编码

  • 支持字符串的拼接,截取等多种运算;
  • 字符串可以保存到变量里,也可以单独存在;
  • 字符串属于不可变类型,所有方法都返回处理后的字符串;
  • 可是使用type()函数来测试字符串类型;
  • 单个索引辅助访问字符串的特殊位置:string[index]
  • python字符串索引从0开始,一个长度为L的字符串最后一个字符为L-1;
  • python允许反向索引,最右侧索引为-1
    常用方法

代码 用法
+ 连接字符串
* 字符串的重复
string[ index] 索引值
string[ : ] 切片
len(string) 字符串的长度
string.upper() 转大写
string.lower() 转小写
string.strip() 取出两边空格
string.spilt() 指定字符串分割为数组
string.join() 连接两个字符串序列
string.find() 搜索指定字符串序列
string.replace() 替换字符串
for var in string 字符串的迭代

上述方法实践:
在这里插入图片描述
在这里插入图片描述

其实还有好多方法,大家可以去python的api文档看,好累呀!!!
**欢迎提出意见,一起改进,下回发个有技术含量的!!! *

发布了13 篇原创文章 · 获赞 23 · 访问量 2152

猜你喜欢

转载自blog.csdn.net/qq_43688587/article/details/103965408