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

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

python学习-摄氏温度转换华氏温度小程序(graphics)_第1张图片

修改后完整代码如下:

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()
效果如下:

python学习-摄氏温度转换华氏温度小程序(graphics)_第2张图片

你可能感兴趣的:(python)