如何解决用蟒蛇测量从英尺和英寸到米和厘米
大家好,我想制作一个程序来反转测量首先,用户输入两个或三个数字,反转将是米和厘米,但它没有显示正确的答案,唯一的答案是 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()
解决方法
如果在 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,inch_to_centimeter
def write(foot_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,inch_to_centimeter = calculater(foot,inch)
write(foot_to_meter,inch_to_centimeter)
main()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。