Python表达式

作者 : 开心源码 本文共1157个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共124人阅读

数学转换

  • 其一为复数,则另一个自动转为复数
  • 其一为浮点,则另一个自动转为浮点
  • 两者都是整数,不做转换

表达式

  • 运算符和操作数一起构成表达式
  • 操作数可以使用标识符表示,如a=3;b=2;c=a*b
  • 表达式是python程序最常见的代码

三元表达式

  • value_of_true if condition else value_of_false
    • n='a' if 10>4 else 'b'n结果是’a’
    • c=10/3;n=100 if c>5 else 0,结果a是0
  • (value_of_false,value_of_true)[condition]
    • n=(100,0)[10>3]结果n是100
    • c=10/3;n=(100,0)[c>5]结果n是0

BNF巴科斯范式说明

  • 这是一种定义语法规则的语法,在Python官方文档及本文以下都使用此范式
  • 双引号中的字(“word”)代表着这些字符本身。在双引号外的字(有可能有下划线)代表着语法部分
  • 主要规则如下:
    • < > : 内包含的为必选项。
    • [ ] : 内包含的为可选项。
    • { } : 内包含的为可重复0至无数次的项。
    • | : 表示在其左右两边任选一项,相当于”OR”的意思。
    • ::= : 是“被定义为”的意思
    • “…” : 术语符号
    • […] : 选项,最多出现一次
    • {…} : 重复项,任意次数,包括 0 次
    • (…) : 分组
    • | : 并列选项,只能选一个
    • 斜体字: 参数,在其它地方有解释

Python主要表达式

  • 获取对象属性:attributeref ::= primary "." identifier

    • boy.age,tower.height
    • 假如对象类定义了_getattr_(self,name)方法,未被定义的属性将使用它,如以下代码输出100:
    class sth():    def __getattr__(self,name):        return 100a=sth()a.age
  • 获取子项目:subscription ::= primary "[" expression_list "]"

    • boy['age'],mylist[3]
  • 切片:proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ]

    • mylist[0:10:3],mylist[0:],mylist[:10:2],mylist[::5],mylist[-30::3]
  • 调用方法:call::= primary "(" [argument_list [","] | comprehension] ")"

    • car.run(),person.say('hello'),someone.hit(sth,3)
    • 参数的顺序很重要,*加字典,加枚举,如下几种语法都正确输出1 2 3
    def p(a,b,c):    print(a,b,c)p(a=1,c=3,b=2)p(**{'a':1,'c':3,'b':2})p(*{1,2,3})

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Python表达式

发表回复