python 有关变量的赋值问题

本文介绍了一个简单的Python计时器类实现过程,通过实例化类来记录开始和结束时间,并计算两者之间的差值,展示了如何避免循环中定义新变量引起的错误。
本人小白刚开始学py 今天在写代码的过程中有关变量的问题遇到的点小小的麻烦
import time 
class MyTimer():
    def start(self):
        self.start = time.localtime()
        print('开始计时')


    def stop(self):
        self.stop = time.localtime()
        self._calc()#类中调用方法也要加self
        print('计时结束')

    #内部方法,计算运行时间(内部方法前面留着下横线)
    def _calc(self):
        self.lasted = []
        #self.x ='总共运行了'#可以在循环的外面直接赋值
        for index in range(6):
            self.lasted.append(self.stop[index]-self.start[index])
            self.x += str(self.lasted[index])

            

        print(self.x)

开始的时候没有添加红色的语句会报错


总结一下备忘 只要循环中有新类型的变量 需要在循环外设初值

类的属性可以执行时新加 类似于局部变量这样更好理解点吧

Tips 2 :

类中 属性名和方法名不能相同!!!!!很有可能报错(如果相同属性可能会覆盖了方法)

Python 中,给变量赋值是通过使用等号 `=` 来完成的。赋值语句的基本语法如下: ```python variable_name = value ``` 例如,可以将一个整数、浮点数、字符串或其他数据类型的值赋给变量: ```python x = 10 # 整数赋值 y = 3.14 # 浮点数赋值 name = "Alice" # 字符串赋值 ``` 变量赋值的一个重要特性是:变量在未被赋值之前是不能使用的。如果尝试访问一个未定义的变量Python 解释器会抛出一个 `NameError` 异常[^2]。例如: ```python print(z) # 尝试访问未定义的变量 z ``` 这将导致如下错误: ``` Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'z' is not defined ``` Python 支持多种赋值方式,包括一次给多个变量赋值: ```python a, b = 5, 10 ``` 还可以通过表达式的结果给变量赋值: ```python result = a + b ``` 此外,Python 还支持链式赋值,即将同一个值赋给多个变量: ```python x = y = z = 0 ``` 这会将 `x`、`y` 和 `z` 都赋值为 `0`。 ### 动态类型特性 Python 是一种动态类型语言,这意味着变量的类型是在运行时自动推断的,并且同一个变量可以被赋予不同类型的值: ```python var = 10 # var 是整数类型 var = "hello" # 现在 var 是字符串类型 ``` 这种灵活性使得 Python变量赋值非常方便,但也需要注意变量类型的潜在变化可能引发的错误。 ### 变量命名规则 变量名必须遵循以下规则: - 变量名只能包含字母、数字和下划线(`_`)。 - 变量名不能以数字开头。 - 变量名不能是 Python 的关键字(如 `if`、`else`、`for` 等)。 - 变量名应具有描述性,以提高代码的可读性。 合法的变量名示例包括 `age`、`student_name` 和 `_private_variable`,而不合法的变量名包括 `2nd_place`(以数字开头)和 `class`(与关键字冲突)。 ### 示例代码 以下是一个完整的示例,展示如何在 Python 中进行变量赋值和基本操作: ```python # 单个变量赋值 x = 5 y = 3.14 name = "Bob" # 多个变量同时赋值 a, b = 10, 20 # 链式赋值 p = q = r = 1 # 使用表达式赋值 sum_result = x + a # 打印结果 print("x =", x) print("y =", y) print("name =", name) print("a =", a) print("b =", b) print("sum_result =", sum_result) ``` ### 注意事项 - 在 Python 中,变量赋值是引用传递,而不是值传递。这意味着如果将一个可变对象(如列表或字典)赋值给另一个变量,那么两个变量将指向同一个对象。对其中一个变量的修改会影响另一个变量。 - 如果需要创建一个独立的副本,则需要使用特定的方法,如 `copy()` 或 `deepcopy()`(来自 `copy` 模块)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值