计算机二级Python学习笔记(一):温度转换
今天通过一个温度转换的十行代码,理解了一些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行代码,除了简单的分支语句的区别,其它的在上面都有涉及,主要就是当判断输入为华氏度时,计算输出摄氏度。以及格式不对的情况下显示的字符串。
这样一梳理,十行代码就清晰多了。今天还做了几道习题巩固了一下,说是举一反三,实际上是搞懂了三,才对这个一理解更深刻一些。
关于温度转换问题就聊到这里吧,据说明天又要降温了,大家注意保暖。
最新文章
- nodeJS express框架 中文乱码解决办法
- redis数据结构整理(一)
- DIOCP网络通讯流程
- linux常用
- 基于Extjs的web表单设计器 第五节——数据库设计
- LA3902 Network
- input里面的查找标记 ő
- js快速分享代码
- jQuery实现table隔行换色和鼠标经过变色
- web服务器负载均衡与集群基本概念一
- MT【274】一道漂亮的不等式题
- Java中Double类型的精确计算
- MYSQL : The user specified as a definer (&#39;root&#39;@&#39;%&#39;) does not exist
- pthon入门之strip()和split()函数简单区分
- JS中的函数节流throttle详解和优化
- 模块、包及常用模块(time/random/os/sys/shutil)
- 二,ESP8266 GPIO和SPI和定时器和串口(基于Lua脚本语言)
- SpringMVC系列(十)<;mvc:default-servlet-handler/>;(处理静态资源)和<;mvc:annotation-driven />;
- .sh 的运行
- EF 多线程TransactionScope事务异常";事务EFTransaction类定义:与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。";
热门文章
- Shell 编程练习
- Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo
- 一个操作系统的实现sudo mount -o loop pm.img /mnt/floppy mount point /mnt/floppy does not exist losetup device is busy
- ZOJ 2563 Long Dominoes(状压DP)题解
- 如何在 GitHUb 上使用 gitbook 发布一本在线书籍
- Learning JavaScript with MDN (call, apply, bind)
- macOS 升级后导致 dart bug
- convert image to base64 in javascript
- Flutter FractionallySizedBox 设置维度比例 而不是固定的px
- Python数据结构与算法_回文数(03)