今天通过一个温度转换的十行代码,理解了一些Python的基本元素。

所谓温度转换,就是摄氏度和华氏度的转换,要求输入摄氏度,可以输出华氏度,反之一样能实现。代码如下:

#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]-32)/1.8)
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8*(eval(TempStr[0:-1])+32)
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")

只有十行,但还是看不懂?没关系,我开始也不懂,接下来我逐行梳理一遍,感兴趣的话也可以和我从这十行代码开始,了解一些Python的基本元素。

第1行 #TempConvert.py

这行是注释,只是为了提高代码的可读性,不参与代码的执行。

python的注释有两种,单行注释使用#,多行注释可以使用在注释内容前后用三个单引号来实现。

第2行 TempStr = input("请输入带有符号的温度值:")

其中TempStr是一个变量,通过“=”来进行赋值。变量命名规则首字符不能是数字,不能和保留字符相同,区分大小写。

input()是输入函数,获取用户输入的信息,用户输入的信息以字符串的形式保存在<变量>中。

双引号里面的是字符串,这里作用是程序的提示符。

结合起来看,就是显示一段提示文字,然后要输入一个带符号的温度值,以字符串的形式赋值给TempStr。

第3行 if TempStr[-1] in ['F','f']:

if是分支语句,python的分支语句除了if还有elif,else。它们后面都要带一个冒号,这是语法的一部分。

方括号代表数据类型是列表类型,关于数据类型还有整数类型和字符串类型。

-1代表字符串的序号,-1指的字符串的最后一位,关于字符串序号,可以参考下图:

in也是保留字符,用来判断是否在列表中。

结合起来理解,这行代码的意思是,如果变量TempStr中的最后一位,包含F或f,也就是单位是华氏度时,那么就执行下面的代码。

第四行 C = (eval(TempStr[0:-1])-32)/1.8

其中C也是变量,需要将计算的结果赋值给C。

[0:-1]代表字符串的切片,表示的意思是从字符串第一位,到不包含最后一位。也就是提取了单位前的数字。

eval()函数用来执行计算表达式,可以实现去除字符串两边的引号。由于上面是字符串的切片,提取的是一个字符串,去掉两边引号后就可以参与到后面的计算了。

结合起来看,就是将华氏度的数值,通过公式的计算,结果返回给C。

第五行 print("转换后的温度值是:{:.2f}C".format(C))

print()是输出函数,以字符串形式将结果显示出来。

{:.2f}代表保留两位小数,{}代表槽,后续的变量将会引入到这里。这里是将.format(C)中C变量引入进来,也就是第四行计算出的值。

结合来看,就是输出计算后的摄氏温度的值。

第6~10行代码,除了简单的分支语句的区别,其它的在上面都有涉及,主要就是当判断输入为华氏度时,计算输出摄氏度。以及格式不对的情况下显示的字符串。

这样一梳理,十行代码就清晰多了。今天还做了几道习题巩固了一下,说是举一反三,实际上是搞懂了三,才对这个一理解更深刻一些。

关于温度转换问题就聊到这里吧,据说明天又要降温了,大家注意保暖。

计算机二级Python学习笔记(一):温度转换的更多相关文章

  1. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  2. 大学四年的Python学习笔记分享之一,内容整理的比较多与仔细

    翻到以前在大学坚持记录的Python学习笔记,花了一天的时间整理出来,整理时不经回忆起大学的时光,一眨眼几年就过去了,现在还在上学的你们,一定要珍惜现在,有个充实的校园生活.希望这次的分享对于你们有学 ...

  3. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  4. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  5. 【python学习笔记】3.字符串使用

    [python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...

  6. Python学习笔记九

    Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...

  7. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  8. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  9. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

随机推荐

  1. 洛谷 P5837 [USACO19DEC]Milk Pumping G (单源最短路,dijkstra)

    题意:有一\(n\)个点,\(m\)条边的双向图,每条边都有花费和流量,求从\(1\)~\(n\)的路径中,求\(max\frac{min(f)}{\sum c}\). 题解:对于c,一定是单源最短路 ...

  2. .Net反编译实践记录

    去壳 去壳可以使用 de4dot,源码在 这里.可用版本 下载地址. 使用方式为:.\de4dot.exe [path] 修改代码 反编译修改代码可以使用 dnSpy,源码在 这里.可用版本 下载地址 ...

  3. CN_Week2_Neuron_code

    CN_Week1_Neuron_code on Coursera Abstract for week2: -- 1. Technique for recording from the brain. - ...

  4. WIN10修改应用的默认打开方式

    如图所示: 选中想要替换成为的应用程序, 在其中勾选想设默认应用的文件类型即可.

  5. js load more select

    js load more select searchable scroll load more append to list refs xgqfrms 2012-2020 www.cnblogs.co ...

  6. Code Spell Checker & VSCode 单词拼写验证

    Code Spell Checker & VSCode 单词拼写验证 https://marketplace.visualstudio.com/items?itemName=streetsid ...

  7. 如何使用 js 实现一个树组件

    如何使用 js 实现一个树组件 tree component const arr = [ { id: 1, value: 1, level: 1, parentId: 0, }, { id: 2, v ...

  8. 微软收购 GitHub

    微软收购 GitHub 微软收购 GitHub震惊业界:引发开发者信任问题 https://news.cnblogs.com/n/598432/ GitLab refs xgqfrms 2012-20 ...

  9. cnblogs 日期错乱 bug

    cnblogs 日期错乱 bug 时间错乱 bug archive/2004/01/13/ 什么鬼 呀默认时间戳 https://www.cnblogs.com/xgqfrms/archive/200 ...

  10. 时间轴 timeline

    时间轴 timeline https://www.helloweba.net/javascript/285.html https://www.helloweba.net/demo/v_timeline ...