聪明办法学python

115 阅读9分钟

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入门了解参考文末《参考学习资源》

学习资源地址

安装 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

2.1 C语言代码与python代码对比

  • 先看C语言代码:
 #include<stdio.h> 
 int main(){
     printf("聪明办法学Python");
     return 0;
 }
  • 再看python代码:
 print("聪明办法学Python") 
  • 从上述代码可以看出两者的区别:
  1. 代码简洁性:Python代码通常比C语言更简洁。例如,Python中不需要包含头文件或定义主函数,也不需要指定变量类型。
  2. 缩进:Python使用缩进来区分代码块,而C语言使用大括号 {}
  3. 语法规则:C语言中,每个语句必须以分号;结束,而Python中则不需要。
  4. 变量声明:在C语言中,使用int或其他数据类型来声明变量,而在Python中,不需要显式声明变量类型。
  5. 函数定义:C语言中,main函数是程序的入口点,需要用return 0;来表示程序成功执行。而在Python中,没有这样的要求,print函数可以直接执行。
  6. 标准输出:C语言使用printf函数进行标准输出,需要在函数中包含头文件#include<stdio.h>。而Python使用print函数,不需要额外包含任何文件。
  7. 注释:两种语言都使用注释来提高代码的可读性,但注释的语法不同。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 常见的三种错误

  1. 语法错误(Syntax Errors):

语法错误是编程中最低级的错误,通常是因为代码不符合Python的语法规则。当代码中有语法错误时,Python解释器无法理解代码意图,因此不会执行代码。在大多数情况下,Python解释器会提供有关错误位置和类型的提示。

 print 'Hello, World!'  # 在Python 3中,print需要用括号包围,参数之间需要用逗号分隔
  1. 运行时错误(Runtime Errors):

运行时错误发生在程序运行过程中。这类错误通常是由程序的不当行为引起的,如尝试除以零、访问不存在的变量或索引、调用不存在的方法等。运行时错误通常可以通过改进代码逻辑来避免。

 a = 10
 b = 0
 result = a / b  # 尝试除以零,将引发运行时错误
  1. 逻辑错误(Logical Errors):

逻辑错误是指代码在语法和运行时都没有错误,但是程序输出的结果并不是预期结果。这意味着程序按照错误的逻辑执行,或者没有按照正确的业务逻辑执行。逻辑错误通常需要检查代码的业务逻辑来修正。

 # Logical Errors (Compiles and runs, but is wrong!)
 # 逻辑错误(能编译,能运行,但不是想要的结果)
 print("2+2=5")  # Error! 算错了!!!
 # 我们想要:4!

2.6 导入模块

在Python中,使用库可以极大地提高我们编程的效率,因为库中已经包含了大量预先编写好的函数和工具,我们可以直接调用它们来处理各种任务。 这里使用Python的内置数学库math做演示,这个库提供了许多常用的数学运算函数。

  • 导入math库

在使用math库之前,您需要先导入它。导入的方式有以下两种:

  1. 导入整个math库:

     import math
    
  2. 从math库中只导入需要的函数或变量:

     from math import factorial, e, gcd
    
  • 使用math库中的函数

以下是一些math库中常用的函数,以及如何调用它们的示例:

  1. 阶乘 (factorial)

计算一个正整数的阶乘。

 print(math.factorial(20))  # 输出: 2432902008176640000
  1. Euler常数 (e)

获取Euler常数e的值。

 print(math.e)  # 输出: 2.718281828459045
  1. 最大公约数 (gcd)

计算两个整数的最大公约数。

 print(math.gcd(12, 36))  # 输出: 12
  1. 三角函数

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)

-1. 参考学习资源