【问题标题】:measurement with python from foot and inch to meter and centimeter用 python 测量从英尺和英寸到米和厘米
【发布时间】:2021-06-01 11:18:43
【问题描述】:

大家好,我想制作一个反转测量的程序首先,用户输入两个或三个数字,反转将是米和厘米,但它没有显示正确的答案,唯一的答案是 0 我会如果你能帮助我,非常感谢

foot = inch = 0


foot_to_meter = foot_to_centimeter = inch_to_meter = inch_to_centimeter =0
def read():
    foot = int(input('foot?'))
    inch = int(input('inch?'))
def calculater():
    foot_to_meter = 0.3048 * foot
    foot_to_centimeter = 100 * foot_to_meter
    # inch_to_meter = 12  * foot
    inch_to_meter = (1.0/12) * 0.3048* inch
    inch_to_centimeter = 100 * inch_to_meter
def write():
    print(f'foot is  {foot_to_centimeter} centimeter and {foot_to_meter} meter')
    print(f'inch is  {inch_to_centimeter} centimeter and {inch_to_centimeter} meter')
    # print('the' foot 'is' meter 'meter' 'and' 'foot is' foot_to_centimeter)
    # print('the' inch 'is' meter 'meter' "and" 'icnh is' inch_to_centimeter )

def main():
    read()
    calculater()
    write()

main()

【问题讨论】:

    标签: measure measurement


    【解决方案1】:

    如果您在 python 中为变量赋值,它不会自动使用global 作用域变量,而是将它们分配给局部作用域变量。请注意,对于只读函数,global 会自动使用变量。

    要解决您的问题,您可以在分配给全局变量之前使用 global 关键字。

    foot = inch = 0
    foot_to_meter = foot_to_centimeter = inch_to_meter = inch_to_centimeter =0
    def read():
        global foot, inch
        foot = int(input('foot?'))
        inch = int(input('inch?'))
    def calculater():
        global foot_to_meter, foot_to_centimeter, inch_to_meter, inch_to_centimeter
        foot_to_meter = 0.3048 * foot
        foot_to_centimeter = 100 * foot_to_meter
        # inch_to_meter = 12  * foot
        inch_to_meter = (1.0/12) * 0.3048* inch
        inch_to_centimeter = 100 * inch_to_meter
    def write():
        print(f'foot is  {foot_to_centimeter} centimeter and {foot_to_meter} meter')
        print(f'inch is  {inch_to_centimeter} centimeter and {inch_to_centimeter} meter')
        # print('the' foot 'is' meter 'meter' 'and' 'foot is' foot_to_centimeter)
        # print('the' inch 'is' meter 'meter' "and" 'icnh is' inch_to_centimeter )
    
    def main():
        read()
        calculater()
        write()
    
    main()
    

    我想指出,在处理更大的代码库和导入模块时,全局变量通常会导致麻烦,这就是为什么我建议在非绝对必要时不要使用它们的原因。 你可以像这样重写你的程序:

    def read():
        foot = int(input('foot?'))
        inch = int(input('inch?'))
        return foot, inch
    def calculater(foot, inch):
        foot_to_meter = 0.3048 * foot
        foot_to_centimeter = 100 * foot_to_meter
        # inch_to_meter = 12  * foot
        inch_to_meter = (1.0/12) * 0.3048* inch
        inch_to_centimeter = 100 * inch_to_meter
        return foot_to_meter, foot_to_centimeter, inch_to_meter, inch_to_centimeter
    def write(foot_to_meter, foot_to_centimeter, inch_to_meter, inch_to_centimeter):
        print(f'foot is  {foot_to_centimeter} centimeter and {foot_to_meter} meter')
        print(f'inch is  {inch_to_centimeter} centimeter and {inch_to_centimeter} meter')
        # print('the' foot 'is' meter 'meter' 'and' 'foot is' foot_to_centimeter)
        # print('the' inch 'is' meter 'meter' "and" 'icnh is' inch_to_centimeter )
    
    def main():
        foot, inch = read()
        foot_to_meter, foot_to_centimeter, inch_to_meter, inch_to_centimeter = calculater(foot, inch)
        write(foot_to_meter, foot_to_centimeter, inch_to_meter, inch_to_centimeter)
    
    main()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2023-01-18
      • 2016-02-02
      • 1970-01-01
      相关资源
      最近更新 更多