文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-01-31 08:17

关注

变量命名

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

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

注意:

  1. 区分大小写
  2. 禁止使用保留字
  3. 遵守通常习惯
  • 以单一下划线开头的变量名(_X)不会被from module import *语句导入的。
  • 前后有下划线的变量名(X)是系统定义的变量名,对解释器有特殊意义。
  • 以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。
  • 通过交互模式运行时,只有单个下划线变量(_)会保存最后的表达式结果。

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

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

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

>>> not = 3
  File "<stdin>", line 1
    not = 3
        ^
SyntaxError: invalid syntax

>>> pass = "hello,world"
  File "<stdin>", line 1
pass = "hello,world"
         ^
SyntaxError: invalid syntax

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

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

  • 名字具有一定的含义。比如写:n = "qiwsir",就不如写:name = "qiwsir"更好。
  • 名字不要误导别人。比如用account_list指一组账号,就会被人误解为是list类型的数据,事实上可能是也可能不是。所以这时候最好换个名称,比如直接用accounts。
  • 名字要有意义的区分,有时候你可能会用到a1,a2之类的名字,最好不要这么做,换个别的方式,通过字面能够看出一定的区分来更好。
  • 最好是名称能够读出来,千万别自己造英文单词,也别乱用所写什么的,特别是贵国的,还喜欢用汉语拼音缩写来做为名字,更麻烦了,还不如全拼呢。最好是用完整的单词或者公认的不会引起歧义的缩写。
  • 单个字母和数字就少用了,不仅是显得你太懒惰,还会因为在一段代码中可能有很多个单个的字母和数字,为搜索带来麻烦,别人也更不知道你的i和他理解的i是不是一个含义。

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

赋值语句

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

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

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

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

>>> name = "qiwsir"

>>> name, website = "qiwsir","qiwsir.github.io"     #多个变量,按照顺序依次赋值
>>> name
'qiwsir'
>>> website
'qiwsir.github.io'

>>> name, website = "qiwsir"    #有几个变量,就对应几个对象,不能少,也不能多
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

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

>>> one,two,three,four = "good"
>>> one
'g'
>>> two
'o'
>>> three
'o'
>>> four
'd'

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

>>> [name,site] = ["qiwsir","qiwsir.github.io"]
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'
>>> name,site = ("qiwsir","qiwsir.github.io")
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'

这样也行呀。

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

>>> site = "qiwsir.github.io"
>>> name, main = site.split(".")[0], site.split(".")[1]   #还记得str.split(<sep>)这个东东吗?忘记了,google一下吧。
>>> name
'qiwsir'
>>> main
'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。可以用下面方式实现:

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

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

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

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

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

>>> [i+2 for i in number]
[3, 4, 5, 6, 7]
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯