Python基础题型小练习 1.华氏温度转成摄氏温度

Python 基础题型练习

经过了枯燥的理论学习,今天为大家准备了Python基础练习题,当然Python初学者可能也会遇到一些困难,在这为大家进行详细的讲解

题目一: 华氏温度转摄氏温度

题目内容:

  1. 温度转换(3分)

写一个将华氏温度转换成摄氏温度的程序,转换的公式是

°F = (9 / 5)* °C + 32
其中 °C表示 摄氏温度, °F 表示华氏温度
程序的输入是一个整数,表示华氏温度,输出对应的是摄氏温度,也是一个整数。

题目分析:

题目要求是写一个将华氏温度转换成摄氏温度的Python代码,让用户输入将要转换成摄氏温度的华氏温度,最后输出对应得摄氏温度,并且输入输出都是整数,所以我们可以想到下面的代码流程。

  1. 定义两个变量,分别是华氏温度和摄氏温度,我将它们命名为Fahrenheit,Celsius
  2. 既然需要获取道用户输入的华氏温度值,所以我们需要使用input()方法其基本语法为str = input()
  3. 将华氏温度值代入公式,得到摄氏温度值
  4. 将摄氏温度值转换成int类型。

-------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------

代码如下:

 """
程序:华氏温度转成摄氏温度
作者:假书生@
日期:202016"""
def IsInt(a):       #创建字符串转换成int类型的函数
    try:            #使用try  except 进行异常处理
        a = int(a)  #使用int()方法进行数据类型转换,但是int()只识别正负号和正负号,不识别小数点
        isinstance(a,int) #判断转换后的a,数据类型是否是int类型
        return True,int(a) # 如果是Int类型,返回True和转换后的a
    except ValueError:   #数据类型错误
        return False     #返回False

while True:     #使用循环开始转换
    Fahrenheit = input("请输入您要转换的华氏温度值(输入为整数):") # 使用input进行获取用户输入的华氏温度值
    Fahrenheit = Fahrenheit.strip()   #使用str.strip()将输入的字符串两边的空格去掉
    if Fahrenheit is "q":    # 如果用户输入的是字符'q'
        break                # 退出循环,程序结束
    if IsInt(Fahrenheit):    # 判断输入的华氏温度值是否是int类型
        Celsius = (IsInt(Fahrenheit)[1]-32)*5/9  #带入公式求出摄氏温度值
        Celsius = int(Celsius)  #将得出的摄氏温度值转换成int类型
        print("转换成的摄氏温度为{}°".format(Celsius))  # 将结果进行输出
    else :    
        print("您的输入有误,请重新输入")     
        continue    #结束本次循环,进行下一次循环

-------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------

难点分析:

在这个代码中,其实难度比较大的就是如何判断字符串是否是正整数和负整数,大家可能说,使用str.isdight()可以判断字符串是否都是由数字组成,但是isdight()不能判断负号,它把负号看成特殊符号,可能大家还会说,直接用int(str)进行数据转换不就行了吗,但是呢int(str),的要求是str只能由数字和正负号组成,如果由小数,则代码运行时报错,综上,我写了一个这样的函数,使用try except,try except 有一个什么好书,它就相当于java中的try catch,当代码实行错误时,会执行except中的内容,所以,我在try中首先将Fahrenheit字符串进行int转化,如果出现错误,直接运行except,返回False,如果没有出现错误,继续使用isinstance()进行判断数据类型是否是int,这里大家要注意isinstance()和type()的区别,我在上一篇博客中已总结额,这里不再多说,如果满足是int类型,则返回True。

©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页