Function 具有用户输入的函数
我目前正在使用体重指数计算器,我需要能够使用def函数。但是,我不确定如何创建一个包含用户输入(例如身高和体重)的def函数,我知道我的代码完全错误,但无论如何都会发布它。如果有人能给我举个这样的例子,我将不胜感激。我知道我的函数也无法达到使用函数的目的Function 具有用户输入的函数,function,python-3.x,pycharm,Function,Python 3.x,Pycharm,我目前正在使用体重指数计算器,我需要能够使用def函数。但是,我不确定如何创建一个包含用户输入(例如身高和体重)的def函数,我知道我的代码完全错误,但无论如何都会发布它。如果有人能给我举个这样的例子,我将不胜感激。我知道我的函数也无法达到使用函数的目的 print("BMI Calculator") name='' while name != '0': name=input("Enter students name or '0' to quit: ") if name ==
print("BMI Calculator")
name=''
while name != '0':
name=input("Enter students name or '0' to quit: ")
if name == '0':
break
weight=float(input('Enter students weight: '))
height=float(input('Enter Students height in Inches:'))
def bmi ():
bmi = weight*703 / height ^ 2
return bmi
def bmi_profile():
print('BMI Profile!')
print('Students name:', name)
print('Students weight: ', weight)
print('Students height:', height)
print('BMI Index: ', bmi)
bmi_profile()
print("Goodbye")
您可以将用户输入移动到如下函数中:
def user_input():
name=input("Enter students name or '0' to quit: ")
weight=float(input('Enter students weight: '))
height=float(input('Enter Students height in Inches:'))
return (name, weight, height)
name, weight, height = user_input()
但是这样你就不能在用户输入的时候退出(事实上你可以,但是这会让代码变得更复杂)
不过我建议你使用pythons面向对象的方法,因为这个例子要求这样做:我将创建一个包含学生姓名、体重和大小的类。另外:要计算平方,请使用**2
下面是您使用类完全重新编写的代码:
class BMI:
name = None
weight = None
height = None
def fill_from_input(self):
self.name=input("Enter students name: ")
self.weight=float(input('Enter students weight: '))
self.height=float(input('Enter Students height in Inches:'))
@property
def bmi(self):
return self.weight*703 / self.height**2
def __repr__(self):
return """BMI Profile!
Students name: {}
Students weight: {}
Students height: {}
BMI Index: {}""".format(self.name, self.weight, self.height, self.bmi)
while input("Ready to type in student? [Y/n]").lower() in ['y', '']:
bmi = BMI()
bmi.fill_from_input()
print(bmi) # calls __repr__
print("Goodbye")
您缺少两个主要方面,它们可以使代码变得更好 在开始时定义您的功能 当前在循环中有函数定义(以
def
开头的块)。这意味着它们将在每次通过该循环时被定义。相反,它们应该在主循环开始之前定义。考虑这个伪代码。< /P>
def bmi():
# BMI code goes here
def bmi_profile():
# Print functions go here
##### Main program goes below #####
函数需要参数
您引用的“用户输入”称为参数或参数。它们是传递到函数中的信息。函数需要的任何信息都应包含在def行的括号中
,以下是bmi函数的示例
def bmi (weight, height):
bmi = weight * 703 / height ^ 2
return bmi
看到我如何在括号中包含参数“重量”和“高度”了吗
我希望这足以帮助你完成这个项目。如果您需要更多帮助,请向我汇报,但我想您现在就可以开始了。如果您只想了解函数,那就太过分了。为什么不演示如何将参数传递给普通函数?@MartijnPieters:我在顶部添加了一个更简单的解决方案我很确定OP有一个家庭作业,要求他们创建BMI函数……是的,看起来像。但我从未放弃希望,希望你能在路上给人们比他们要求的更多for@hansaplast我总是乐于学习更多的东西,这比我想象的要困难得多,我从来没有想过这对土木工程来说是必要的。谢谢你的帮助,我不确定我能不能使用“class”,但我肯定会使用top函数。非常感谢。