python的变量不需要声明,每个变量使用前必须赋值,变量赋值后才会被创建
python允许同时给多个变量赋值
a = b = c = 1
a, b, c = 1, 2, "runoob"
python 中可以用type()或者isinstance(object,classinfo)判断数据类型
一、标准数据类型
标准数据类型共有六种
- Number
包含int、float、bool、complex 四种类型
①bool也是number,只存储1/0
②//可以直接取结果整数
- String
①可直接用变量[头下标:尾下标]截取字符串
②python中 的字符串不可改变,无法向一个字符串单个字符赋值,例如word[0] = 'm’会导致错误 - List
List是python中使用最频繁的数据类型
①List可以完成大多数集合类的数据结构实现,List中元素类型可以不相同,支持Number、String甚至List(嵌套列表)
②List中元素可以单个赋值
③List也支持变量[头下标:尾下标]截取,还可以接受第三个参数作为截取步长
可利用List的截取步长公式翻转字符串
假设列表 list = [1,2,3,4],
list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
inputWords[-1::-1] 有三个参数
第一个参数 -1 表示最后一个元素
第二个参数为空,表示移动到列表末尾
第三个参数为步长,-1 表示逆向
def reverseWords(input):
inputWords=input.split(" ")
#利用split函数通过空格将单词分割成列表
inputWords=inputWords[-1::-1]
output="".join(inputWords)
#重新组合字符串 "".join(list)表示把list合并成字符串
return output
if __name__ == '__main__':
input ='I dont like you'
rw= reverseWords(input)
print(rw)
输出结果
- 元组
元组(tuple)与列表类似,但元组元素不可修改,写在()里面
元组也可以索引和切片(即利用[]截取),可以将字符串看做一种特殊的元组
元组元素不可修改,但元素可以是可变对象例如list - Set
集合是由一个或多个不可重复的元素组成的,
使用set{}或set()创建(空集合必须用set(),因为{}是用来创建空字典)
基本功能是成员关系测试和删除重复元素。
# set可以进行集合运算
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 中不同时存在的元素
输出结果
- 字典
字典是Python中另一常用的内置数据类型
list有序,dictionary无序,字典当中元素不可通过偏移存取(切片),只可通过键存取。
字典是映射类型,{ 键(key):值(value)},键不可变且不可重复
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
dictionary拥有自己的构造函数dict(),可以直接从键值对序列中构建字典,还有一些内置函数
二、与Java、C++区别
Java与C++的区别:①因为Java跨平台,所以Java数据类型大小必须固定 ②Java 数据类型没有C++丰富
Java | C++ | Python |
---|---|---|
强类型语言 | 强类型语言 | 弱类型语言 |
需关键字定义数据类型 | 需定义数据类型 | 无需定义 |
各个数据类型的存储空间大小固定 | 仅规定最小存储空间 | 无规定,根据变量取值自动分配存储空间 |
编码时通过关键字指定变量的类型 | 同Java | 运行时,计算变量取值,自动选择数据类型 |
boolean、char、byte、short、int、long、float、double | bool、char、wchar_t、short、int、long、long long、float、double、long double | int、float、bool、complex、string、list、tuple、set、字典 |
无复杂数据类型 | 无复杂数据类型 | 自身拥有内置的复杂数据类型 |