Python最常见的语句、函数,想学好Python必须要懂得!

1.函数的概念

  1. 概念
    写了一段代码实现了某个小功能;然后把这些代码集中到一块,起一个名字,下一次就可以根据这个名字再次使用这个代码,这就是函数。
  2. 作用
    方便代码的重复使用。
    分解任务,简化程序逻辑
    使代码更加模块化
  3. 函数分类
    内建函数
    三方函数
    自定义函数

2.函数的基本使用

  1. 简单定义
    def 函数名():
    函数体
  2. 函数调用
    函数名()
#函数的定义
def test():
    print(2**2)
    print(2**3)
    print(2**4)
    
#函数的调用  
test()#输出4 8 16

3.函数的参数

3.1 单个参数

  1. 场景
    需要动态的调整函数体中某一个处理信息时,则可以以参数的形式接收到相关数据。
  2. 定义
    def 函数名(参数名称):
    函数体:函数体中,可以直接以变量的方式使用该参数
  3. 函数的调用
    函数名(参数值)
  4. 形参和实参的概念
    上述函数定义中,参数名称 即为形参 ,在调用函数的时候,传递的真实数据,即为实参。
#单个参数的函数的定义
def test(num):
    print(num**2)
#函数的调用
test(3)#输出 9
test(4)#输出 16

3.2 多个参数

  1. 场景
    需要动态的调整函数体中多个处理信息使,则可以用逗号做分割,接收多个参数。
  2. 定义
    def 函数名(参数名称1,参数名称2,........):
    函数体:函数体中,可以直接以变量的方式使用该参数
  3. 函数的调用
    函数名(参数1,参数2,.....)
    函数名(参数名称1=参数1,参数名称2=参数2,....) 可以指明形参名称,称为 “关键字参数” 。不需要严格按照顺序
#多个参数的函数的定义
def test(num1,num2):
    print(num1+num2)
#函数的调用
test(3,4)#输出 7
test(8,16)#输出 24
test(num2 = 18,num1 = 54)#输出 72

3.3 不定长参数

  1. 场景
    如果函数体中,需要处理的数据,不确定长度,则可以使用不定长参数的方式接收数据。
  2. 定义
    1. 方式一
      def 函数名(*args):
      *args:接收的参数组成一个元组
      函数体:函数体中,可以直接以元组变量的方式使用该参数
      函数使用:函数名(参数1,参数2,参数3,.....)
    2. 方式二
      def 函数名(**args):
      args:**接收的参数组成一个字典
      函数体:函数体中,可以直接以元组变量的方式使用该参数
      函数使用:函数名(参数名称1=参数1,参数名称2 = 参数2,参数名称3 = 参数3,.....)
  3. 参数拆包
    装包:把传递的参数,包装成一个集合,称之为“装包”
    拆包:把集合参数,再次分解成单独的个体,称之为“拆包”
#不定长参数的函数的定义  *args  元组
def mySum(*t):
    print(t,type(t))
    result = 0
    for v in t:
        result += v
    print(result)
#函数的调用
mySum(3,4,5,6,7)#输出 (3, 4, 5, 6, 7) <class 'tuple'>   25
mySum(3,8,5,12,7)#输出 (3, 8, 5, 12, 7) <class 'tuple'>  35
​
​
#不定长参数的函数的定义  **args   字典
def mySum(**kwargs):
    print(kwargs,type(kwargs))
#函数的调用
mySum(name ="sz",age = 12)#输出 {'name': 'sz', 'age': 12} <class 'dict'>
​
​
#参数的拆包和装包  *args
def mySum(a,b,c,d):
    print(a+b+c+d)
def test(*args):
    print(args)
    #拆包操作
    mySum(args)#报错,b,c,d三个没有赋值成功
    mySum(args[0],args[1],args[2],args[3])#这样太繁琐
    mySum(*args)#这样直接把已经装包的参数,再次拆包后赋值。
test(1,2,3,4)#输出 (1, 2, 3, 4) 10 10
​
#参数的拆包和装包  **args  
def mySum(a,b):
    print(a)
    print(b)
def test(**args):
    print(args)
    #拆包操作
    mySum(**args)
test(a=1,b=2)#输出 {'a': 1, 'b': 2} 1,2
test(a=1,c=2)#输出 报错 因为字典拆包是拆成 a=1,c=2 这样mySum函数中的参数没有c

3.4 缺省参数

  1. 场景
    当我们使用一个函数的时候,如果大多数情况下,使用的某个数据是一个固定值,则可以使用默认值,这种参数,称为“缺省参数”
  2. 定义
    def 函数名(变量名1=默认值,变量名2=默认值,........):
    函数体:函数体中,即使外界没有传递指定变量,也可以使用,只不过值是给定的默认值
  3. 函数的调用
    函数名(变量1,变量2,.....) 此次如果是缺省参数,则可以不填写
#缺省参数,当没有参数时,会使用默认值
def hit(somebody = "豆豆"):
        print("我想打",somebody)
hit("zhangsan")#输出我想打 zhangsan 
hit()#输出我想打 豆豆

3.5 参数注意

  1. 值传递和引用传递
    值传递:是指传递过来的,是一个数据的副本,修改副本,对原件没有任何影响
    引用传递:是指传递过来的,是一个变量的地址,通过地址,可以操作用一份原件。
  2. 在python当中,只有引用传递(地址传递),但是如果数据类型是可变的数据类型,则可以改变原件,如果数据类型是不可变类型,则不可以改变原件。
def change(num):
 print(id(num))#140706432668744
b = 10
print(id(b))#140706432668744
change(b)
#此时b和num同时指向一个地址值,c c++ java三个语言是对于num创建一个新地址存放10
​
​
def change(num):
 print(id(num))#140706434962504
 num = 666
 print(id(num))#2095039032144
b = 10
print(id(b))#140706434962504
change(b)
#此时因为num发生了改变,所以创建了一个新地址来存放num的改变,b没有发生改变


4.函数的返回值

    1. 场景
      当我们通过某个函数,处理好数据之后,想要拿到处理的结果
    2. 语法
      def 函数名(参数等):
      函数体
      return 数据
    3. 注意事项
  • return后续代码不会被执行
  • 只能返回一次
  • 如果想要返回多个数据,可先把多个数据包装成一个集合,整体返回。如列表,元组,字典等等。

最后,如果你对Python感兴趣,想要学习python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

  **学习资源已打包,需要的小伙伴可以戳这里:【学习资料】

<think>好的,我现在需要处理用户的问题:“学习人工智能深度学习需要掌握哪些Python基础”。首先,我要回顾用户提供的引用内容,特别是引用[3][4],因为它们直接提到了Python基础知识与深度学习的关系。 首先,用户提到的引用[3]中提到了Python的基础知识,包括函数、类、向量化、矩阵、广播Matplotlib绘图。这些都是深度学习中的核心内容,比如向量化操作可以提升代码效率,广播机制在处理不同形状的数组时非常有用,而Matplotlib用于数据可视化。另外,引用[4]中提到了Python的模块导入机制、列表的appendextend方法,以及一些语法糖,这些都是编程中必须掌握的细节,尤其是在处理数据构建模型时。 接下来,我需要将这些内容组织成一个结构清晰的回答。按照用户的要求,回答需要分点说明,帮助用户逐步理解。可能需要分为以下几个部分:基础语法、数据结构、函数与类、科学计算库(如NumPy)、数据可视化(Matplotlib)、文件操作、模块与包管理、以及代码优化技巧。每个部分都要结合引用内容中的知识点,并确保使用正确的中文表达。 另外,用户强调要使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$。例如,在解释向量化的时候,可能需要使用数学表达式,如矩阵乘法$WX + b$,这时候需要用行内公式格式。同时,要检查是否有需要独立成段的公式,比如神经网络的损失函数,可能需要单独列出,但根据用户的问题,可能基础部分涉及的数学公式不多,但如果有的话要确保正确使用。 然后,生成相关问题部分,需要根据回答内容提出相关的扩展问题,比如如何高效使用NumPy、Python在神经网络中的应用等,这些问题需要与用户提供的示例中的问题类似,保持一致性。 最后,确保所有引用的地方正确标注,比如在提到模块导入机制时引用[4],在函数类部分引用[3]等。同时,代码示例要符合Python语法,并且正确使用Markdown代码块格式。 现在需要检查是否有遗漏的关键点,比如引用[3]提到的广播机制向量化,这些在NumPy中非常重要,必须详细说明。另外,引用[4]提到的appendextend的区别,虽然基础,但在数据处理中常会用到,需要指出。同时,用户可能对Python在深度学习中的实际应用场景感兴趣,比如使用TensorFlow或PyTorch时的基础要求,但引用中没有提到这些框架,所以可能需要避免深入,只关注基础部分。 总结,回答的结构应该是: 1. 基础语法与数据结构 2. 函数与面向对象编程 3. 科学计算库(NumPy) 4. 数据可视化(Matplotlib) 5. 文件与数据处理 6. 模块与包管理 7. 代码优化技巧 每个部分简要说明需要掌握的内容,并附上代码示例,如NumPy数组操作、Matplotlib绘图示例等。确保引用正确,如引用[3][4]在相应部分末尾标注。 最后,生成的相关问题应该围绕这些主题展开,例如NumPy的高效使用、Python在神经网络中的具体应用、代码优化方法等。</think>### 学习人工智能深度学习需要掌握的Python基础 #### 1. **基础语法与数据结构** - **变量与数据类型**:掌握整数、浮点数、字符串、布尔值等基本类型,以及类型转换方法。 - **列表、元组、字典与集合**:熟练操作这些数据结构,例如列表的`append`(添加元素)`extend`(展开列表后添加)方法[^4]: ```python a = [1, 2] a.append([3, 4]) # 结果为 [1, 2, [3, 4]] a.extend([5, 6]) # 结果为 [1, 2, [3, 4], 5, 6] ``` - **条件语句与循环**:如`if-else`、`for`、`while`,用于控制程序逻辑。 --- #### 2. **函数与面向对象编程** - **函数定义与参数传递**:理解位置参数、关键字参数及默认参数,例如: ```python def add(x, y=0): return x + y ``` - **类与对象**:掌握类的定义、继承多态,用于封装模型结构[^3]。例如定义一个神经网络层: ```python class DenseLayer: def __init__(self, input_dim, output_dim): self.W = np.random.randn(input_dim, output_dim) self.b = np.zeros(output_dim) ``` --- #### 3. **科学计算库NumPy** - **向量化操作**:避免使用循环,通过矩阵运算提升效率,例如矩阵乘法$WX + b$: ```python import numpy as np X = np.array([[1, 2], [3, 4]]) W = np.random.randn(2, 3) b = np.zeros(3) output = np.dot(X, W) + b ``` - **广播机制**:自动扩展不同形状的数组进行运算,例如将标量加到矩阵的每一行。 --- #### 4. **数据可视化Matplotlib** - **绘制曲线与图像**:用于分析模型训练过程中的损失变化或可视化数据集: ```python import matplotlib.pyplot as plt plt.plot([1, 2, 3], [4, 5, 6], label='Loss') plt.xlabel('Epoch'); plt.legend(); plt.show() ``` --- #### 5. **文件与数据处理** - **文件读写**:使用`open`函数或`pandas`库加载CSV、文本等格式数据。 - **JSON/XML解析**:处理API返回的结构化数据。 --- #### 6. **模块与包管理** - **导入机制**:理解模块搜索路径(如内置模块→`site-packages`→自定义路径)。 - **安装第三方库**:通过`pip install numpy`安装深度学习依赖库(如TensorFlow、PyTorch)。 --- #### 7. **代码优化技巧** - **列表推导式**:简化循环操作,例如`[x**2 for x in range(10)]`。 - **生成器与迭代器**:节省内存,例如处理大规模数据集时逐批加载。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值