资讯专栏INFORMATION COLUMN

[零基础学Python]赋值,简单也不简单

church / 2980人阅读

摘要:以上原则,是基本原则。比如用指一组账号,就会被人误解为是类型的数据,事实上可能是也可能不是。不论如何,要记住一个标准明确赋值语句对于赋值语句,看官已经不陌生了。其实,赋值的样式不少,核心就是将变量和某对象对应起来。

变量命名

在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习:

名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线)

注意:

区分大小写

禁止使用保留字

遵守通常习惯

以单一下划线开头的变量名(_X)不会被from module import *语句导入的。

前后有下划线的变量名(X)是系统定义的变量名,对解释器有特殊意义。

以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。

通过交互模式运行时,只有单个下划线变量(_)会保存最后的表达式结果。

需要解释一下保留字,就是python里面保留了一些单词,这些单词不能让用户来用作变量名称。都有哪些呢?(python2和python3少有差别,但是总体差不多)

</>复制代码

  1. and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while yield

需要都记住吗?当然不需要了。一方面,可以在网上随手查到,另外,还能这样:

</>复制代码

  1. >>> not = 3
  2. File "", line 1
  3. not = 3
  4. ^
  5. SyntaxError: invalid syntax
  6. >>> pass = "hello,world"
  7. File "", line 1
  8. pass = "hello,world"
  9. ^
  10. SyntaxError: invalid syntax

在交互模式的实验室中,用保留字做变量,就报错了。当然,这时候就要换名字了。

以上原则,是基本原则。在实际编程中,大家通常还这样做,以便让程序更具有可读性:

名字具有一定的含义。比如写:n = "qiwsir",就不如写:name = "qiwsir"更好。

名字不要误导别人。比如用account_list指一组账号,就会被人误解为是list类型的数据,事实上可能是也可能不是。所以这时候最好换个名称,比如直接用accounts。

名字要有意义的区分,有时候你可能会用到a1,a2之类的名字,最好不要这么做,换个别的方式,通过字面能够看出一定的区分来更好。

最好是名称能够读出来,千万别自己造英文单词,也别乱用所写什么的,特别是贵国的,还喜欢用汉语拼音缩写来做为名字,更麻烦了,还不如全拼呢。最好是用完整的单词或者公认的不会引起歧义的缩写。

单个字母和数字就少用了,不仅是显得你太懒惰,还会因为在一段代码中可能有很多个单个的字母和数字,为搜索带来麻烦,别人也更不知道你的i和他理解的i是不是一个含义。

总之,取名字,讲究不少。不论如何,要记住一个标准:明确

赋值语句

对于赋值语句,看官已经不陌生了。任何一个变量,在python中,只要想用它,就要首先赋值。

语句格式:变量名称 = 对象

上一节中也分析了赋值的本质。

还有一种赋值方式,叫做隐式赋值,通过import、from、del、class、for、函数参数。等模块导入,函数和类的定义,for循环变量以及函数参数都是隐式赋值运算。这方面的东西后面会徐徐道来。

</>复制代码

  1. >>> name = "qiwsir"
  2. >>> name, website = "qiwsir","qiwsir.github.io" #多个变量,按照顺序依次赋值
  3. >>> name
  4. "qiwsir"
  5. >>> website
  6. "qiwsir.github.io"
  7. >>> name, website = "qiwsir" #有几个变量,就对应几个对象,不能少,也不能多
  8. Traceback (most recent call last):
  9. File "", line 1, in
  10. ValueError: too many values to unpack

如果这样赋值,也得两边数目一致:

</>复制代码

  1. >>> one,two,three,four = "good"
  2. >>> one
  3. "g"
  4. >>> two
  5. "o"
  6. >>> three
  7. "o"
  8. >>> four
  9. "d"

这就相当于把good分拆为一个一个的字母,然后对应着赋值给左边的变量。

</>复制代码

  1. >>> [name,site] = ["qiwsir","qiwsir.github.io"]
  2. >>> name
  3. "qiwsir"
  4. >>> site
  5. "qiwsir.github.io"
  6. >>> name,site = ("qiwsir","qiwsir.github.io")
  7. >>> name
  8. "qiwsir"
  9. >>> site
  10. "qiwsir.github.io"

这样也行呀。

其实,赋值的样式不少,核心就是将变量和某对象对应起来。对象,可以用上面的方式,也许是这样的

</>复制代码

  1. >>> site = "qiwsir.github.io"
  2. >>> name, main = site.split(".")[0], site.split(".")[1] #还记得str.split()这个东东吗?忘记了,google一下吧。
  3. >>> name
  4. "qiwsir"
  5. >>> main
  6. "github"
增强赋值

这个东西听名字就是比赋值强的。

在python中,将下列的方式称为增强赋值:

增强赋值语句 等价于语句
x+=y x = x+y
x-=y x = x-y
x*=y x = x*y
x/=y x = x/y

其它类似结构:x&=y  x|=y  x^=y  x%=y  x>>=y x<<=y  x**=y  x//=y

看下面的例子,有一个list,想得到另外一个列表,其中每个数比原来list中的大2。可以用下面方式实现:

</>复制代码

  1. >>> number
  2. [1, 2, 3, 4, 5]
  3. >>> number2 = []
  4. >>> for i in number:
  5. ... i = i+2
  6. ... number2.append(i)
  7. ...
  8. >>> number2
  9. [3, 4, 5, 6, 7]

如果用上面的增强赋值,i = i+2可以写成 i +=2,试一试吧:

</>复制代码

  1. >>> number
  2. [1, 2, 3, 4, 5]
  3. >>> number2 = []
  4. >>> for i in number:
  5. ... i +=2
  6. ... number2.append(i)
  7. ...
  8. >>> number2
  9. [3, 4, 5, 6, 7]

这就是增强赋值。为什么用增强赋值?因为i +=2,比i = i+2计算更快,后者右边还要拷贝一个i。

上面的例子还能修改,别忘记了list解析的强大功能呀。

</>复制代码

  1. >>> [i+2 for i in number]
  2. [3, 4, 5, 6, 7]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37337.html

相关文章

  • [基础Python]正规地说一句话

    摘要:语句,遍列列表字符串字典集合等迭代器,依次处理迭代器中的每个元素。与配合使用处理在程序运行中出现的异常情况。表示此行为空,不运行任何操作。在迭代器函数内使用,用于返回一个元素。恭请到上浏览及时更新的教程零基础学 小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说饺子,对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用饺饺来代替,其实就是让孩子学会一个字就能表达。当然...

    Freeman 评论0 收藏0
  • [基础python]复习if语句

    摘要:在学习语句的时候,对编程的基础知识了解的还不是很多,或许没有做什么太复杂的东西。可以通过一个内置函数来判断一个条件的结果还是。有朋友需要看完整教程内容,请点击零基础学,这里会及时更新,并且有完整的目录结构,更吸纳了朋友们提出的意见和建议。 看官是否记得,在上一部分的时候,有一讲专门介绍if语句的:从if开始语句的征程。在学习if语句的时候,对python编程的基础知识了解的还不是很多,...

    array_huang 评论0 收藏0
  • [基础python]永远强大的函数

    摘要:莱布尼兹所指的函数现在被称作可导函数,数学家之外的普通人一般接触到的函数即属此类。中文的函数一词由清朝数学家李善兰译出。前面提供的维基百科中的函数词条,里面可以做一个概览。 函数,对于人类来讲,能够发展到这个数学思维层次,是一个飞跃。可以说,它的提出,直接加快了现代科技和社会的发展,不论是现代的任何科技门类,乃至于经济学、政治学、社会学等,都已经普遍使用函数。 下面一段来自维基百科(...

    cangck_X 评论0 收藏0
  • [基础python]变量和参数

    摘要:每个形参的名称均可作为过程内的局部变量。实参表示在您调用过程时传递给过程形参的值。看官如果硬着头皮看完这段引文,发现里面有几个关键词参数变量形参实参。好似全局变量能力很强悍,能够统帅函数内外。 对于变量和参数,不管是已经敲代码多年的老鸟,还是刚刚接触编程的小白,都会有时候清楚,有时候又有点模糊。因为,在实际应用中,它们之间分分离离,比如,敲代码都知道,x=3中x是变量,它不是参数,但是...

    Freelander 评论0 收藏0
  • [基础python]编写类之一创建实例

    摘要:接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。故这个函数称为构造函数,担负着对类进行初始化的任务。 虽然已经对类有了一点点模糊概念,但是,阅读前面一讲的内容的确感到累呀,都是文字,连代码都没有。 本讲就要简单多了,尝试走一个类的流程。 说明:关于类的这部分,我参考了《Learning Python》一书的讲解。 创建类 创建类的方法比较简单,如下: ...

    mozillazg 评论0 收藏0

发表评论

0条评论

church

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<