返回

Python学习笔记02-语言基础

基础知识

  • 编码:默认情况下,源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串

  • 标识符

    • 第一个字符必须以字母a-z, A-Z或下划线 _
    • 其他的部分由字母、数字和下划线组成
    • 大小写敏感
  • 注释:单行注释以 # 开头,多行注释可以用'''和"""

  • 行与缩进:使用缩进来表示代码块,缩进的空格数是可变的,但是同一个代码块的语句用相同的缩进空格数

  • 解释器:有 CPython、IPython、Jython、PyPy 等

    • CPython 是用 C 语言开发的官方标准实现解释器,拥有良好的生态,应用最广泛
    • IPython 是在 CPython 的基础上在交互式方面得到增强的解释器
    • Jython 是为 Java 平台设计的解释器,把 Python 代码编译成 Java 字节码执行
    • PyPy 是一种快速、兼容的替代实现,以速度快著称

基本数据类型

标准数据类型

6 种标准数据类型,3个不可变 Number、String、Tuple,3个可变 List、Set、Dictionary

Number

  • int、float、bool、complex(复数)
  • 指定一个值时,Number 对象就会被创建,用del删除对象引用

运算符

  • / 返回一个浮点数,// 返回一个整数(向下取整)
  • x**y:返回 x 的 y 次幂
  • 逻辑运算符:and、or、not

bool

bool 是 int 的子类,因此布尔值可以被看作整数来使用

  • 用 bool() 能将其他类型的值转换为布尔值,只有 0、空字符串、空列表、空元组等被视为 False,其他都为 True

String

字符串用单引号'或双引号"括起来

  • 字符串不可变
  • 没有单独的字符类型,一个字符就是长度为 1 的字符串
  • 字符串切片左闭右开 str[start:end],可以加上步长参数str[start🔚step]
  • 三引号'''或"""可以指定一个多行字符串
  • 用+运算符连接,用*运算符重复
  • 用反斜杠\转义特殊字符,用r(即raw)可以让反斜杠不发生转义。 如r"this is a line with \n",\n会显示

内建函数

函数 描述
count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数
find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果包含返回开始的索引值,否则返回-1;rfind反向
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素合并为一个新的字符串
len(string) 返回字符串长度
lower() 转换字符串中所有大写字符为小写
lstrip() 截掉字符串左边的空格或指定字符;rstrip()反向;strip()双向
replace(old, new [, max]) 将字符串中的 old 替换成 new,可选替换 max 次
rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串;ljust()反向;zfill()右对齐填充0
split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

Turple

元组写在圆括号 () 之间,元素不可变,能被索引和切片

List

列表写在方括号 [] 之间,元素可变,能被索引和切片

  • 列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表
  • 列表比较需要引入 operator 模块的 eq 方法
1
2
3
4
5
6
import operator
a = [1, 2]
b = [2, 3]
c = [2, 3]
print(operator.eq(a,b)) # False
print(operator.eq(c,b)) # True

函数和方法

函数和方法 描述
len(list) 列表元素个数
list.insert(index, obj) 将对象插入列表的指定位置
list.append(obj) 在列表末尾添加新的对象
list.extend(seq) 在列表末尾追加另一个序列中的多个值
list.pop([index=-1]) 移除列表中的元素并返回该元素的值,默认最后一个
list.remove(obj) 移除列表中某个值的第一个匹配项
max(list)、min(list) 返回列表元素最大值/最小值
list.sort(key=None, reverse=False) 对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.count(obj) 统计某个元素在列表中出现的次数
list.reverse() 翻转列表
list.clear() 清空列表
list.copy() 复制列表
list(seq) 将序列转为列表

用比较函数指定按列表中每个元素的第二个元素值排序

1
2
3
4
5
6
7
8
9
# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
 
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
 
# 指定第二个元素排序
random.sort(key=takeSecond) # [(4, 1), (2, 2), (1, 3), (3, 4)]

用 del 语句可以从列表中删除一个切割

Set

集合写在花括号 {} 之间,元素可变,无序,不能被索引和切片,元素不重复

注意:创建空集合必须用 set() ,不能用 {},因为 {} 创建的是一个空字典

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 1.集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)           # a 中的唯一字符

print(a - b)       # a 和 b 的差集(在 a 中但不在 b 中)
print(a | b)       # a 和 b 的并集(在 a 或 b 中)
print(a & b)       # a 和 b 的交集(同时在 a 和 b 中)
print(a ^ b)       # a 和 b 的对称差集(在 a 或 b 中,但不同时存在)

# 2.成员存在
if 'k' in a:
    print('k 在集合中')
else:
    print('k 不在集合中')

内置方法

方法 描述
add() 为集合添加元素
update() 给集合添加元素或集合
discard() 删除集合中指定的元素
intersection() 返回集合的交集
union() 返回两个集合的并集
difference() 返回多个集合的差集
issubset() 判断指定集合是否为该方法参数集合的子集。
len() 计算集合元素个数

Dictionary

字典写在花括号 {} 之间,元素可变,有序,是key-value形式,key不可变且唯一

1
2
3
print(my_dict)             # 输出完整的字典
print(my_dict.keys())      # 输出所有键
print(my_dict.values())    # 输出所有值

构造函数 dict() 可以直接从键值对序列中构建字典

内置方法

方法 描述
key in dict 如果键在字典dict里返回true,否则返回false
dict.get(key, default=None) 返回指定键的值,如果不存在,则返回 default 设置的默认值
dict.setdefault(key, default=None) 返回指定键的值,如果不存在,则添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.pop(key[,default]) 删除指定键,返回被删除的值

bytes类型

bytes 类型表示的是不可变的二进制序列,与 String 类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
x = b"hello"           # 使用 b 前缀创建 bytes 对象
print(x)               # b'hello'
print(type(x))         # <class 'bytes'>
print(x[0])            # 104('h' 的 ASCII 值)
# str -> bytes,第二个参数指定编码方式
x = bytes("hello", encoding="utf-8")
# 比较操作
x = b"hello"
if x[0] == ord("h"):    # ord("h") 返回 104
    print("第一个元素是 'h'")

对于内置类型,用数据类型作为函数名即可进行转换

函数 描述
int(x,base) 将 x 转为整数,base 是 x 的进制
bin(x) 将整数转为二进制字符串
oct(x) 将整数转为八进制字符串
hex(x) 将整数转为十六进制字符串
ord(x) 将字符转为对应 Unicode 码点
chr(x) 将 Unicode 码点转为对应字符

遍历

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 一、列表
lst = [10,20,30]
# 方式1:遍历元素(推荐)
for v in lst:
    print(v)

# 方式2:遍历下标+元素(enumerate)
for idx, val in enumerate(lst):
    print(idx, val)

# 方式3:只遍历下标(range)
for i in range(len(lst)):
    print(i, lst[i])
d = {"name":"tom", "age":18}

# 二、元组:与列表一样
# 三、集合:只能遍历元素
# 四、字典
# ① 默认:遍历【键】!高频考点!
for k in d:
    print(k)

# ② 遍历所有键 .keys()
for k in d.keys():
    print(k)

# ③ 遍历所有值 .values()
for v in d.values():
    print(v)

# ④ 遍历键值对 .items() (最常用)
for k, v in d.items():
    print(k, v)

条件控制

Python 中用 elif 代替了 else if,所以 if 语句的关键字为:if – elif – else

1
2
3
4
5
6
if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

循环语句

for 循环可以遍历任何可迭代对象

1
2
for <variable> in <sequence>:
    <statements>

while 语句的一般形式:

1
2
while 判断条件(condition):
    执行语句(statements)……

函数

Python 定义函数使用 def 关键字,一般格式如下:

1
2
def 函数名(参数列表):
    函数体

支持多返回值

参数传递

  • 不可变类型:值传递,传递的只是值,函数内的修改不影响对象本身

  • 可变类型:引用传递,传递的是对象本身,函数内修改后外部的对象也会受影响

最后更新于 Sep 28, 2026 23:05 UTC
Built with Hugo
Theme Stack designed by Jimmy