写在前面
一、 解释器
Python的解释器是Python.exe,用来解释运行编写的Python代码
我们下载的Python(无论是2版本,还是3版本)自带解释器和编译器,可以直接在命令行敲入代码,或者写一个文本然后调用Python的解释器来执行也可以
常见的有CPython、IPython、PyPy、Jython、IronPython等
二、 Python编程模式
Python 的编程模式分为两种:交互式、脚本式
**交互式编程:**打开 cmd 窗口(命令提示符窗口),在窗口中键入python进入了交互式编程,此时直接输入 python 语句就可以得到运行的结果
**脚本式编程:**先把 python 语句写好并保存在后缀为 .py 的文件里,从外部调用这个文件,也可以使用 cmd 窗口进行调用
交互式编程
在命令提示符中输入"Python"命令来启动Python解释器
脚本式编程
- cmd窗口调用.py文件
- 安装IDE(以PyCharm为例)
PyCharm是一个IDE,使编写程序更加方便,但是PyCharm不带Python解释器,所以在安装PyCharm之前,要安装好Python
Pycharm配置好解释器之后如下所示: -
File→Setting→Python Interpreter查看
基础语法
一、 编码
默认情况下为 UTF-8 编码,所有字符串都是 unicode 字符串
二、 import
在 python 用 import 或者 from…import 来导入相应的模块
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的导入全部函数,格式为:from somemodule import *
三、 标识符
- 第一个字符必须是字母表中字母或下划线 _
- 标识符的其他的部分由字母、数字和下划线组成
- 区分大小写
- 不可以使用关键字
- 在 Python 3 中,可以用中文作为变量名
四、 关键字(保留字)
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
五、 注释
单行注释
以 # 开头
print("Hello World!");
多行注释
①多个 # 号
② ‘’’
'''
第一行注释
第二行注释
'''
③ “”"(建议使用)
"""
第一行注释
第二行注释
"""
六、 语句
单行语句
Python一般为单行语句 如果语句很长,可以使用 反斜杠 \ 来实现多行语句 tips:在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \
fruit = apple + \
banana + \
peach
fruit = ['apple', 'banana',
'peach']
同一行显示多条语句
同一行显示多条语句时,语句之间使用分号 ; 分割
七、 代码块(多个语句构成的代码组)
代码块的表示
区别于C、Java等语言,Python代码块不使用大括号 {} 用缩进(or空格)来表示代码块,因此同一个代码块的语句必须包含相同的缩进空格数 tips:缩进是Python语法的一部分
代码块的应用
缩进相同的一组语句构成一个代码块,成为代码组 if、while、def和class这样的复合语句,首行以关键字开始,以冒号: 结束,该行之后的一行或多行代码构成代码组【首行及后面的代码组称为一个子句(clause)】 例:
if expression :
suite
elif expression :
suite
else :
suite
八、 空行
空行也是程序代码的一部分
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。 类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
作用:分隔两段不同功能或含义的代码
tips: 与代码缩进不同,空行并不是Python语法的一部分(不写也不会出错),但是是程序代码的一部分
九、 等待用户输入
"\n\n"在结果输出前会输出两个新的空行,按下 enter 键时,程序将退出:
input("\n\n按下 enter 键后退出。")
十、 print 输出
print 默认输出换行,如果要实现不换行需要在变量末尾加上 end=""
x="a"
y="b"
print( x )
print( y )
"""
a
b
"""
print( x, end=" " )
print( y, end=" " )
print()
"""
a
b
"""
十一、 变量
没有类型,不需要声明!
类型是变量所指的内存中对象的类型
每个变量在使用前都必须赋值,赋值后才会被创建
十二、 赋值
赋值:变量名 = 变量值
多个变量同时赋同一值
a = b = c = 1
"""
a=1
b=1
c=1
"""
多个变量同时赋不同值
a, b, c = 1, 2, "runoob"
"""
a=1
b=2
c="runoob"
"""
十三、 查询类型
type
内置的 type() 函数可以用来查询变量所指的对象类型
a,b,c = 1,2,"hello"
print(type(a), type(b), type(c))
"""
输出结果
<class 'int'> <class 'int'> <class 'str'>
"""
isinstance
isinstance 来判断数据类型
a,b,c = 1,2,"hello"
print(isinstance(a,int),isinstance(x,int))
"""
输出结果:
True False
"""
区别
type()不认为子类是一种父类类型。 isinstance()认为子类是一种父类类型
class A:pass
class B(A): pass
print(isinstance(A(), A),type(A()) == A ,isinstance(B(), A),type(B()) == A)
"""
输出结果:
True True True False
"""
十四、 运算符
算数运算符
符号 | 意义 |
---|
+ | 加 | - | 减 | * | 乘 | \ | 除,得到浮点数 | \ \ | 除,向下取整 | % | 取余 | ** | 乘方 |
代码示例:
print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
print(5 // 2)
print(5 % 2)
print(5 ** 2)
"""
输出结果:
7
3
10
2.5
2
1
25
"""
比较运算符
所有比较运算符返回1表示真,返回0表示假,分别与特殊的变量True和False等价
运算符 | 描述 | 实例(a = 10,b = 20) |
---|
== | 等于,比较对象是否相等 | (a == b) 返回 False | != | 不等于, 比较两个对象是否不相等 | (a != b) 返回 True | > | 大于, 返回x是否大于y | (a > b) 返回 False | < | 小于,返回x是否小于y | (a < b) 返回 True | >= | 大于等于, 返回x是否大于等于y | (a >= b) 返回 False | <= | 小于等于,返回x是否小于等于y | (a <= b) 返回 True |
代码示例:
a = 21
b = 10
print('a =',a)
print('b =',b)
if (a == b):
print("a == b")
else:
print("a != b")
if (a != b):
print("a != b")
else:
print("a == b")
if (a < b):
print("a < b")
else:
print("a >= b")
if (a > b):
print("a > b")
else:
print("a <= b")
'''
输出结果:
a = 21
b = 10
a != b
a != b
a >= b
a > b
'''
赋值运算符
运算符 | 描述 | 实例(a=10,b=20) |
---|
= | 简单的赋值运算符 | c = a + b, 将 a + b 的运算结果赋值为 c | += | 加法赋值运算符 | c += a 等效于 c = c + a | -= | 减法赋值运算符 | c -= a 等效于 c = c - a | *= | 乘法赋值运算符 | c *= a 等效于 c = c * a | /= | 除法赋值运算符 | c /= a 等效于 c = c / a | //= | 向下取整除赋值运算符 | c //= a 等效于 c = c // a | %= | 取模赋值运算符 | c %= a 等效于 c = c % a | **= | 幂赋值运算符 | c **= a 等效于 c = c ** a(c的a次幂) | := | 海象运算符,在表达式内部为变量赋值,Python3.8 版本新增 | 例:if (n := len(a)) > 10 |
代码示例:
a = 2
b = 10
c = 5
print('a =',a,' b = ',b,' c = ',c)
a + b
print("a + b的值为:", a + b)
c += a
print("c += a的值为:", c)
c *= a
print("c *= a的值为:", c)
c /= a
print("c /= a的值为:", c)
c //= a
print("c //= a的值为:", c)
c %= a
print("c %= a的值为:", c)
c **= a
print("c **= a的值为:", c)
'''
输出结果:
a = 2 b = 10 c = 5
a + b的值为: 12
c += a的值为: 7
c *= a的值为: 14
c /= a的值为: 7.0
c //= a的值为: 3.0
c %= a的值为: 1.0
c **= a的值为: 1.0
'''
位运算符
按位运算中,把数字看作二进制来进行计算
运算符 | 描述 |
---|
& | 按位与运算符:对应位都为1→结果为1 | | | 按位或运算符:对应位有一个为1时→结果位为1 | ^ | 按位异或运算符:对应位不同→结果为1 | ~ | 按位取反运算符:对数据的每个二进制位取反,1→0,0→1 | << n | 左移动运算符:运算数的各二进位全部左移n位,高位丢弃,低位补0 | >> n | 右移动运算符:运算数的各二进位全部右移n位 |
代码示例:
a = 60
b = 13
c = 0
c = a & b
print("c = a & b值为:", c)
c = a | b
print("c = a | b值为:", c)
c = a ^ b
print("c = a ^ b值为:", c)
c = ~a
print("c = ~a值为:", c)
c = a << 2
print("c = a << 2值为:", c)
c = a >> 2
print("c = a >> 2 值为:", c)
'''
输出结果:
c = a & b值为: 12
c = a | b值为: 61
c = a ^ b值为: 49
c = ~a值为: -61
c = a << 2值为: 240
c = a >> 2 值为: 15
'''
逻辑运算符
运算符 | 逻辑表达式 | 描述(a=10,b=20) |
---|
and | x and y | “与” ,如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值 | or | x or y | “或” , 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值 | not | not x | “非”, 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True |
代码示例:
a = 10
b = 20
print('a and b:',a and b)
if (a and b):
print("变量 a 和 b 都为 true")
else:
print("变量 a 和 b 有一个不为 true")
print()
print('a or b:',a or b)
if (a or b):
print("变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("变量 a 和 b 都不为 true")
print()
a = 0
print('a and b:',a and b)
if (a and b):
print("变量 a 和 b 都为 true")
else:
print(" 变量 a 和 b 有一个不为 true")
print()
print('a or b:',a or b)
if (a or b):
print("变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("变量 a 和 b 都不为 true")
print()
print('not a and b:',not (a and b))
if not (a and b):
print("变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print("5变量 a 和 b 都为 true")
'''
输出结果:
a and b: 20
变量 a 和 b 都为 true
a or b: 10
变量 a 和 b 都为 true,或其中一个变量为 true
a and b: 0
变量 a 和 b 有一个不为 true
a or b: 20
变量 a 和 b 都为 true,或其中一个变量为 true
not a and b: True
变量 a 和 b 都为 false,或其中一个变量为 false
'''
成员运算符
运算符 | 描述 | 实例 |
---|
in | 在指定的序列中找到值返回 True,否则返回 False | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 | not in | 在指定的序列中没有找到值返回 True,否则返回 False | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
代码示例:
a = 10
b = 20
list = [1, 2, 3, 4, 5]
print('list:',list)
print('a =',a,' b =',b)
if (a in list):
print("变量 a 在给定的列表中 list 中")
else:
print("变量 a 不在给定的列表中 list 中")
if (b not in list):
print("变量 b 不在给定的列表中 list 中")
else:
print("变量 b 在给定的列表中 list 中")
a = 2
print('a =',a)
if (a in list):
print("变量 a 在给定的列表中 list 中")
else:
print("变量 a 不在给定的列表中 list 中")
'''
输出结果:
list: [1, 2, 3, 4, 5]
a = 10 b = 20
变量 a 不在给定的列表中 list 中
变量 b 不在给定的列表中 list 中
a = 2
变量 a 在给定的列表中 list 中
'''
身份运算符
用于比较两个对象的存储单元
tips: id() 函数用于获取对象内存地址
运算符 | 描述 | 实例 |
---|
is | 判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y),如果引用的是同一个对象则返回 True,否则返回 False | is not | 判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b),如果引用的不是同一个对象则返回结果 True,否则返回 False |
代码示例:
a = 20
b = 20
print('a = ',a,' b =',b)
if (a is b):
print("a 和 b 有相同的标识")
else:
print("a 和 b 没有相同的标识")
if (id(a) == id(b)):
print("a 和 b 有相同的标识")
else:
print("a 和 b 没有相同的标识")
b = 30
print('a = ',a,' b =',b)
if (a is b):
print("a 和 b 有相同的标识")
else:
print("a 和 b 没有相同的标识")
if (a is not b):
print("a 和 b 没有相同的标识")
else:
print("a 和 b 有相同的标识")
'''
输出结果:
a = 20 b = 20
a 和 b 有相同的标识
a 和 b 有相同的标识
a = 20 b = 30
a 和 b 没有相同的标识
a 和 b 没有相同的标识
'''
tips: is 用于判断两个变量** 引用对象是否为同一个** == 用于判断引用变量的值是否相等 ↓
代码示例:
a = [1, 2, 3]
b = a
print('a:',a)
print('b:',b)
print('b is a:',b is a )
print('b == a:',b == a)
b = a[:]
print('a:',a)
print('b:',b)
print('b is a:',b is a)
print('b == a:',b == a)
'''
输出结果:
a: [1, 2, 3]
b: [1, 2, 3]
b is a: True
b == a: True
a: [1, 2, 3]
b: [1, 2, 3]
b is a: False
b == a: True
'''
tips:
b=a与b=a[:]的区别: b=a→a,b指向同一个对象 b=a[:]→创建一个新的与a完全相同的对象,但是与a并不指向同一对象 在计算机中,不同的对象即不同的内存地址
运算符优先级
运算符 | 描述 |
---|
** | 指数 (最高优先级) | ~, + ,- | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) | *, / ,%, // | 乘,除,求余数和向下取整除 | +, - | 加法减法 | >>, << | 右移,左移运算符 | & | 位 ‘AND’ | ^ | | 位运算符 | <=, <, >, >= , | 比较运算符 | ==, != | 等于运算符 | =, %=, /=, //=, -=, +=, *=, **= | 赋值运算符 | is ,is not | 身份运算符 | in ,not in | 成员运算符 | not, and, or | 逻辑运算符 |
tips: 逻辑运算符中,and拥有更高运算级
代码示例:
x = True
y = False
z = False
if x or y and z:
print("yes")
else:
print("no")
'''
运算结果:
yes
'''
|