Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python对象创建和变量使用_Python_Python 2.7 - Fatal编程技术网

Python对象创建和变量使用

Python对象创建和变量使用,python,python-2.7,Python,Python 2.7,我正在尝试制作一个python脚本,它将提示用户输入两个浮点值,并使用输入执行计算。在我进入这一部分之前,我很难理解如何创建一个对象并访问它 我从一个叫做FightingForce的简单物体开始学习这个概念,我只是为创建一个这样的物体并尝试打印它而接受输入 我的问题是如何获取用户输入并将其存储为FightingForce对象,以便在方程式中使用 # Create a fighting force object class FightingForce(object): size = 0

我正在尝试制作一个python脚本,它将提示用户输入两个浮点值,并使用输入执行计算。在我进入这一部分之前,我很难理解如何创建一个对象并访问它

我从一个叫做FightingForce的简单物体开始学习这个概念,我只是为创建一个这样的物体并尝试打印它而接受输入

我的问题是如何获取用户输入并将其存储为FightingForce对象,以便在方程式中使用

# Create a fighting force object
class FightingForce(object):
    size = 0
    lethalityCoefficient = 0

    # Class constructor/initilizer
    def __init__(self, size, lethalityCoefficient):
        self.size = size
        self.lethalityCoefficient = lethalityCoefficient

def make_fightingForce(size, lethalityCoefficient):
    fightingForce = FightingForce(size, lethalityCoefficient)
    return fightingForce

# Prevent user from inputting anything other than a float
while True:

    try:
        # Promt user for input and set variables
        size = float(raw_input('Enter the amount of troops: '))
        lethalityCoefficient = float(raw_input('Enter the lethality coefficient: '))

    except ValueError:
        print("Please input a floating point integer greater than zero")
        continue

    else:
        break

# Display results to user
print(fightingForce.size)
raw_input('Press <ENTER> to exit')
#创建战斗部队对象
类战斗力(对象):
大小=0
致死率=0
#类构造函数/初始化器
定义初始(自身、大小、杀伤力系数):
self.size=大小
self.lethalitycieffect=致死效率
def制造战斗力(大小、杀伤力系数):
战斗力=战斗力(大小、杀伤力系数)
还击部队
#禁止用户输入除浮动以外的任何内容
尽管如此:
尝试:
#提示用户输入和设置变量
大小=浮动(原始输入('输入兵力:'))
致死率系数=浮动(原始输入('输入致死率系数:'))
除值错误外:
打印(“请输入一个大于零的浮点整数”)
持续
其他:
打破
#向用户显示结果
打印(战斗力大小)
原始输入(“按下退出”)

目前,我的代码将请求两个输入,并在输入后立即关闭。我曾尝试将“原始输入('Press to exit')”放在不同的位置,试图看看它在哪里失败,但我没有得到任何好的结果。

您正在function
make_fightingForce中创建一个类的对象,并从那里返回它。只需调用此函数并获取其返回值即可使用它

将最后几行更改为:

print(make_fightingForce(size, lethalityCoefficient).size)

您正在函数
make_fightingForce
中创建该类的对象,并从中返回该对象。只需调用此函数并获取其返回值即可使用它

将最后几行更改为:

print(make_fightingForce(size, lethalityCoefficient).size)

只需在循环中实例化FightingForce对象的一个实例

while True:
    try:
        size = float(raw_input('Enter the amount of troops: '))
        lethalityCoefficient = float(raw_input('Enter the lethality coefficient: '))
        fightingForce = make_fightingForce(size, lethalityCoefficient)
        break
    except ValueError:
        print("Please input a floating point integer greater than zero")
print(fightingForce.size)

只需在循环中实例化FightingForce对象的一个实例

while True:
    try:
        size = float(raw_input('Enter the amount of troops: '))
        lethalityCoefficient = float(raw_input('Enter the lethality coefficient: '))
        fightingForce = make_fightingForce(size, lethalityCoefficient)
        break
    except ValueError:
        print("Please input a floating point integer greater than zero")
print(fightingForce.size)

这适用于创建单个对象,我对您的帮助投了赞成票(谢谢!),但我希望能够基于循环计数器的值创建多个对象。这在您最初的问题中并不明显。“循环计数器”是什么意思?@alan,如果最初的问题没有提到我要带它去哪里,那我很抱歉。我想基本上创建fightingForce+str(x),其中x随着循环迭代次数的增加而增加。然后,我希望能够进行fightingForce1.size、fightingForce2.size等操作。这对创建单个对象有效,我对您的帮助投了赞成票(谢谢!),但我希望能够基于循环计数器的值创建多个对象。这在您最初的问题中并不明显。“循环计数器”是什么意思?@alan,如果最初的问题没有提到我要带它去哪里,那我很抱歉。我想基本上创建fightingForce+str(x),其中x随着循环迭代次数的增加而增加。然后我想做战斗力1.size,战斗力2.size,等等。这回答了我原来的问题,非常感谢。我正在尝试通过循环创建多个fightingForce对象。如果循环执行了2次,我将尝试创建fightingForce1和fightingForce2。。。再次感谢。如果您试图创建多个FightingForce对象,则应首先提示用户要创建多少。然后,此循环的每次迭代都应创建一个新的FightingForce对象,并将其添加到包含所有FightingForce对象的列表中。当列表中包含用户想要的尽可能多的FightingForce对象时,打破循环。好主意,我正在试图找出如何在此时制作其中两个对象,然后我将继续努力。我已经成功了,我欠你和yeniv多谢!直到下次。这回答了我原来的问题,非常感谢。我正在尝试通过循环创建多个fightingForce对象。如果循环执行了2次,我将尝试创建fightingForce1和fightingForce2。。。再次感谢。如果您试图创建多个FightingForce对象,则应首先提示用户要创建多少。然后,此循环的每次迭代都应创建一个新的FightingForce对象,并将其添加到包含所有FightingForce对象的列表中。当列表中包含用户想要的尽可能多的FightingForce对象时,打破循环。好主意,我正在试图找出如何在此时制作其中两个对象,然后我将继续努力。我已经成功了,我欠你和yeniv多谢!直到下次。