Python 学习笔记.2
基础语法
注释:解释说明
单行注释:#
#变量
#Hello World!
多行注释:’’’,’’'或者 “”","""
'''
语句
语句
语句
'''
'''
a,b,c = 3,4,5
p = (a+b+c)/2
S = (p*(p-a)*(p-b)*(p-c))**0.5
print('三角形的面积为:',S)
'''
数据类型:
数据类型 | 又名 | 描述 |
---|---|---|
整型 | int | 14 |
浮点型 | float | 3.14 |
布尔型 | bool | True False |
字符串 | str | ‘python’ |
复数 | complex | 12j |
元组 | tuple | (1, 2, 3, 4, 5 ) |
列表 | list | [‘python’, ‘Guido’, 1991, 2020] |
字典 | dict | {‘a’: 1, ‘b’: 2, ‘b’: ‘3’} |
集合 | set | set(‘abcdefg’) |
接触的数据类型
- int
(1).内存地址:因 python 3 中 int 长整型,所以理论上支持无限大的数字。
(2) 二进制转换 - float
(1) 内存地址:Python 3 对于浮点数默认的是提供17位数字的精度。
(2) 二进制转换,小数转二进制会有精度损失 - bool
True,False
(1) 内存地址:通常情况一个字节
(2) 表达式的结果
标识符
命名规则
- 只能是字母,数字,下划线,且数字不能开头。
- 不能是关键字。
- 大小写敏感。
- 见名知意(不能用拼音,必须纯英文):
主要还是要做到一看就可知道含义。 - python 中,以下划线开头的标识符有特殊含义,
因此,除非特定场景需要,应避免使用以下划线开头的标识符。 - python 允许使用汉字作为标识符,但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。
标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:
当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
模块内部的类名,可以采用 "下划线+首字母大写" 的形式,如 _Book;
函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;
常量命名应全部使用大写字母,单词之间可以用下划线分割。
命名方法
驼峰 : studentName = "Calion_ss"
下划线连接 : student_name = "Calion_ss"
相关引用
变量
在 Python 中
-
变量 和 数据 是分开存储的;
-
数据 保存在内存中的一个位置;
-
变量 中保存着数据在内存中的地址;
-
变量 中 记录数据的地址,就叫做 引用;
-
使用 id() 函数可以查看变量中保存数据所在的 内存地址。
注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用。
变量 不再 对之前的数据引用;
变量 改为 对新赋值的数据引用。 -
不可变类型,内存中的数据不允许被修改:
int, bool, float, complex, str,tuple -
可变类型,内存中的数据可以被修改:
list,set,dict
(字典的 key 只能使用不可变类型的数据) -
局部变量 是在 函数内部 定义的变量,只能在函数内部使用。
-
全局变量 是在 函数外部定义 的变量(没有定义在某一个函数内),所有函数 内部 都可以使用这个变量。
变量 就像你取快递时驿站给你用于取快递的位置序号,你可以通过位置序号找到快递,知道它在哪儿。但位置序号并不等同于快递,快递的本体就是 引用 ,位置序号则是可以重新代表新的快递的 变量 。
(毕竟驿站货架位置就那么多,不重复使用它也放不下╮(╯▽╰)╭)。
关键字
具有特殊含义的单词(35)
import keyword
print(keyword.kwlist)
[ 'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
运算符(运算符两侧留空格,规范代码)
1. 算数运算符
运算符 | 描述 |
---|---|
+ | 加:两个对象相加 |
- | 减:得到负数或是一个数减去另一个数 |
* | 乘:两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除:x除以y |
% | 取模(余):返回除法的余数 |
** | 幂:返回x的y次幂 |
// | 取整除:返回商的整数部分(向下取整) |
注:0–False 其他整数–True True默认1。
2. 比较运算符
运算符 | 描述 |
---|---|
> | 大于:返回x是否大于y |
< | 小于:返回x是否小于y |
>= | 大于等于:返回x是否大于等于y |
<= | 小于等于:返回x是否小于等于y。 |
== | 等于:比较对象是否相等 |
!= | 不等于:比较两个对象是否不相等 |
<> | 等同于 !=, python 3.X已废弃 |
注:所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。
3. 逻辑运算符
运算符 | 描述 |
---|---|
and(与) | x and y,若x为真,则返回y;若x为假,则返回 x |
or(或) | x or y,有一个为真,结果就为真 |
not(非) | 非真即假,非假即真 |
4. 成员运算符
运算符 | 描述 |
---|---|
in | 有真无假 |
not in | 有假无真 |
5. 身份运算符
(面向对象部分详细介绍,判断对象是否来自一个类型)
运算符 | 描述 |
---|---|
is | 是判断两个标识符是不是引用自一个对象 |
is not | 是判断两个标识符是不是引用自不同对象 |
注:
x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False。
x is not y , 类似 id(x) != id(y),如果引用的不是同一个对象则返回结果 True,否则返回 False。
id() 函数用于获取对象内存地址。
6. 赋值运算符
运算符 | 描述 |
---|---|
+= | a += b<----->a = a + b |
-= | a -= b<----->a = a - b |
*= | a *= b<----->a = a * b |
/= | a /= b<----->a = a / b |
%= | a %= b<----->a = a % b |
**= | a **= b<----->a = a ** b |
//= | a //= b<----->a = a // b |
= | c = a + b 将 a + b 的运算结果赋值为 c |
7. 位运算符
按位运算符是把数字看作二进制来进行计算的。
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
l | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
8. 运算符优先级
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^ l | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is,is not | 身份运算符 |
in,not in | 成员运算符 |
not ,and, or | 逻辑运算符 |
9. 一元,二元和三元运算符
一元,二元,还是三元运算,是符依据参与运算的操作数进行区分。
注:加法运算符和减法运算符既是一元运算符也是二元运算符。