如何使用我在python中创建的简单模块?

时间:2017-10-10 14:29:55

标签: python python-3.x

我已经坚持了两个星期,这可能是一个非常基本而简单的问题。我想创建一个非常简单的程序(例如我正在研究BMI计算器),我想要使用一个模块。我写了它,我仍然不明白为什么它不起作用。我修改了很多次试图找到解决方案,所以我有很多不同的错误消息,但在我的程序的这个版本上,消息是(在它要求输入高度后):

Enter you height (in inches): 70

Traceback (most recent call last):
File "C:/Users/Julien/Desktop/Modules/Module ex2/M02 ex2.py", line 6, in <module>
    from modBmi import *
  File "C:/Users/Julien/Desktop/Modules/Module ex2\modBmi.py", line 11, in <module>
    modBmi()
  File "C:/Users/Julien/Desktop/Modules/Module ex2\modBmi.py", line 5, in modBmi
    heightSq = (height)**2
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'"

这是我的代码(有关信息,我的模块位于单独的文件“modBmi.py”中,但与我的主程序位于同一文件夹中):

#Python 3.4.3
#BMI calculator

def modBmi():
#ask the height
    height = input ("Enter you height (in inches): ")
    #create variable height2
    heightSq = int(height)**2
#ask th weight
    weight = input ("Enter you weight (in pounds): ")
#calculate bmi
    bmi = int(weight) * 703/int(heighSq)

modBmi()

#import all informatio from modBmi 
from modBmi import *

#diplay the result of the calculated BMI 
print("Your BMI is: " +(bmi))

1 个答案:

答案 0 :(得分:2)

在Python 3.x中,height = input("Enter you height (in inches): ") print (type(height)) # <class 'str'> 将返回一个字符串。

height ** 2

因此:

Traceback (most recent call last):
  File "C:/Python34/SO_Testing.py", line 45, in <module>
    height ** 2
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'

将导致:

input

这正是您所看到的错误。要解决此问题,只需使用int()

height = int(input("Enter you height (in inches): ")) print (type(height)) # <class 'int'> 的结果转换为整数
height

现在,您将能够在heightSq = (height)**2 上执行数学运算。

修改

您显示的错误说明问题发生在:

height

但是,您提供的代码 bmi强制转换为int。转换为int将解决您的问题。

编辑2

为了获得函数外return的值,您需要def modBmi(): #ask the height height = input ("Enter you height (in inches): ") #create variable height2 heightSq = int(height)**2 #ask th weight weight = input ("Enter you weight (in pounds): ") #calculate bmi bmi = int(weight) * 703/int(heighSq) return bmi bmi = modBmi() 值:

Student