python学习-摄氏温度转换华氏温度小程序(graphics)

利用 graphics 模块 ,创建窗口,将输入的摄氏温度转换为华氏温度,并根据温度大小改变窗口背景颜色。本程序参考:中国大学MOOC课程--《python语言程序设计》,原参考程序在定义 改变颜色函数 内(def changecolor():),没有将 用于颜色参数 的变量 改为 整数,执行程序有可能引起报错如下:


修改后完整代码如下:

from graphics import *
# 定义温度转换函数
def convert(input):
    celsius = eval(input.getText())
    fahrenheit = 9.0/5.0 * celsius + 32.0
    return fahrenheit

# 根据输入温度,改变窗口背景颜色(温度越高,颜色越红)
def changecolor(input,win):
    num = eval(input.getText())/100
    red_1 = round(255 * num)  # round()函数将浮点数变为整数(四舍五入)
    green_1 = round(66 + 150*(1-num))
    blue_1 = round(255 * (1-num))
    newcolor = color_rgb(red_1,green_1,blue_1)
    win.setBackground(newcolor)

# 程序主体
def main():
    win = GraphWin("Celsius Converter", 400, 300)
    win.setCoords(0, 0, 3, 4)
    # 绘制接口
    Text(Point(1,3), " Celsius Temperature:").draw(win)
    Text(Point(1,1), "Fahrenheit Temperature:").draw(win)
    input = Entry(Point(2,3), 5)
    input.setText("0.0")
    input.draw(win)
    output = Text(Point(2,1),"")
    output.draw(win)
    button = Text(Point(1.5,2.0),"Convert It")
    button.draw(win)
    Rectangle(Point(1,1.5), Point(2,2.5)).draw(win)
    # 等待鼠标点击
    win.getMouse()
    # 调用函数,转换温度,改变背景颜色
    fahrenheit = convert(input)
    changecolor(input,win)
    # 显示输出,改变按钮
    output.setText(fahrenheit)
    button.setText("Quit")
    # 等待响应鼠标点击,退出程序
    win.getMouse()
    win.close()

# 程序执行
if __name__ == '__main__':
    main()
效果如下:



已标记关键词 清除标记
相关推荐
程序允许用户比较摄氏和华氏温度的相等性。具体要求如下: 建立一个Temperature类,它有两个实例变量:一个是温度值(float);另一个是温度的计量单位(char),即取值 ’C’ 或 ’F’,C表示Celsius(摄氏温度)、F表示Fahrenheit(华氏温度)。这个类还应有2 个构造方法: 给每一个实例变量设置缺省值,即温度值为0、计量单位为C(摄氏); 通过两个参数分别给两个实例变量赋初值。 这个类应包括: 两个存取方法:一个返回用摄氏计量的温度、另一个返回华氏温度。摄氏和华氏温度转换公式如下: degreesC = 5 * (degreesF - 32)/9 degreesF = (9* (degreesC)/5) + 32 三个改变对象属性的方法:一个设置温度值、一个设置计量单位(’F’或’C’)、另一个同时设置温度值和计量单位。 三个比较方法:一个用来是否两个温度相等;一个方法用来测试比较一个温度大于另一个温度;一个方法用来测试比较一个温度小于另一个温度。 最后写一个测试程序(main方法),测试Temperature类中的所有方法。要确保使用到所用的构造方法;要测试每一个比较方法,并确保至少有一个真(true)一个假(false)的结果。例如测试:0.0 degrees C = 32.0 degrees F -40.0 degrees C = - 40.0 degrees F -100.0 degrees C = 212.0 degrees F 请注意:必须保证输入的数据是有效的。所有非法的输入字符都应产生相应的错误信息并提示用户重新输入正确的数据。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页