文档章节

Changing Temperature

zhao_is_me
 zhao_is_me
发布于 2014/08/05 19:59
字数 295
阅读 3
收藏 0
print "Enter a temperature (e.g., 32F, 32f, 30C):\n )"
$input = <STDIN>; # 接收用户输入的一行文本
chmop($input) ; # Remove the newline the end of text
if($input =~ m/^([-+]?[0-9]+(\.[0-9]*)?)\s*([CF])$/i){ 
# \s表示匹配任意长度空白 ?表示可选项 i 表示不区分大小写
    #如果运行到此,则已经匹配,$1保存数值, $3保存"C" or "F"
    $inputNumber = $1;#$1 为第一个左括号所包含的值 在此程序中表示数值部分
    $type = $3;#$3 表示最后第三个括号的内容 即  符号部分
    if($type=~m/c/i){
        #输入摄氏温度,计算华氏温度
        $celsius = $inputNumber;
        $farhrenheit = ($celsius * 9 / 5) + 32;
    }else{
        #如果不是"C", 则必定是"F",所以计算摄氏温度
        $fahrenheit = $inputNumber;
        $celsius = ($fahreheit - 32) * 5 / 9;
   }
   #现在两个值都有了, 输出结果
   printf  "%.2f C is %.2f F\n", $celsius, $farenheit;#格式化输出 保留两位小树
}else{
    #表达式无法匹配
    print "Expecting a number followed by \"C\",\"c\","F",\"f\",\n";
    print "so I don't understand \"$input\".\n";
}


本文为简单的华氏温度与摄氏温度的转换 利用正则表达式判断输入是否合法

© 著作权归作者所有

下一篇: Regular Express
zhao_is_me
粉丝 0
博文 4
码字总数 774
作品 0
石河子
私信 提问
日志错误,那位高人帮忙分析下子??

系统环境: OS:Debian Gnu/Linux 8.7 kernel 4.9.0-0.bpo.2-amd64 #1 SMP Debian 4.9.13-1~bpo8+1 (2017-02-27) x86_64 GNU/Linux 01:00.0 VGA compatible controller: NVIDIA Corporation......

晒太阳的小猪
2017/03/17
102
6
The Google Assistant SDK – new languages, API upda

The Google Assistant SDK – new languages, API upda 谷歌中国开发者社区 (GDG)2017-12-202 阅读 apinewGoogleSDK Posted by Glen Shires, Google Assistant SDK Tech Lead The Google Ass......

谷歌中国开发者社区 (GDG)
2017/12/20
0
0
sql 语句,先降后分组

体温表: 插入数据: 需求:查询出8月里每天最新的一条数据1、第一步先降序: 2、第二步:排序后分组,GROUP BY time, 用substr()函数截取时间后格式为yyyyy-mm-dd,这样就变成了按天进行分...

zhangbs
2016/08/22
52
0
在Java程序中,如何解析如下的一段JSON代码。

"{'resultcode':'200','reason':'successed!','result':{'sk':{'temp':'27','wind_direction':'北风','wind_strength':'0级','humidity':'25%','time':...

一定要霸气SL
2015/10/17
1K
7
回调函数的函数名作为参数传入,但回调函数的参数如何传入?

static void hmi_unit_focus_move_up_fn(ndm_node_t *self) { if(HMI_LIST_FOCUS_STATUS_FINISHED==hmi_list_get_moving_status()) { struct HMI_SETTING_UNIT_ROOT_SPACE *ctrl = (struct H......

断水亦歌
2018/09/11
655
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
18分钟前
4
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
20分钟前
34
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
21分钟前
5
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
今天
6
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部