基础篇
Python是一种高级编程语言,因其简洁易读的语法和强大的标准库而广受欢迎。Python广泛应用于Web开发、数据分析、人工智能、科学计算、自动化等领域。它具有以下特点:
- 解释型语言:无需编译,直接运行代码。
- 动态类型:变量无需声明类型,类型在运行时确定。
- 强大的标准库:内置了大量实用的模块和包。
- 面向对象:支持面向对象编程,也支持函数式编程。
- 跨平台:代码可在多种操作系统上运行。
按编译方式分类,可以将编程语言分为编译型语言、解释型语言和混合型语言。每种编译方式有其独特的特性和适用场景。
编译型语言
定义:编译型语言在运行之前需要通过编译器将源代码转换为机器码(或中间代码),然后运行生成的可执行文件。
特点:
- 性能高:由于编译后生成的是直接可以在机器上执行的代码,运行速度通常较快。
- 错误检查:编译过程会进行语法和类型检查,能够在编译阶段发现大部分错误。
- 生成可执行文件:编译后会生成独立的可执行文件,不需要依赖编译器或解释器。
例子:
- C:编译成机器码,适用于系统编程和嵌入式开发。
- C++:编译成机器码,适用于高性能应用和游戏开发。
- Go:编译成机器码,适用于云计算和微服务。
- Rust:编译成机器码,注重内存安全和并发性。
解释型语言
定义:解释型语言在运行时由解释器逐行解释执行,不需要事先编译成机器码。
特点:
- 便于调试:由于代码是逐行执行的,调试时可以立即看到每一行代码的执行效果。
- 平台无关性:源代码可以在任何支持解释器的平台上运行。
- 动态性:通常支持动态类型系统,类型检查在运行时进行。
例子:
- Python:广泛应用于数据分析、Web开发和自动化任务。
- JavaScript:主要用于Web前端开发。
- Ruby:常用于Web开发,尤其是Ruby on Rails框架。
- PHP:主要用于服务器端Web开发。
混合型语言
定义:混合型语言结合了编译型和解释型语言的特点,通常先将源代码编译成中间代码(如字节码),然后由虚拟机解释执行中间代码。
特点:
- 跨平台:通过虚拟机实现跨平台运行,编译后的中间代码可以在不同平台上的虚拟机中执行。
- 优化与性能:虚拟机可以进行运行时优化,提升执行效率。
- 便携性:中间代码与平台无关,具有良好的移植性。
例子:
- Java:源代码编译成字节码,由Java虚拟机(JVM)执行,广泛应用于企业级应用开发和Android应用开发。
- C#:源代码编译成中间语言(IL),由.NET运行时(CLR)执行,主要用于Windows应用和Web开发。
- Python(部分实现):如PyPy解释器,将Python代码编译成中间字节码,然后执行。
总结
编译型语言:如C、C++、Go、Rust,通常性能高,适合高性能和系统级开发。
解释型语言:如Python、JavaScript、Ruby、PHP,调试方便,适合快速开发和动态需求。
混合型语言:如Java、C#,兼具编译和解释的优点,具有跨平台和运行时优化的特点。
注:每种编程语言没有高下强弱之分,重点在于使用场景!
Python基础
安装与配置Python环境
win系统安装python可去官网下载,具体过程此处不做过多描述,网上教程很多。使用pycharm作为集成开发环境,可去官网下载
理解Python解释器
Python解释器是用来执行Python代码的程序。它读取Python源代码文件,将其转换为机器能够理解的字节码,然后在虚拟机上执行。这种过程使得Python成为一种解释型语言。
常见的Python解释器有:
- CPython:最常用、最标准的Python解释器,由Python官方维护。大多数Python代码都是在+ CPython上运行的。
- PyPy:一个高性能的Python解释器,使用JIT(即时编译)技术,可以显著提高代码的运行速度。
- Jython:Python解释器的Java实现,可以将Python代码编译成Java字节码并在JVM上运行。
- IronPython:Python解释器的.NET实现,能够与.NET框架无缝集成。
- MicroPython:精简版的Python解释器,专为嵌入式系统设计,适用于微控制器和小型设备。
第一个Python程序:"Hello, World!"
print 是 Python 中的一个内置函数,用于在控制台输出文本或其他类型的内容。它是 Python 编程中最常用的函数之一,主要用于调试和显示程序的输出
python
print("Hello World!")
#仪式感
print基本语法
python
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- *objects:一个或多个要打印的对象。多个对象之间用逗号分隔。
- sep:用于分隔多个对象的字符串,默认为一个空格 ' '。
- end:在输出的末尾添加的字符串,默认为换行符 '\n'。
- file:输出的目标文件,默认为 sys.stdout,即控制台。
- flush:是否立即将内容输出到文件,默认为 False。
CMD示例;
输出多个对象
python
PS C:\Users\huhy> python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello", "world", 123)
Hello world 123
自定义分隔符;注意加上换行符,不然如下所示
python
>>> print("Hello", "world", sep="。;")
Hello。;world
>>>
自定义结束符
python
>>> print("Hello", end="!!!\n")
Hello!!!
>>> print("Hello", end="!!!")
Hello!!!>>>
输出到文件;在当前目录下创建一个 output.txt 文件,并将 "Hello, world!" 写入其中,这里使用pycharm方便展示
python
with open('output.txt', 'w') as f:
print("Hello, world!", file=f)
使用注意事项
- print 函数可以打印任意类型的对象,包括字符串、数字、列表、字典等
- print 函数会自动调用每个对象的 str 方法来获取其字符串表示
- 当打印多个对象时,它们之间会自动插入 sep 指定的分隔符,默认是一个空格
基础语法
Python使用缩进来表示代码块,不同的缩进级别表示不同的逻辑层次,常见的缩进方式有4个空格或者一个Tab
注释与文档字符串
单行注释:用于解释代码,编译器会忽略它们
Python
# 这是一个注释
多行注释:使用三个单引号 ''' 或三个双引号 """
powershell
'''
这是一个多行注释
可以跨越多行
'''
内嵌注释:放在代码行尾
powershell
x = 5 # 这是一个内嵌注释
文档字符串:用于为模块、类、函数和方法编写文档,可以使用三个单引号 ''' 或三个双引号 """
powershell
def example():
"""这是一个文档字符串示例"""
pass
print(example.__doc__)
变量与数据类型
变量是存储数据的命名位置,不需要显式声明。赋值语句会创建变量
-
变量命名规则
- 变量名只能包含字母(a-z, A-Z)、数字(0-9)和下划线_
- 变量名不能以数字开头
- Python中的变量名是大小写敏感的。即,variable 和 Variable 是两个不同的变量
- 不要使用Python的保留字和关键字作为变量名。Python有一些内置的保留字,如 if, else, while, for, def, class, return 等,这些保留字具有特殊意义,不能用作变量名
-
数据类型
- 数字类型:包括整数、浮点数和复数。
- 字符串:字符的序列。
- 布尔值:True 或 False。
- None:表示"没有值"或"空值"。
数字类型:整数、浮点数、复数
整数(int);没有小数部分的数字
python
x = 10
浮点数(float);有小数部分的数字
python
y = 3.14
复数(complex);有实部和虚部的数字
python
z = 2 + 3j
字符串
字符串是字符的序列,可以使用单引号、双引号或三引号括起来
python
s1 = 'Hello'
s2 = "World"
s3 = '''This is a
multiline string'''
字符串支持多种操作,如拼接、重复、切片等
python
# 拼接
s = s1 + " " + s2 # "Hello World"
# 重复
s = s1 * 3 # "HelloHelloHello"
# 切片
s = s1[1:3] # "el"
布尔值
布尔值只有两个:True 和 False,用于逻辑操作
python
a = True
b = False
None值
None是一个特殊的常量,表示"没有值"或"空值"
python
n = None
运算符
运算符用于执行操作。常见的运算符有;
算术运算符
- 算术运算符
- 加法 +
- 减法 -
- 乘法 *
- 除法 /
- 取余 %
- 幂运算 **
- 取整除 //
python
x = 5
y = 2
print(x + y) # 7
print(x - y) # 3
print(x * y) # 10
print(x / y) # 2.5
print(x % y) # 1
print(x ** y) # 25
print(x // y) # 2
比较运算符
- 比较运算符
- 等于 ==
- 不等于 !=
- 大于 >
- 小于 <
- 大于等于 >=
- 小于等于 <=
python
x = 5
y = 2
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
print(x >= y) # True
print(x <= y) # False
逻辑运算符
- 逻辑运算符
- 与 and
- 或 or
- 非 not
python
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
赋值运算符
- 赋值运算符
- 等于 =
- 加等于 +=
- 减等于 -=
- 乘等于 *=
- 除等于 /=
- 取余等于 %=
- 幂等于 **=
- 取整除等于 //=
python
x = 5
x += 2 # x = x + 2
x -= 1 # x = x - 1
x *= 3 # x = x * 3
x /= 2 # x = x / 2
x %= 3 # x = x % 3
x **= 2 # x = x ** 2
x //= 2 # x = x // 2
位运算符
按位运算符是对二进制位进行操作的运算符。它们主要用于低级别的编程和操作硬件或优化性能
- 位运算符
- 按位与 &;按位与操作会将两个数的每个位进行比较,只有当两个数的对应位都为1时,结果位才为1,否则为0
- 按位或 |;按位或操作会将两个数的每个位进行比较,只要两个数的对应位有一个为1,结果位就为1,否则为0
- 按位异或 ^;按位异或操作会将两个数的每个位进行比较,当两个数的对应位不同(一个为1,一个为0)时,结果位为1,否则为0
- 按位取反 ~;按位取反操作会将数的每个位都进行取反,即0变1,1变0。这实际上等同于对数值取反并减1(因为Python使用二进制补码表示负数)
- 左移 <<;左移操作会将数的二进制表示左移指定的位数,右边用0填充,每左移一位相当于乘以2
- 右移 >>;右移操作会将数的二进制表示右移指定的位数,左边用符号位(正数用0,负数用1)填充,每右移一位相当于除以2(取整)
python
x = 5 #二进制 0101
y = 3 #二进制 0011
print(x & y) # 0001 => 1
print(x | y) # 0111 => 7
print(x ^ y) # 0110 => 6
print(~x) # 1010 => -6
print(x << 1) # 1010 => 10
print(x >> 1) # 0010 => 2
下一篇数据结构