python的基础语法
学习python 的环境为windows下,使用的是Python 3.7版本
python 环境的安装
可以参考曾经的软件安装管家
python 环境的安装:https://mp.weixin.qq.com/s/uYaA-6O_hQ-SPTSymNNNGQ
python 编译器PyCharm的安装:https://mp.weixin.qq.com/s/NT_IGTrf80GG8wWeHYXarA
如果想要在其他环境中,Linux, Mac OS X下可以参考菜鸟教程
python 的基础语法
- 交互式编程

只需要输入执行的语句,然后就可以得到结果
- 脚本式编程

可以讲程序放在一个.py的文件中,然后通过python 的解释器在终端中运行

标识符
python中的标识符,同C/C++,java的标识符格式一样,也是由数字,字母,下划线组成
同理,标识符不可以由数字开头,区分大小写
以下划线开头的标识符有着特殊的意义
- 以单下划线开头
_foo,代表不能直接访问的类属性,只可以通过类提供的接口进行访问 - 以双下划线开头的
__foo,代表类的私有成员

而已双下划线开头和结尾的__foo__代表python类的特殊方法,比如:__init__()表示类的构造函数
如果想要在同一行显示多条语句,那么语句之间必须使用;分离。或者一行执行一条语句,可以省略末尾的;分隔符

行和缩进
在python中,一个作用域不是使用{}的形式进行声明,而是采用缩进的格式

缩进的空白数量是可以自己定义的,想空多少空多少,但是同一个作用域的缩进空白必须统一,否则就会报错

IndentationError: unindent does not match any outer indentation level
多行语句
如果在写一行语句的时候,感觉这个语句很长,可以采用C语言中的\符号,将一行语句分多行进行显示
t1 = 1
t2 = 2
t3 = 3
val = t1 + \
t2 + \
t3
但如果语句中包含[],{}或者()就可以不要多行连接符
days = ["Monday", "Tuesday", "Wednesday",
"Thursday","Friday"]
引号
python 中有很多表示字符串的方法,单引号,双引号,三引号

区别:
单引号和双引号无法表示一个段落

另外,三引号也可以被当做注释

python中的注释
#,一般注释单行""",''',三引号,一般注释多行
python 中的变量
变量就是存储在内存中数据的值,当我们创建一个变量的时候,就会在内存中开辟一个空间。
在python中,编译器会根据变量的数据类型,然后分配指定的内存,并决定什么数据可以被存储在内存中
变量的赋值
由于在python中的变量不需要进行类型的声明,他每个变量在内存中的创建,包括变量的标识,名称和数据等信息。

所以说,变量在使用前必须赋值,变量赋值以后才会被创建。
一般可以使用=进行赋值,左边为变量名,右边为存储在变量中的值
如果想要为多个变量赋值,可以采用这种写法
a = b = c = 1
或者
a , b ,c = 1, "hello", 3
标准数据类型
- Numbers,数字
- String,字符串
- List,列表
- Tuple,元组
- Dictionary,字典
数字
他支持四种不同的数字类型
| 类型 | 含义 |
|---|---|
| int | 有符号整形 |
| long | 长整形 |
| float | 浮点型 |
| comples | 复数 |
在 Python3.X 版本中 long 类型被移除,使用 int 替代
字符串
字符串一般是指,由数字,祖母,下划线组成的一串字符
s = "hello world"
一般字符串列表由两种取值的顺序
- 从左向右索引,他的下标默认从 0 0 0开始
- 从右向左索引,他的下标默认从 − 1 -1 −1开始

而在python中,字符串的截取操作也很方便,直接使用[开始位置:结束位置+1]就可以得到该范围的字符串
>>> s = "hello world"
>>> s[1:5]
'ello'
甚至于还有如下的操作
>>> s[0] # 输出一个字符
'h'
>>> s[2:] # 输出2下标后的所有字符
'llo world'
>>> s * 2 # 字符串输出2次
'hello worldhello world'
>>> s + " Test" # 字符串拼接
'hello world Test'
还可以根据指定的步长来截取区间内的字符串
>>> s[1:6:2]
'el '
>>> s[1:6]
'ello '
列表
列表,他支持字符,数字,字符串,甚至列表的一个嵌套操作,使用[]来标识
>>> arr = ["abc",123,["def"],'c']
>>> arr
['abc', 123, ['def'], 'c']
注意:
- 他的切割同字符串中的操作,并且
list中的元素是可以改变的 - 可以使用
+操作符进行拼接
元组
元组,显示同列表差不多,只是他只可以进行读,不能修改,使用()来标识,内部使用,隔开,不可以二次赋值,一个只读列表

元组不允许被更新,列表可以被更新
字典
字典,相当于C/C++中的unordered_map哈希表,以key=value的格式对数据进行存储,并通过key来获取value中的数据
>>> dict = {}
>>> dict['水果'] = "apple"
>>> dict[2] = "数字"
>>> dict[2]
'数字'
>>> dict['水果']
'apple'
>>> dict.keys()
dict_keys(['水果', 2])
>>> dict.values()
dict_values(['apple', '数字'])
>>> dict
{'水果': 'apple', 2: '数字'}
注意:
- 字典是一种映射类型,元素为键值对
- 字典的关键字为不可变类型,并且不能重复
- 创建空字典使用
{}
set集合
集合,他是一些元素的一个集合,构成集合的事物或者对象称为元素或者成员,可以对元素进行去重
集合的创建可以使用{}或者set()
>>> st = {'apple','banana','orange','apple'}
>>> st
{'orange', 'apple', 'banana'}
>>> st2 = set('abcdefgabcdrg')
>>> st2
{'b', 'e', 'f', 'a', 'c', 'r', 'g', 'd'}
>>>
空集合不可以使用{}来创建,因为{}是用来创建一个空字典的
集合之间的运算:
>>> st2 = set('abcdefgabcdrg')
>>> st2
{'b', 'e', 'f', 'a', 'c', 'r', 'g', 'd'}
>>> st1 = set('abcrdszxcv')
>>> st1
{'b', 'x', 'a', 'c', 'r', 's', 'z', 'v', 'd'}
>>> print(st1 & st2) # 集合的交集
{'b', 'a', 'c', 'r', 'd'}
>>> print(st1 | st2) # 集合的并集
{'b', 'e', 'f', 'x', 'a', 'c', 'r', 's', 'z', 'g', 'v', 'd'}
>>> print(st1 - st2) # 集合的差集
{'x', 'z', 's', 'v'}
>>> print(st1 ^ st2) # 集合中不同时存在的元素
{'e', 'f', 'x', 'z', 'g', 's', 'v'}
python 运算符
常见的算术运算符
| 运算符 | 描述 |
|---|---|
| + | 两数相加 |
| - | 两数相减 |
| * | 两数想乘 |
| / | 两数相除,浮点数的除法 |
| // | 两数相除,向下取整 |
| % | 除法操作的余数 |
| ** | 幂运算 |
常见的比较运算符
| 运算符 | 描述 |
|---|---|
| == | 等于 |
| != | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 直接赋值 |
| += | 加法赋值 |
| -= | 减法赋值 |
| *= | 乘法赋值 |
| /= | 除法赋值 |
| %= | 取模赋值 |
| **= | 幂赋值 |
| //= | 向下取整赋值 |
| := | 海象运算符,可在表达式内部为变量赋值。python3.8版本新增 |
位运算符
| 运算符 | 描述 |
|---|---|
| & | 按位与运算 |
| | | 按位或运算 |
| ^ | 按位异或 |
| ~ | 按位取反 |
| << | 左移操作 |
| >> | 右移操作 |
逻辑运算符
| 运算符 | 描述 |
|---|---|
| and | 布尔与 |
| or | 布尔或 |
| not | 布尔非 |
成员运算符
| 运算符 | 描述 |
|---|---|
| in | 在指定的序列中找到该值,返回true |
| not in | 没有在指定的序列中找到该值,返回false |
身份运算符
| 运算符 | 描述 |
|---|---|
| is | 判断两个标识符是不是引用自一个对象 |
| is not | 判断两个标识符是不是引用自不同对象 |
可以使用is来判段python中的赋值操作,是深拷贝还是浅拷贝
-
对于数值类型的数据

-
对于list类型的数据

可以发现,对于数值类型和字符串类型的数据,赋值给一个新的变量后,没有发生修改之前,使用的是引用,但是当修改为不同的数据后,就会发生新的拷贝
对于list类型的数据,直接使用赋值运算符,无论修改与否,都是引用操作,也就是浅拷贝
is和==区别
is用于判断两个引用对象是否为同一个对象==用于判断引用变量的值是否相等
本文详细介绍了Python的基础知识,包括环境搭建、基本语法、变量定义、数据类型及运算符等内容。适合初学者快速上手。

被折叠的 条评论
为什么被折叠?



