[oeasy]python0137_相加运算_python之禅_import_this_显式转化

简介: [oeasy]python0137_相加运算_python之禅_import_this_显式转化

变量类型 相加运算 回忆上次内容

  • 上次讲了是从键盘输入变量
  • input 函数
  • 可以有提示字符串
  • 需要有具体的变量接收输入的字符串


  • 输入单个变量没有问题
  • 但是输入两个变量之后
  • 一相加就非常离谱


添加图片注释,不超过 140 字(可选)

  • 怎么办呢?🤔

基本实验

  • 回到 游乐场
  • 做个 实验


  • 两个整数 相加
  • 结果是求和


  • 两个字符串 相加
  • 结果是字符串拼接


添加图片注释,不超过 140 字(可选)

  • 目前的结果
  • 显然来自于拼接


  • input()进来的东西
  • 真的 都是字符串


确定类型

  • type()函数
  • 可以确定变量的类型
  • 比如 type("1")


  • 那么
  • 能把接收 input()的变量类型
  • 输出出来么?



添加图片注释,不超过 140 字(可选)

转化函数

  • 从 input()来的
  • 肯定是 字符串类型的变量
  • 需要 转化为 数字类型
  • 然后 再相加


添加图片注释,不超过 140 字(可选)

  • 好了
  • 思路有了


  • 整合到原来的 py 程序中吧

整合到一起

  • input 得到的是字符串 a,b
  • 需要做加法的是数字
  • 要数字相加
  • 不要字符拼接


#!/usr/bin/python a = input("How many apples do you got?\n") print("You got " + a + " apples!") b = input("How many bananas do you got?\n") print("You got " + b + " bananas!") total = int(a) + int(b) print("You got " + total + " fruits!")

  • 所以要把字符串 a、b 转化为 int 数字
  • 所以 total=int(a)+int(b)


运行结果

添加图片注释,不超过 140 字(可选)

  • 第7行出了问题
  • 字符串类型变量 和 数字类型变量
  • 不能相加



添加图片注释,不超过 140 字(可选)

  • 最终输出 要使用字符串连接
  • int 型(数字型)的变量 total
  • 不能 implicitly隐式地
  • 转化为 str 型(字符串类型)



  • 怎么办?
  • ctrl+z
  • 将vi挂起
  • 撤到游乐场



字符串转化为数字

  • 先试试能否 explicit 显示 转化

添加图片注释,不超过 140 字(可选)

  • 这样就可以 把整型数字变量 转化为字符串变量
  • 然后就可以 和字符串 拼接了
  • 这也是 python之禅 里面的一句话
  • Explicit is better than implicit


  • 怎么理解呢?

plicare

  • plicare是拉丁语词根折叠
  • ex往外
  • explicit
  • 展开了
  • 掰开了
  • 揉碎了
  • 说清楚了



  • im往里
  • implicit
  • 折叠了
  • 遮盖了
  • 掩藏了
  • 暗示了




  • Explicit is better than implicit
  • 明了胜于晦涩


"1" + 2

  • "1" + 2
  • 报错了


添加图片注释,不超过 140 字(可选)

  • 不接受隐式地类型转化
  • 要显示地转化


  • 明了胜于晦涩
  • Explicit is better than implicit


1 + "2"

  • 这次说的更明确

添加图片注释,不超过 140 字(可选)

  • +号的两端不能分别是 int 和 str
  • 要么转前面
  • 要么转后面
  • 两边应该是同样类型的


  • 明了胜于晦涩
  • 这句话确实
  • 真有禅机



  • 这 python之禅 还说了些什么?
  • 是名人名言么?


python 之禅

  • 这是Tim Peters写的

添加图片注释,不超过 140 字(可选)

  • 在游乐场
  • import this


翻译

  • python 之禅 by Tim Peters
  • 优美胜于丑陋(Python 以编写优美的代码为目标)
  • 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
  • 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
  • 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
  • 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
  • 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
  • 可读性很重要(优美的代码是可读的)
  • 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
  • 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
  • 当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
  • 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
  • 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
  • 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
  • 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)


  • 这些并不是挂在墙上的名言
  • 而是可以用的
  • 怎么用呢?


  • exit()退出游乐场
  • fg 回到 vim

转化之后 #!/usr/bin/python a = input("How many apples do you got?\n") print("You got " + a + " apples!") b = input("How many bananas do you got?\n") print("You got " + b + " bananas!") total = int(a) + int(b) print("You got " + str(total) + " fruits!")

  • 这个东西终于成功了

添加图片注释,不超过 140 字(可选)

  • 突发奇想
  • 这最后一句不是要字符串么?


  • 我是不是可以去掉这双引号
  • 直接把 str(total)放进去?


转化之后 #!/usr/bin/python3 a = input("How many apples do you have: ") print("You have got " + a + " apples!") b = input("How many banana do you have: ") print("You have got " + b + " bananas!") total = int(a) + int(b) print("You have got  + str(total) + fruits in all!")

  • 可以运行么?

尝试

  • 事实证明不行
  • 哈哈哈
  • 加号就是用来拼接的


添加图片注释,不超过 140 字(可选)

  • 写在里面就原样输出了
  • "You got " + a + " apples!" 的 + 号不是装饰
  • 而是 进行拼接运算


  • 把变量 a 融到字符串里面去的


总结

  • 变量相加
  • 整型数字变量可以相加
  • 字符串变量也可以拼接


  • 但是
  • 字符串 和 整型数字
  • 整型数字 和 字符串
  • 不能相加


  • 怎么办?
  • 转格式
  • int("1")
  • str(2)


  • 可是
  • 如果输入的苹果数量是
  • 字符串"abc"


  • int("abc")会发生什么??😱



目录
相关文章
|
3月前
|
Unix 编译器 Shell
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
本文回顾了计算机语言与操作系统的起源,探讨了早期 Unix 操作系统及其与 C 语言的相互促进发展。Unix 最初用汇编语言编写,运行在 PDP-7 上,后来 Thompson 和 Ritchie 开发了 C 语言及编译器,使 Unix 重写并成功编译。1974 年 Ritchie 发表论文,Unix 开始被学术界关注,并逐渐普及。伯克利分校也在此过程中发挥了重要作用,推动了 Unix 和 C 语言的广泛传播。
64 9
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
|
19天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
13 1
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
31 4
|
2月前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
25 1
|
23天前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
12 0
|
2月前
|
Python
[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助
本文回顾了Python中`ord()`和`chr()`函数的使用方法,强调了这两个函数互为逆运算:`ord()`通过字符找到对应的序号,`chr()`则通过序号找到对应的字符。文章详细解释了函数参数类型的重要性,即`ord()`需要字符串类型参数,而`chr()`需要整数类型参数。若参数类型错误,则会引发`TypeError`。此外,还介绍了如何使用`type()`函数查询参数类型,并通过示例展示了如何正确使用`ord()`和`chr()`进行转换。最后,强调了在函数调用时正确传递参数类型的重要性。
23 3
|
2月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
44 0
|
3月前
|
Python
[oeasy]python035_根据序号得到字符_chr函数_字符_character_
本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
31 4
|
4月前
|
算法 Unix 程序员
[oeasy]python031_[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics
回顾了上次内容关于调试的基本概念后,本文介绍了Unix操作系统的起源。从早期计算机任务的独占执行方式讲起,到1960年代 Dartmouth 开发出分时算法,使得一台主机能够面对多个终端,轮流使用CPU时间片。随后,贝尔实验室、通用电气和MIT合作开展Multics项目,项目成员Kenneth Thompson与Dennis Ritchie在此期间开发了一款名为《Space Travel》的游戏。然而,因金融动荡等原因,Multics项目最终被裁撤。Thompson和Ritchie后来利用实验室闲置的一台PDP-7计算机仅用三周时间就开发出了Unix操作系统的第一版,初衷是为了能够继续玩游戏。
43 3
|
3月前
|
Unix 编译器 C语言
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
27 0