修订历史:
- 2024/09/17 完成 python 注释、控制台输出和输出,错误类型,导入库的方式基础笔记
1 Python注释基础
1.1 作用
注释的主要作用是为代码提供解释和说明,这有助于其他开发者或未来的自己理解代码的意图和功能。
1. 2 分类
Python中的注释分为两种类型:
-
单行注释:使用井号(
#)开头。这种注释仅适用于解释接下来的一行代码。# 这是一个单行注释 print("Hello, World!") # 这行代码打印“Hello, World!”到控制台 -
多行注释:使用三个连续的单引号(
''')或双引号(""")包裹起来。这种注释可以跨越多行,通常用于详细描述一个代码块或函数的功能。""" 这是一个多行注释的例子。 它可以用来描述函数的功能,参数和返回值。 """ def greet(name): print(f"Hello, {name}!")
1.3 应用场景
- 代码解释:在代码中添加注释,解释特定代码段的功能。
- 临时禁用代码:通过注释掉代码,可以临时禁用某些功能,而不删除代码。
- 文档生成:某些工具可以自动从注释中提取文档,生成API文档或用户手册。
1.4 注意事项
- 确保注释清晰、简洁,避免冗余。
- 避免在注释中包含误导性信息。
- 定期更新注释,以反映代码的更改。
通过合理使用注释,可以显著提高代码的可维护性和团队协作的效率。
2 Python错误类型概述
在Python编程过程中,错误是不可避免的。了解不同类型的错误有助于我们更好地调试和优化代码。以下是Python中常见的三种错误类型:
- 语法错误 syntax errors:关注代码的语法结构,确保符合Python的语法规则。
- 运行时错误 Runtime Errors:通过异常处理机制来捕获和处理潜在的运行时问题。
- 逻辑错误 Logical Errors:仔细检查和测试代码逻辑,确保程序的输出与预期一致。
2.1 语法错误(Syntax Errors)
- 定义:语法错误是指代码不符合Python的语法规则,导致代码无法被解释器识别和执行。
- 特点:这类错误通常在代码编写阶段被发现,因为它们阻止了代码的正常运行。
- 示例:
# 错误的缩进 def greet(): print("Hello, World!") - 解决方式:检查代码的语法结构,如括号、引号、缩进等是否正确。
2.2 运行时错误(Runtime Errors)
- 定义:运行时错误是指代码在执行过程中遇到问题,导致程序无法继续正常运行。
- 特点:这类错误通常在代码运行时发生,可能由于外部因素或程序逻辑问题引起。
- 示例:
# 除以零错误 print(10 / 0) - 解决方式:通过添加异常处理(如
try-except块)来捕获和处理可能的运行时错误。
2.3 逻辑错误(Logical Errors)
- 定义:逻辑错误是指代码在语法上正确,运行时也不会抛出错误,但程序的输出结果与预期不符。
- 特点:这类错误通常较难发现,因为它们不会导致程序崩溃,但会影响程序的正确性和可靠性。
- 示例:
# 错误的逻辑判断 def is_positive(num): if num > 0: return True else: return False print(is_positive(-1)) # 应该返回False,但逻辑错误导致返回True - 解决方式:仔细检查代码逻辑,确保所有条件和分支都符合预期的业务逻辑。
3 Python控制台输入和输出
在Python中,控制台输入和输出是与用户交互的基本方式。
- 输出:使用
print函数将信息输出到控制台,可以输出多个参数并格式化输出。 - 输入:使用
input函数接收用户的输入,输入的内容默认为字符串,可以通过类型转换函数处理为其他数据类型。
3.1 输出到控制台
print函数:用于将信息输出到控制台。默认情况下,每次调用print函数后,输出的内容会自动换行。- 用法示例:
print("Hello, World!") # 输出 "Hello, World!" 并自动换行 print("Today's date is:", "2024-09-17") # 输出 "Today's date is: 2024-09-17" 并自动换行 - 特点:
- 可以输出多个参数,参数之间用逗号分隔,它们将被空格分隔并输出。
- 可以控制输出格式,例如使用字符串格式化。
- 用法示例:
3.2 从控制台接收输入
input函数:用于接收用户的输入。用户输入的内容将作为字符串返回。- 用法示例:
name = input("Please enter your name: ") # 提示用户输入名字 print(f"Hello, {name}!") # 输出 "Hello, [用户输入的名字]!" - 特点:
input函数可以接受一个字符串参数,该字符串将作为提示信息输出到控制台,然后等待用户输入。- 用户输入的内容总是作为字符串处理,即使输入的是数字。
- 用法示例:
3.3 进阶技巧
- 格式化输出:可以使用字符串格式化方法来控制输出的格式,例如:
age = 30 print(f"I am {age} years old.") # 使用f-string进行格式化 print("I am %d years old." % age) # 使用百分号格式化 - 处理输入类型:如果需要处理用户输入的数字,可以使用
int()或float()函数将字符串转换为相应的数值类型:age_input = input("Please enter your age: ") age = int(age_input) # 将输入转换为整数 print(f"You entered {age} as your age.")
4 Python模块导入
在Python中,模块导入是扩展程序功能的重要手段。通过导入模块,你可以使用预定义的函数、类和变量。
- 导入模块:使用
import module_name来导入整个模块。 - 导入特定成员:使用
from module_name import member_name来导入模块中的特定成员。 - 设置别名:使用
as关键字为模块或成员设置别名,简化代码或避免命名冲突。 - 导入多个模块/成员:可以在一行中导入多个模块或成员。
- 动态导入:使用
__import__()函数动态导入模块。
4.1 导入模块
- 基本语法:使用
import关键字来导入模块。import math # 导入math模块- 使用模块:导入模块后,可以使用模块名加点号(
.)来访问模块中的成员。print(math.sqrt(16)) # 输出 4.0
- 使用模块:导入模块后,可以使用模块名加点号(
4.2 导入模块中的特定成员
- 基本语法:使用
from关键字和import来导入模块中的特定成员。from math import sqrt # 仅导入sqrt函数- 使用成员:导入特定成员后,可以直接使用成员名,无需模块名。
print(sqrt(16)) # 输出 4.0
- 使用成员:导入特定成员后,可以直接使用成员名,无需模块名。
4.3 为模块或成员设置别名
- 基本语法:使用
as关键字为模块或成员设置别名,以简化代码或避免命名冲突。import math as m # 为math模块设置别名m from math import sqrt as square_root # 为sqrt函数设置别名square_root- 使用别名:
print(m.sqrt(16)) # 使用别名m调用sqrt函数 print(square_root(16)) # 使用别名square_root调用sqrt函数
- 使用别名:
4.4 导入多个模块或成员
- 基本语法:可以在一行中导入多个模块或成员。
import math, os # 同时导入math和os模块 from math import sqrt, pow # 同时导入sqrt和pow函数- 使用多个成员:
print(math.sqrt(16)) # 输出 4.0 print(os.getcwd()) # 输出当前工作目录 print(sqrt(25)) # 输出 5.0 print(pow(2, 3)) # 输出 8
- 使用多个成员:
4.5 动态导入模块
- 基本语法:使用
__import__()函数动态导入模块。module_name = "math" mod = __import__(module_name) print(mod.sqrt(16)) # 输出 4.0
通过合理地导入和使用模块,可以充分利用Python的丰富库资源,提高代码的可读性和可维护性。