python是一门解释性的语言,这是和c++最不同的地方,这意味着它有着良好的跨平台兼容性,所以也被称为胶水语言。
字面量是指代码中被直接写下来的固定值,它包含了数字(整型、浮点型、bool型)和数据容器(列表、元组、字符串、集合、字典)。
变量是程序运行时,存储计算结果或能表示值的抽象概念,这与c++中没有太大的区别,不过python中变量无类型,数据有类型,所以我们在定义变量时不用定义它的数据类型。type()可查看数据类型。int()、float()、str()函数实现数据类型转换。
------------------
标识符:用户在编程时所使用的一系列名字,用于给变量、类、方法等命名。(python中的方法有点像是c++类中的函数)
限制:(和c++中限制相同)
内容限制(只允许出现英文、中文(不推荐哈)、数字(不可用于开头)、下划线(_))
大小写敏感
不可使用关键字
import keyword print(keyword.kwlist)
可通过这两行代码查询python中的保留字(关键字)
-----------------
输入输出:print()、input()(input只能得到字符串型的数据)
------------------
运算符: 和c++基本相同,算术运算和逻辑运算。
基本的加减乘除(+、-、*、/)
//:取整除 # 11//2 = 5
%:取余数 # 11%5 = 1
**:指数 # 2**3 = 8
赋值运算符
比较运算符
-------------------
语句:python中是通过缩进来确定归属的,相当于c++中的大括号if、for、while、continue、break
除了for语句和c++有所不同,其他语句格式基本一致(不用括号,用冒号和缩进来确定区域)
-------------------
函数:
def 函数名(参数):
函数体
return 返回值
函数说明文档 多行注释
"""
形参说明
返回值说明
"""
函数嵌套 函数调用函数
-----------------------
变量作用域:变量的作用范围
局部变量:定义在函数体内的变量,只在函数体内部有用
global关键字将函数内定义的变量声明为全局变量
全局变量:函数体内和体外均可使用
当全局变量和局部变量命名相同时:
第一个num输出20,第二个num输出10
-------------------------
python的数据容器有列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)。这里面列表、元组、字符串是支持下标索引的,是有序列的,支持序列切片,集合和字典则无法通过下标索引取用。
python中的列表(list)与c++中的数组还是有所不同的,[元素1,元素2,元素3, ............]
列表中存储元素类型不限
嵌套列表:[[1,2,3],[2,3,4]]
列表的下标索引取出元素:
列表中第一个元素的下标索引是0(正向索引)或-1(反向索引)(不同的地方)
列表截取部分也行 [0:2] # 取出第一、二个元素
![](https://i-blog.csdnimg.cn/direct/1a2948d1f37443738b47a85c2503f3e0.jpeg)
元组(tuple):一个只读的列表,(元素1,元素2,元素3,........),(元组中只有一个元素时要带逗号,否则会报错),支持下标索引【】【】,tuple里面的元素无法修改,但tuple里面list的内容可以修改。
![](https://i-blog.csdnimg.cn/direct/31b9da867a9145cfa6e5a895b3910f4a.jpeg)
字符串(str):也是只读容器,无法修改。与c++中的字符串基本相同。
![](https://i-blog.csdnimg.cn/direct/24a3f0b8dc204eee8511c650e3033540.jpeg)
列表、元组、字符串都可以使用下标索引取用,也被称为序列容器。
集合(set):不支持重复数据,可自动去重,内容无序。
![](https://i-blog.csdnimg.cn/direct/be2136e1c9f447cabce9c28783d7e541.jpeg)
![](https://i-blog.csdnimg.cn/direct/6659524aebf4439d8b7bd795fabf1a1c.png)
字典(dict) 存储元素为一个个键值对,不允许key值的重复,新的会覆盖老的,字典不能使用下标索引,但可以基于key获取value,字典的key和value可以是任意数据类型(key不能是字典)。
{key : value, key : value,............}
![](https://i-blog.csdnimg.cn/direct/61ecbd91aa1c486483ed2c11c6ec5c37.jpeg)
![](https://i-blog.csdnimg.cn/direct/62a0a87b753d4cd3b0b79f629fbf518a.jpeg)
同样是面对对象编程的语言,python和c++的相同之处还是挺多的,c++有stl标准库函数,python有许多的包可以使用。甚至很多情况我们并不需要理解包内的函数逻辑是怎样的,只要找到它可以说完成这个功能就行了,安装并导入。很多人都说python比c++好学,我觉得两者各有各的难度,python中的包就像哆啦A梦的口袋,感觉里面有无穷无尽的方法,不过如果要想去深入理解也是要花费很大精力的。c++中的功能更偏向于自己去写,只能说都挺难学好。