Python基础小白笔记三

本文介绍了Python中变量的赋值特性,包括不同类型赋值、变量作为对象引用的概念,以及不可变和可变对象的区别。还详细阐述了变量命名规则、多变量赋值、函数定义与调用、全局变量、函数嵌套和递归的概念及其应用。
摘要由CSDN通过智能技术生成

作业链接

用户 - hongwanjing - HydroOJ

1.相同变量的赋值类型可以不同

a=1
a=True
print(a)

输出为True

说明对变量的赋值,不存在类型的限制,后面的值会找到覆盖掉前面的值。

2.变量是对对象的引用

每个变量都指向了一个对象的内存地址,当创建一个变量并给他赋值时,Python会为该值分配内存,并让变量指向这个内存地址。

(1)不可变对象:整数、字符串、元组等

在被“修改”时实际上是创建了一个新的对象,因为这些对象一旦创建其值就不能改变。

a=1
b=a
a=2
print(f"a={a}")
print(f"b={b}")

输出

a=2
b=1

整数a创建了一个新的对象,而b没有动,不受a的影响。

(2)可变对象:列表、字典、集合等

可以被修改,因为它们的数据结构允许在内存中直接修改数据,而不是创建新对象。

3.变量的命名规则

(1)变量名必须以字母(a-z, A-Z)或下划线(_)开头。

(2)变量名不能以数字开头。

(3)变量名只能包含字母、数字和下划线(a-z, A-Z, 0-9, _)。

(4)变量名是大小写敏感的,这意味着variable和Variable是两个不同的变量。

(5)变量名不能是Python的关键字,如if, while, True, False等。Python有35个关键字,这些关键字有特殊的意义和用途,不能用作变量名。

(6)变量名应该简洁且具有描述性,通常使用小写字母和下划线来分隔单词,这种命名方式被称为“小蛇”式(snake_case)。

(7)变量名不能包含空格或其他标点符号。

4.多变量赋值

(1)单个值赋给多个变量:

a = b = c = 10

这里,a、b和c都赋值为10。

(2)使用元组或列表解包赋值:

a, b, c = 1, 2, 3

这里,a被赋值为1,b被赋值为2,c被赋值为3。

(3)也可以从列表或元组中解包值并赋给多个变量:
 

values = [10, 20, 30]

a, b, c = values

这里,a、b和c分别被赋值为10、20和30。

(4)使用星号(*)来收集多余的值:

a, *b, c = [1, 2, 3, 4, 5]

这里,a被赋值为1,c被赋值为5,而b被赋值为[2, 3, 4](注意b是一个列表,因为它收集了多余的值)。

多变量赋值在处理函数返回多个值、交换变量值等场景时非常有用。例如,交换两个变量的值:

a, b = b, a

在这个例子中,a和b的值被交换,这是通过创建一个元组(b, a)并解包到a和b来实现的。

5.函数

基本语法:

def function_name(parameters):
    """
    文档字符串(docstring):用于描述函数的作用,可选。
    """
    # 函数体:实现特定功能的代码
    ...
    return expression  # 返回值,如果没有返回值,这行可以省略

(1)def关键字是声明函数的关键字。

(2)function_name是函数的名称,它应该遵循变量命名的规则。

(3)parameters是传递给函数的信息,可以是任意类型的对象。函数可以没有参数,也可以有多个参数,参数之间用逗号分隔。

(4)函数体是缩进的代码块,它包含了实现函数功能的代码。

注意:Python有严格的缩进要求,正确的缩进对于Python程序的正常运行至关重要。同一个代码块中的语句必须具有相同的缩进级别。

(5)return关键字用于从函数中返回一个值(也可以是多个值,用逗号隔开)。return也可以返回一个表达式的结果,任何类型的数据都可以被返回,如字典、列表等。函数可以没有return语句,这时函数会返回一个None值。如果函数有多个return语句,当执行到其中一个return语句时,函数会立即返回,并忽略后面的代码。

参数:

参数的传递数量需要匹配,形参和实参的数量不相同会报错。

6.修改函数内的值

函数内定义的变量为局部变量,要想在函数中修改外部的全局变量的值,需要用global来声明变量为全局变量。

x = 10  # 全局变量

def my_function():
    global x  # 声明x为全局变量
    x = 20  # 修改全局变量x的值

my_function()
print(x)  # 输出: 20

注意:global关键字只能在函数内部使用,用于声明函数外的变量。如果在函数内部声明了一个全局变量,但没有在函数外定义该变量,那么在函数内部对该变量的赋值将会创建一个新的全局变量。

7.函数嵌套

函数是可以嵌套使用的,从最内层的函数开始运行。

def outer_function(text):
    def inner_function():
        return text.upper()
    return inner_function()

result = outer_function("hello")
print(result)  # 输出: HELLO

8.递归

递归允许函数调用自身,用于通过解决一系列较小的问题解决一个较大的问题,直到达到一个最简单的问题。

如,经典斐波那契数列

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

# 打印前10个斐波那契数
for i in range(10):
    print(fibonacci(i))


 

  • 42
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值