Python如何输入多个整数

在编写Python程序时,我们经常需要用户从键盘输入多个整数。本文将介绍几种常见的方法来实现这一功能,并附带代码示例。

方法一:使用split和map函数

我们可以使用split函数将一行输入的多个整数分隔开,并使用map函数将这些分隔开的字符串转换为整数。

# 输入多个整数
numbers = input("请输入多个整数,用空格分隔:")

# 分隔字符串并转换为整数
numbers = list(map(int, numbers.split()))

# 打印输入的整数列表
print(numbers)

上述代码首先使用input函数接收用户的输入,并将其赋值给变量numbers。然后,我们使用split函数将字符串按照空格进行分隔,并将分隔后的字符串列表传递给map函数。map函数会将列表中的每个字符串转换成整数,并返回一个包含转换后整数的迭代器。最后,我们使用list函数将迭代器转换为列表,并将其赋值给变量numbers。最后一行代码用于打印输入的整数列表。

方法二:使用列表推导式

除了使用split和map函数,我们还可以使用列表推导式来实现输入多个整数的功能。

# 输入多个整数
numbers = input("请输入多个整数,用空格分隔:")

# 使用列表推导式将字符串转换为整数列表
numbers = [int(x) for x in numbers.split()]

# 打印输入的整数列表
print(numbers)

上述代码中,我们首先使用input函数接收用户的输入,并将其赋值给变量numbers。然后,我们使用split函数将字符串按照空格进行分隔,并使用列表推导式将分隔后的字符串列表转换为整数列表。最后一行代码用于打印输入的整数列表。

方法三:使用循环逐个输入

除了一次性输入多个整数,我们还可以使用循环逐个输入多个整数。

# 输入整数个数
count = int(input("请输入整数个数:"))

# 输入多个整数
numbers = []
for i in range(count):
    number = int(input("请输入第{}个整数:".format(i+1)))
    numbers.append(number)

# 打印输入的整数列表
print(numbers)

上述代码首先使用input函数接收用户输入的整数个数,并将其转换为整数,赋值给变量count。然后,我们使用for循环逐个接收用户输入的整数,并将其添加到列表numbers中。最后一行代码用于打印输入的整数列表。

类图

下面是一个简单的类图,展示了上述代码中涉及的三个类及其关系。

classDiagram
    class InputMethod {
        +input(): str
    }
    class SplitMapMethod {
        +split_input(input_str: str) -> List[int]
    }
    class LoopInputMethod {
        +loop_input(count: int) -> List[int]
    }
    InputMethod <|-- SplitMapMethod
    InputMethod <|-- LoopInputMethod

在类图中,我们定义了一个InputMethod类,它作为输入方法的基类,包含一个input方法来接收用户输入。SplitMapMethod和LoopInputMethod类分别继承自InputMethod类,并实现了不同的输入方法。

项目方案

基于上述讨论的输入多个整数的方法,我们可以提出一个项目方案:实现一个简单的整数列表计算器。

该计算器要求用户输入一个整数列表,并提供一些常见的计算功能,如求和、平均值、最大值和最小值等。

以下是一个简化的代码示例,用于实现这个整数列表计算器的核心功能:

class IntegerListCalculator:
    def __init__(self, numbers):
        self.numbers = numbers

    def get_sum(self):
        return sum(self.numbers)

    def get_average(self):
        return sum(self.numbers) / len(self.numbers)

    def get_max(self):
        return max(self.numbers)

    def get_min(self):
        return min(self.numbers)


# 输入多个整数
numbers = input("请输入多个整数,用空格分隔:")
numbers = list(map(int, numbers.split()))

# 创建整数列表