当前位置: 首页 > news >正文

《Python游戏编程快速上手》——2.2 计算表达式

本节书摘来自异步社区《Python游戏编程快速上手》一书中的第2章,第2.2节,作者[美] Al Sweigart(斯维加特),李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 计算表达式

当计算机求解表达式10 + 5并且得到值15的时候,它就已经计算了这个表达式。计算一个表达式就是把表达式规约为一个数字,就像解答一道数学题而把问题简化成一个数字一样:数字就是答案。表达式10 + 5和表达式10 + 3 + 2的计算结果都是15。

表达式可以是任意大小的,但它们总是会求解得到一个数字。即便单个值也可以是表达式:表达式15的计算结果就是值15。例如,表达式8 * 3 / 2 + 2 + 7 -9,通过如下步骤,其计算结果是值12.0。

8 * 3 / 2 + 2 + 7–9 
              ▼    
    24 / 2 + 2 + 7–9 
              ▼    
      12.0  + 2 + 7–9 
              ▼    
          14.0  + 7–9 
              ▼    
                21.0–9 
                   ▼    
                    12.0

在交互式shell中看不到所有这些步骤。交互式shell对表达式进行运算,并且只把结果展示给我们。

>>> 8 * 3 / 2 + 2 + 7 -9 
12.0

需要注意的是,除法操作符(/)的运算结果是一个浮点数,所以24/2的结果是12.0。使用浮点数的数学运算,其结果也是浮点数,所以12.0 +2的结果是14.0。

语法错误

如果在交互式shell中输入5+,将会得到一条错误消息。

>>> 5 + 
SyntaxError: invalid syntax

产生这个错误,是因为5+不是一个表达式。表达式通过操作符来连接值。但是加法操作符期待+后边有一个值。当漏掉这个值时,就会出现一个错误。

SyntaxError表示Python不理解这条指令,因为你的输入不正确。很多时候,从事计算机编程不只是告诉计算机要做什么,还要知道如何告诉它。

但是,不要担心出错。错误并不会对计算机造成危害。只要在交互式shell中的下一个>>>提示符处,重新输入正确的指令即可。

相关文章:

  • 《Adobe Flash CS4中文版经典教程》——1.9 预览影片
  • 运营前线2:一线运营专家的运营方法、技巧与实践02 内容运营,取标题的这6招你得会...
  • 《Swift入门经典(第2版)》——第2章 学习Swift的基本数据类型 2.1Swift中的常量...
  • 互联网世界的“人工智能”——探秘“深度学习”的前世今生
  • GOOGLE招聘之行为准则
  • 中国信通院重磅发布大数据关键技术专利态势报告(全文38页下载)
  • Linux学习134 Unit 7
  • python3的文件读取问题
  • 团队视频内容和链接
  • 新生入学V3.0颗粒归仓
  • LVM故障导致RHCS启动故障
  • Java中套接字的理解
  • Redis开发运维实践专题功能之发布订阅
  • 前端素材库
  • 初学者vue脚手架的搭建(哈哈 第一次写 不好的地方请指正)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《深入 React 技术栈》
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【技术性】Search知识
  • JS专题之继承
  • SQLServer之创建数据库快照
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 关于使用markdown的方法(引自CSDN教程)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端性能优化--懒加载和预加载
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 用element的upload组件实现多图片上传和压缩
  • 智能网联汽车信息安全
  • #162 (Div. 2)
  • (2)Java 简介
  • (6)添加vue-cookie
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net core 依赖注入的基本用发
  • .NET Micro Framework初体验(二)
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net2005怎么读string形的xml,不是xml文件。
  • .Net面试题4
  • .NET命名规范和开发约定
  • @angular/cli项目构建--Dynamic.Form
  • @FeignClient注解,fallback和fallbackFactory
  • [ C++ ] STL---stack与queue
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [20150904]exp slow.txt
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [C#]winform部署yolov5-onnx模型
  • [CareerCup] 14.5 Object Reflection 对象反射