1. Python 学习环境搭建指南
1.1 使用 Conda 创建并使用 Python 环境
anaconda安装及使用见文末《参考学习资源》
第一步:创建新的 Conda 环境
首先,打开你的命令提示符(CMD)或终端。然后,输入下面的命令来创建一个名为 p2s 的新环境,并指定使用 Python 3.10 版本:
conda create -n p2s python=3.10
这里的 -n
参数后面跟着的是环境的名称,这里我们取名为 p2s。
第二步:激活 Conda 环境
接着,输入下面的命令来激活你刚才创建的 Conda 环境:
conda activate p2s
注意:不同的环境可能会安装不同版本的 Python 包。
第三步:退出和删除 Conda 环境
如果你需要退出当前的环境,可以使用下面的命令:
conda deactivate
若要删除整个环境,请执行:
conda remove -n p2s --all
1.2 使用 Git 下载课程资料
git入门了解参考文末《参考学习资源》
学习资源地址
- Github Repo: github.com/datawhalech…
- Gitee Repo: gitee.com/anine09/lea…
安装 Git
- 访问 Git - Downloads (git-scm.com) 下载并安装 Git。
第一步:定位到下载文件夹
在 CMD 中,使用 cd
命令进入到你想下载课程的文件夹,例如:
cd C:\Coding\
第二步:克隆仓库
输入下面的命令来从网上下载课程资料仓库到你的电脑:
git clone https://github.com/datawhalechina/learn-python-the-smart-way-v2 --depth=1
--depth=1
参数的意思是只下载最新版本的代码文件。
1.3 使用 Pip 安装课程所需第三方库
注意:必须在激活的 Conda 环境下进行安装。
打开 CMD 或终端,确保你已经激活了 p2s 环境,然后输入下面的命令来安装 Jupyter Notebook:
pip install jupyter
安装完成后,在仓库所在的文件夹中输入:
jupyter lab
这会在你的默认浏览器中启动 Jupyter Lab,你可以开始学习了。结束时,按下 Ctrl + C
来关闭 Jupyter Notebook 服务。
2. 启航你的第1个python
作业练习地址:作业详情 - HydroOJ
未加入,通过该链接加入
2.1 C语言代码与python代码对比
- 先看C语言代码:
#include<stdio.h>
int main(){
printf("聪明办法学Python");
return 0;
}
- 再看python代码:
print("聪明办法学Python")
- 从上述代码可以看出两者的区别:
- 代码简洁性:Python代码通常比C语言更简洁。例如,Python中不需要包含头文件或定义主函数,也不需要指定变量类型。
- 缩进:Python使用缩进来区分代码块,而C语言使用大括号
{}
。- 语法规则:C语言中,每个语句必须以分号
;
结束,而Python中则不需要。- 变量声明:在C语言中,使用
int
或其他数据类型来声明变量,而在Python中,不需要显式声明变量类型。- 函数定义:C语言中,
main
函数是程序的入口点,需要用return 0;
来表示程序成功执行。而在Python中,没有这样的要求,- 标准输出:C语言使用
printf
函数进行标准输出,需要在函数中包含头文件#include<stdio.h>
。而Python使用- 注释:两种语言都使用注释来提高代码的可读性,但注释的语法不同。C语言中,注释以
//
开始,而Python中,注释以#
开始。 这些区别反映了两种语言设计哲学上的差异,C语言更注重底层操作和精细控制,而Python更注重简洁和易用性。
2.2 注释
- 在这个例子中,
#
符号后面的内容会被当作注释,不会被执行。而用三个引号("""
或'''
)括起来的内容也会被当作注释,可以跨越多行。注释在代码执行时不会产生任何效果,但对程序的阅读和理解非常有帮助。
# 这是单行注释,# 后面的内容不会被执行
"""这是多行注释,
可以跨越多行。
"""
# 这是单行注释的另一个例子
print("Hello, World!") # 输出Hello, World!
# 这是多行注释的另一个例子
'''
这是多行注释,
可以跨越多行。
'''
# 混合使用
# 这是单行注释
print("单行注释上方") # 输出单行注释上方
"""
这是多行注释
可以跨越多行
"""
print("多行注释下方") # 输出多行注释下方
2.3 print的用法
- 在Python中,
print()
函数是用来输出信息到控制台的内置函数,它有很多可选参数可以定制输出的格式。
end
参数:
end
参数用于指定print()
函数在输出内容后添加的字符。默认情况下,end
参数的值是\n
,也就是换行符,所以每次调用print()
函数后,控制台的光标会移动到下一行。如果我们想在一次print()
调用后不换行,可以将end
参数设置为空字符串''
。 示例代码:
print("Hello, World!")
print("This is a new line.")
print("This text won't start on a new line.", end='')
print("This text is on the same line as the previous one.")
输出结果:
Hello, World!
This is a new line.
This text won't start on a new line.This text is on the same line as the previous one.
sep
参数:
sep
参数用于在print()
函数中多个参数之间的分隔符。默认情况下,sep
参数的值是空格,也就是' '
。如果我们想用其他字符来分隔输出内容,可以将sep
参数设置为我们想要的字符。 示例代码:
print("Python", "Java", "C++")
print("Python", "Java", "C++", sep="-")
输出结果:
Python Java C++
Python-Java-C++
- f-strings(格式化字符串字面量):
f-strings 是 Python 3.6 及以上版本提供的一种新的字符串格式化方法。它非常简洁易用,通过在字符串前加上
f
并在花括号{}
中直接插入变量或表达式来格式化字符串。f-strings 的优势在于它的语法更简洁,且易于阅读和编写。此外,它还支持多行字符串和表达式求值,这在以前的字符串格式化方法中是无法轻易实现的。
name = "World"
age = 2023
# 使用 f-string 格式化字符串
print(f"Hello, {name}! You are {age} years old.")
输出结果:
Hello, World! You are 2023 years old.
2.4 input的用法
- 接收 Console 的输入
在 Python 中,
input()
函数用于接收用户的输入。这个函数会返回一个字符串,代表用户输入的内容。
# 示例:接收用户输入名字
name = input("请输入您的名字:")
print("您好,", name)
- 返回的格式是字符串
需要注意的是,
input()
函数返回的是字符串,而不是其他类型。如果需要将输入转换为其他类型,如整数或浮点数,需要使用类型转换函数。
# 示例:将输入转换为整数
age = input("请输入您的年龄:")
age = int(age) # 转换为整数
print("您的年龄是:", age)
- 一行多个输入值
若要在同一行接收多个输入值,可以使用
split()
方法进行分割。默认情况下,split()
方法使用空格作为分隔符。你也可以指定其他分隔符。
# 示例:使用逗号分隔输入的多个值
values = input("请输入多个值,以逗号分隔:")
values = values.split(",")
print("您输入的值分别为:", values)
2.5 常见的三种错误
- 语法错误(Syntax Errors):
语法错误是编程中最低级的错误,通常是因为代码不符合Python的语法规则。当代码中有语法错误时,Python解释器无法理解代码意图,因此不会执行代码。在大多数情况下,Python解释器会提供有关错误位置和类型的提示。
print 'Hello, World!' # 在Python 3中,print需要用括号包围,参数之间需要用逗号分隔
- 运行时错误(Runtime Errors):
运行时错误发生在程序运行过程中。这类错误通常是由程序的不当行为引起的,如尝试除以零、访问不存在的变量或索引、调用不存在的方法等。运行时错误通常可以通过改进代码逻辑来避免。
a = 10
b = 0
result = a / b # 尝试除以零,将引发运行时错误
- 逻辑错误(Logical Errors):
逻辑错误是指代码在语法和运行时都没有错误,但是程序输出的结果并不是预期结果。这意味着程序按照错误的逻辑执行,或者没有按照正确的业务逻辑执行。逻辑错误通常需要检查代码的业务逻辑来修正。
# Logical Errors (Compiles and runs, but is wrong!)
# 逻辑错误(能编译,能运行,但不是想要的结果)
print("2+2=5") # Error! 算错了!!!
# 我们想要:4!
2.6 导入模块
在Python中,使用库可以极大地提高我们编程的效率,因为库中已经包含了大量预先编写好的函数和工具,我们可以直接调用它们来处理各种任务。 这里使用Python的内置数学库
math
做演示,这个库提供了许多常用的数学运算函数。
- 导入math库
在使用math库之前,您需要先导入它。导入的方式有以下两种:
-
导入整个math库:
import math
-
从math库中只导入需要的函数或变量:
from math import factorial, e, gcd
- 使用math库中的函数
以下是一些math库中常用的函数,以及如何调用它们的示例:
- 阶乘 (factorial)
计算一个正整数的阶乘。
print(math.factorial(20)) # 输出: 2432902008176640000
- Euler常数 (e)
获取Euler常数e的值。
print(math.e) # 输出: 2.718281828459045
- 最大公约数 (gcd)
计算两个整数的最大公约数。
print(math.gcd(12, 36)) # 输出: 12
- 三角函数
math库也提供了许多三角函数,例如sin、cos和tan。
# 将角度转换为弧度,并计算正弦值
def f(x):
a = x * (math.pi / 180)
print(math.sin(a))
# 使用interact函数进行交互式计算
interact(f, x=30)
- 综合示例代码
下面代码展示了如何导入math库,并使用其中的函数。
- 在使用任何库之前,确实需要先导入它们。在编写代码时,应当尽量只导入需要的部分,这样可以提高程序的效率。同时,使用库的时候应当阅读相应的文档,了解函数的正确使用方式和可能的副作用。
import math
# 计算阶乘
print(math.factorial(20))
# 获取Euler常数
print(math.e)
# 计算最大公约数
print(math.gcd(12, 36))
# 三角函数示例
def f(x):
a = x * (math.pi / 180) # 将角度转换为弧度
print(math.sin(a))
f(30)