[oeasy]python0137_相加运算_python之禅_import_this_显式转化
- 上次讲了是从键盘输入变量
- input 函数
- 可以有提示字符串
- 需要有具体的变量接收输入的字符串
- 输入单个变量没有问题
- 但是输入两个变量之后
- 一相加就非常离谱
- 怎么办呢?
- 回到 游乐场
- 做个 实验
- 两个整数 相加
- 结果是求和
- 两个字符串 相加
- 结果是字符串拼接
- 目前的结果
- 显然来自于拼接
- input()进来的东西
- 真的 都是字符串
- type()函数
- 可以确定变量的类型
- 比如 type("1")
- 那么
- 能把接收 input()的变量类型
- 输出出来么?
- 从 input()来的
- 肯定是 字符串类型的变量
- 需要 转化为 数字类型
- 然后 再相加
- 好了
- 思路有了
- 整合到原来的 py 程序中吧
- input 得到的是字符串 a,b
- 需要做加法的是数字
- 要数字相加
- 不要字符拼接
- 所以要把字符串 a、b 转化为 int 数字
- 所以 total=int(a)+int(b)
- 第7行出了问题
- 字符串类型变量 和 数字类型变量
- 不能相加
- 最终输出 要使用字符串连接
- int 型(数字型)的变量 total
- 不能 implicitly隐式地
- 转化为 str 型(字符串类型)
- 怎么办?
- ctrl+z
- 将vi挂起
- 撤到游乐场
- 先试试能否 explicit 显示 转化
- 这样就可以 把整型数字变量 转化为字符串变量
- 然后就可以 和字符串 拼接了
- 这也是 python之禅 里面的一句话
- Explicit is better than implicit
- 怎么理解呢?
- plicare是拉丁语词根折叠
- ex往外
- explicit
- 展开了
- 掰开了
- 揉碎了
- 说清楚了
- im往里
- implicit
- 折叠了
- 遮盖了
- 掩藏了
- 暗示了
- Explicit is better than implicit
- 明了胜于晦涩
- "1" + 2
- 报错了
- 不接受隐式地类型转化
- 要显示地转化
- 明了胜于晦涩
- Explicit is better than implicit
- 这次说的更明确
- +号的两端不能分别是 int 和 str
- 要么转前面
- 要么转后面
- 两边应该是同样类型的
- 明了胜于晦涩
- 这句话确实
- 真有禅机
- 这 python之禅 还说了些什么?
- 是名人名言么?
- 这是Tim Peters写的
- 在游乐场
- import this
- python 之禅 by Tim Peters
- 优美胜于丑陋(Python 以编写优美的代码为目标)
- 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
- 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
- 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
- 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
- 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
- 可读性很重要(优美的代码是可读的)
- 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
- 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
- 当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
- 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
- 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
- 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
- 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
- 这些并不是挂在墙上的名言
- 而是可以用的
- 怎么用呢?
- exit()退出游乐场
- fg 回到 vim
- 这个东西终于成功了
- 突发奇想
- 这最后一句不是要字符串么?
- 我是不是可以去掉这双引号
- 直接把 str(total)放进去?
- 可以运行么?
- 事实证明不行
- 哈哈哈
- 加号就是用来拼接的
- 写在里面就原样输出了
- "You got " + a + " apples!" 的 + 号不是装饰
- 而是 进行拼接运算 的
- 把变量 a 融到字符串里面去的
- 变量相加
- 整型数字变量可以相加
- 字符串变量也可以拼接
- 但是
- 字符串 和 整型数字
- 整型数字 和 字符串
- 不能相加
- 怎么办?
- 转格式
- int("1")
- str(2)
- 可是
- 如果输入的苹果数量是
- 字符串"abc"
- int("abc")会发生什么??
- 我们下次再说!
[oeasy]python0137_相加运算_python之禅_import_this_显式转化的更多相关文章
- python自动类型转换(针对于Number数据类型来的)精度从低到高 bool->int-> float->complex 当两个不同是数据类型运算时候,默认想更高进度转化
# ### 自动类型转换(针对于Number数据类型来的) ''' 精度从低到高 bool->int-> float->complex 当两个不同是数据类型运算时候,默认想更高进度转 ...
- [C#] 走进 LINQ 的世界
走进 LINQ 的世界 序 在此之前曾发表过三篇关于 LINQ 的随笔: 进阶:<LINQ 标准查询操作概述>(强烈推荐) 技巧:<Linq To Objects - 如何操作字符串 ...
- LINQ 的使用
[转]链接:cnblogs.com/liqingwen/p/5832322.html LINQ 简介 语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framewo ...
- .NET LINQ基本查询操作
获取数据源 在 LINQ 查询中,第一步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 ( ...
- Java Data Type
官方文档:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html 转载地址:http://blog.csdn.n ...
- 面试准备(四)Java基本数据类型
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- Java基础-基本数据类型转换案例
java基本数据类型八中 byte = Byte short = Short char = Character int = Integer long = Long float = Float doub ...
- 【转】Java基本数据类型
原文网址:http://blog.csdn.net/bingduanlbd/article/details/27790287 Java语言是静态类型的(statical typed),也就是说所有变量 ...
- 转载 Java基本数据类型
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- JAVA 第二天 基本数据类型
在栈中可以直接分配内存的数据是基本数据类型.引用数据类型:数据的引用在栈中,但他的对象在堆中. 基本数据类型,小可转大,大转小会失去精度 第一类:逻辑型boolean 第二类:文本型char 第三类: ...
随机推荐
- 解决“在windows里的记事本里编辑的汉字文本文件,上传到linux服务器上出现乱码“问题
目录 一.前期准备 二.编码转换 一.前期准备 1.首先在windows环境下打开记事本,然后创建一个包含汉字和英文的文本文件,输入内容"测试在windows里的记事本里编辑的文本文 件,上 ...
- 联网安装与源码安装mysql
一.卸载mariadb的rpm包 1.首先,你需要找出已安装的MariaDB包的具体名称.可以使用以下命令列出所有已安装的MariaDB包: rpm -qa | grep mariadb 2.删除命令 ...
- .net core的学习小结
课程:[.NET 6教程,.Net Core 2022视频教程,杨中科主讲] https://www.bilibili.com/video/BV1pK41137He/?p=159&share_ ...
- gitlab docker 自动部署报错 /bin/bash: line 118: docker: command not found
原因找不到docker,我们需要绑一下docker 列出所有gitlab-runner配置文件 find / | grep config.toml [root@izwz99pke7zxkpm7l51t ...
- Opencv笔记(12)傅里叶变换
在之前了解的OpenCV为我们实现的图像变换,这些本质上是从图像到输出图像的映射,即输入仍是一幅图像.本章的傅里叶变换,输出数组的值在含义上和原图像的强度值大不相同,是输入图像的频域表示. cv::d ...
- 搭建k8s集群完整版本
搭建k8s集群完整版 基础设置 设置主机ip nmcli con add ifname ens33 con-name ens33 autoconnect yes type ethernet nmcli ...
- c#WinFrom自定义图表仪表控件-频谱
这是为客户定制的一个频谱图表控件,先看下成品效果,gif较大,略等片刻 开发步骤分析: 1.界面有多个间距不等的线分割的区域,每个区域的值范围不同,我们就需要把每个区域定义出来,方便我们操作的时候来计 ...
- 再谈中断机制(APIC)
中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的.一个中断的起末会经历设备,中断控制器,CPU 三个阶段:设备产生中断信号,中断控制器翻译信号,CPU 来实际处理信号. ...
- xpath提取不到值(iframe嵌套)的问题
爬取http://xgj.xiangyang.gov.cn/zwgk/gkml/?itemid=2471的时候遇到frame嵌套,内部的a标签获取不到. 网上也有人遇到了同样的问题.https://b ...
- 增补博客 第五篇 python 电子算盘
[题目描述]设计一个电子算盘.要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示).界面右侧要求以图形绘制的方式绘制自画像,注意不能是图像文件显示的形式. 图 电子算盘参考界面示意 [练习要 ...