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
测验

登录后即可答题并追踪学习进度

这个 Python 表达式的结果是什么?
4 + 2 * 3
A. 10
B. 18
C. 12
D. 20

增强赋值运算符

运算符等效于
var += 1var = var + 1
var -= 1var = var - 1
var *= 1var = var * 1
var /= 1var = var / 1
var //= 1var = var // 1
var %= 1var = var % 1
var **= 1var = 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
A. 3
B. 8
C. 5
D. 15

海象运算符 (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带小数点的数字
complex2+3j, complex(1, 4)具有实部和虚部的数字
文本 (Text)
str'a', 'Hello!', "Python"文本和字符
布尔值 (Boolean)
boolTrue, FalseTrue 或 False 值
None
NoneTypeNone表示“无值”或“空”
集合 (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 基础知识的一个基本组成部分。只要遵循以下规则,你可以给变量命名为任何名称:

  1. 只能是一个单词。
# 错误
my variable = 'Hello'

# 正确
var = 'Hello'
  1. 只能使用字母、数字和下划线 (_) 字符。
# 错误
%$@variable = 'Hello'

# 正确
my_var = 'Hello'

# 正确
my_var_2 = 'Hello'
  1. 不能以数字开头。
# 这将不起作用
23_var = 'hello'
  1. 以(单个)下划线 (_) 开头的变量被认为是“不常用的”。
# _spam 不应在代码中再次使用
_spam = 'Hello'
测验

登录后即可答题并追踪学习进度

在 Python 基础知识中,以下哪个是有效的变量名?
A. 3value
B. user-name
C. user_name
D. for

注释

行内注释:

# 这是一个注释

多行注释:

# 这是一个
# 多行注释

带注释的代码:

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
测验

登录后即可答题并追踪学习进度

在 Python 基础知识中,`input()` 返回什么类型?
A. int
B. str
C. float
D. 取决于用户输入

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() 函数

这些函数允许你更改变量的类型。例如,你可以将 integerfloat 转换为 string

# 整数转字符串
str(29)  # 返回 '29'
'29'
str(-3.14)
'-3.14'

或者从 string 转换为 integerfloat

# 字符串转整数
int('11')  # 返回 11
11
# 字符串转浮点数
float('3.14')  # 返回 3.14
3.14
测验

登录后即可答题并追踪学习进度

这段 Python 代码的结果是什么?
result = int('42')
type(result)
A. str
B. float
C. int
D. NoneType

相关链接