Python 基础知识
我们都需要从某个地方开始,那么从这里开始怎么样呢。本指南涵盖了基本的 Python 基础知识,包括运算符、数据类型、变量和核心函数。
Python 基础知识概述
每个初学者都应该知道的核心 Python 基础知识:
- 变量和基本类型
- 运算符和表达式
- 字符串和常用方法
- 列表、元组和字典
- 基本控制流(if、for、while)
- 简单函数
数学运算符
按最高到最低的优先级排序:
| 运算符 | 操作 | 示例 |
|---|---|---|
| ** | 幂运算 | 2 ** 3 = 8 |
| % | 取模/余数 | 22 % 8 = 6 |
| // | 整数除法 | 22 // 8 = 2 |
| / | 除法 | 22 / 8 = 2.75 |
| * | 乘法 | 3 * 3 = 9 |
| - | 减法 | 5 - 2 = 3 |
| + | 加法 | 2 + 2 = 4 |
表达式示例:
# 乘法优先级高于加法
# 所以这被评估为:2 + (3 * 6) = 2 + 18 = 20
2 + 3 * 6
20
# 括号覆盖运算符优先级
# 这被评估为:5 * 6 = 30
(2 + 3) * 6
30
2 ** 8
256
23 // 7
3
23 % 7
2
(5 - 1) * ((7 + 1) / (3 - 1))
16.0
登录后即可答题并追踪学习进度
4 + 2 * 3
增强赋值运算符
| 运算符 | 等效于 |
|---|---|
var += 1 | var = var + 1 |
var -= 1 | var = var - 1 |
var *= 1 | var = var * 1 |
var /= 1 | var = var / 1 |
var //= 1 | var = var // 1 |
var %= 1 | var = var % 1 |
var **= 1 | var = var ** 1 |
示例:
# 增强赋值:等同于 greeting = greeting + ' world!'
greeting = 'Hello'
greeting += ' world!'
greeting
'Hello world!'
# 数字增 1
number = 1
number += 1
number
2
# 列表复制:等同于 my_list = my_list * 3
my_list = ['item']
my_list *= 3
my_list
['item', 'item', 'item']
登录后即可答题并追踪学习进度
x 的值是多少?x = 5
x += 3
海象运算符 (Walrus Operator)
海象运算符允许在表达式中为变量赋值,同时返回该变量的值
示例:
# 海象运算符在一个表达式中赋值并返回值
# my_var 被赋值为 "Hello World!" 然后被打印
print(my_var:="Hello World!")
Hello World!
my_var="Yes"
print(my_var)
Yes
print(my_var:="Hello")
Hello
海象运算符,或赋值表达式运算符,首次通过 PEP 572 引入于 2018 年,随后于 2019 年 10 月正式发布于 Python 3.8。
语法语义和示例
PEP 572 提供了海象运算符的语法、语义和示例。
数据类型
理解数据类型是 Python 基础知识中最重要的部分之一。Python 有九种核心内置数据类型,几乎涵盖了你需要的所有内容:
| 数据类型 | 示例 | 描述 |
|---|---|---|
| 数字 (Numbers) | ||
int | -2, -1, 0, 1, 2, 3, 4, 5 | 整数 |
float | -1.25, -1.0, -0.5, 0.0, 0.5, 1.0, 1.25 | 带小数点的数字 |
complex | 2+3j, complex(1, 4) | 具有实部和虚部的数字 |
| 文本 (Text) | ||
str | 'a', 'Hello!', "Python" | 文本和字符 |
| 布尔值 (Boolean) | ||
bool | True, False | True 或 False 值 |
| None | ||
NoneType | None | 表示“无值”或“空” |
| 集合 (Collections) | ||
list | [1, 2, 3], ['a', 'b', 'c'] | 有序、可更改的集合 |
dict | {'name': 'Alice', 'age': 30} | 键值对 |
tuple | (1, 2, 3), ('a', 'b') | 有序、不可更改的集合 |
set | {1, 2, 3}, {'a', 'b', 'c'} | 无序的唯一项集合 |
快速示例
# 数字
age = 25 # int
price = 19.99 # float
coordinate = 2 + 3j # complex
# 文本
name = "Alice" # str
# 布尔值
is_student = True # bool
# None
result = None # NoneType
# 集合
scores = [85, 92, 78] # list
person = {'name': 'Bob', 'age': 30} # dict
coordinates = (10, 20) # tuple
unique_ids = {1, 2, 3} # set
有关包含视觉示例和每种类型使用时机的详细说明的全面指南,请参阅:Python 数据类型:初学者的视觉指南。
拼接和复制
字符串拼接:
# 字符串拼接:相邻的字符串会自动连接
'Alice' 'Bob'
'AliceBob'
字符串复制:
# 字符串复制:将字符串重复多次
'Alice' * 5
'AliceAliceAliceAliceAlice'
变量
变量是 Python 基础知识的一个基本组成部分。只要遵循以下规则,你可以给变量命名为任何名称:
- 只能是一个单词。
# 错误
my variable = 'Hello'
# 正确
var = 'Hello'
- 只能使用字母、数字和下划线 (
_) 字符。
# 错误
%$@variable = 'Hello'
# 正确
my_var = 'Hello'
# 正确
my_var_2 = 'Hello'
- 不能以数字开头。
# 这将不起作用
23_var = 'hello'
- 以(单个)下划线 (
_) 开头的变量被认为是“不常用的”。
# _spam 不应在代码中再次使用
_spam = 'Hello'
登录后即可答题并追踪学习进度
3valueuser-nameuser_namefor注释
行内注释:
# 这是一个注释
多行注释:
# 这是一个
# 多行注释
带注释的代码:
a = 1 # 初始化
请注意注释前面的两个空格。
函数文档字符串 (docstring):
def foo():
"""
这是一个函数文档字符串
你也可以使用:
''' 函数文档字符串 '''
"""
print() 函数
print() 函数是你将学习的第一个 Python 基础知识之一。它会写入其接收到的参数的值。[…] 它处理多个参数、浮点数和字符串。字符串在打印时没有引号,并且项目之间会插入一个空格,因此你可以很好地格式化内容:
print('Hello world!')
Hello world!
a = 1
print('Hello world!', a)
Hello world! 1
end 关键字
可以使用关键字参数 end 来避免输出后的换行符,或者用不同的字符串结束输出:
# 使用 end 参数来更改每个 print 语句之后的内容
phrase = ['printed', 'with', 'a', 'dash', 'in', 'between']
for word in phrase:
print(word, end='-') # 使用 '-' 代替换行符
printed-with-a-dash-in-between-
sep 关键字
如果存在多个对象,关键字 sep 指定了对象之间的分隔方式:
# 使用 sep 参数指定多个参数之间的分隔符
print('cats', 'dogs', 'mice', sep=',') # 逗号分隔的输出
cats,dogs,mice
input() 函数
此函数从用户处获取输入并将其转换为字符串:
# input() 读取用户输入并将其作为字符串返回
print('What is your name?') # 询问他们的名字
my_name = input() # 等待用户输入并按 Enter
print('Hi, {}'.format(my_name))
What is your name?
Martha
Hi, Martha
input() 也可以在不使用 print() 的情况下设置默认消息:
my_name = input('What is your name? ') # 默认消息
print('Hi, {}'.format(my_name))
What is your name? Martha
Hi, Martha
也可以使用格式化字符串来避免使用 .format:
# input() 可以直接显示提示信息
my_name = input('What is your name? ') # 提示和读取在一次调用中完成
print(f'Hi, {my_name}') # f-string 用于字符串格式化
What is your name? Martha
Hi, Martha
登录后即可答题并追踪学习进度
len() 函数
评估字符串、列表、字典等的字符数或项目数的整数值:
# len() 返回字符串中的字符数
len('hello') # 返回 5
5
# len() 返回列表中项目的数量
len(['cat', 3, 'dog']) # 返回 3 (三个项目)
3
空值测试
对字符串、列表、字典等的空值测试不应使用 len,而应优先使用直接的布尔值评估。
空值测试示例:
a = [1, 2, 3]
# 错误:不必要的 len() 检查
if len(a) > 0: # 评估为 True
print("the list is not empty!")
the list is not empty!
# 正确:直接布尔评估 (Pythonic 方式)
if a: # 如果列表不为空,则评估为 True
print("the list is not empty!")
the list is not empty!
str()、int() 和 float() 函数
这些函数允许你更改变量的类型。例如,你可以将 integer 或 float 转换为 string:
# 整数转字符串
str(29) # 返回 '29'
'29'
str(-3.14)
'-3.14'
或者从 string 转换为 integer 或 float:
# 字符串转整数
int('11') # 返回 11
11
# 字符串转浮点数
float('3.14') # 返回 3.14
3.14
登录后即可答题并追踪学习进度
result = int('42')
type(result)
strfloatintNoneType