如何在列表中输入整数值(python 3.x)?

How to input integer values in a list(python 3.x)?

我正在尝试将列表用作数组,我想在列表中输入整数值,以便我可以对其执行一些算术运算。

m=int(input())

我总是用它来从用户那里获取一些整数输入。

//creating an array

myArray=[]
inp=int(input("Please enter the length of array you wish to create"))
for m in range(inp):
    myArray.append(int(input()))
print(myArray)

但这不起作用。为什么?

Error :invalid literal for int() with base 10

REPL 演示

好吧,因为输入将被解析为字符串,而 int 只能将只是数字的字符串强制转换为整数...如果输入错误,您将遇到大麻烦,因为它会停止您的程序立即。

我建议使用 while 循环和 try-except 异常语句来处理错误。

注意 Python 2.x:使用 raw_input 因为 input 会导致 NameError: name <input_string> is not defined 如果您传递没有字符串引号的字符。

>>> my_array = []  # camelCase is not the convention in Python
>>> 
>>> array_length = None
>>> while array_length is None:
...     try:
...         array_length = int(input("Please enter the length of array you wish to create: "))
...     except ValueError:
...         print("Invalid input - please enter a finite number for the array length.")
... 
Please enter the length of array you wish to create: 4
>>>
>>> print(array_length)
4
>>> while len(my_array) < array_length:
...     try:
...         my_array.append(int(input()))
...     except ValueError:
...         print("Invalid input - please enter a number!")
...
1
abc
Invalid input - please enter a number!
2
3
4
>>>
>>> print(my_array)
[1, 2, 3, 4]

运行 作为脚本

# -*- coding: utf-8 -*-

INVALID_NUMERIC_INPUT_MSG = "Invalid input - please enter a finite number with no spaces!"
KEYBOARD_INTERRUPTION_MSG = "Keyboard interruption: program exited."

def main():
    my_array = []

    print()

    array_length = None  
    while array_length is None:  # accept input until valid
        try:
            array_length = int(input("Please enter the length of array you wish to create: "))
        except ValueError:
            print(INVALID_NUMERIC_INPUT_MSG)
        except KeyboardInterrupt:
            print("\n" + KEYBOARD_INTERRUPTION_MSG)
            quit()

    print("Your array length is {}.".format(array_length))
    print()

    while len(my_array) < array_length:
        try:
            my_array.append(int(input()))
        except ValueError:
            print(INVALID_NUMERIC_INPUT_MSG)
        except KeyboardInterrupt:
            print("\n" + KEYBOARD_INTERRUPTION_MSG)
            quit()

    assert len(my_array) == array_length  # check for program correctness

    print()
    print("Your array is: {}".format(my_array))
    print()

if __name__ == '__main__':
    main()

运行 在我的控制台中:

$ python3 input-program.py

Please enter the length of array you wish to create: 4
Your array length is 4.

1
2
3
4

Your array is [1, 2, 3, 4]

str 到 int 的强制转换只需尝试一下就可以完成,看看它输入的是不是数字。

这里我们制作一个归零数组和一个连续编号的数组(一个范围)

在 python 中,您将数组称为列表

array = [0]
try:
    array = array * int(raw_input('How long? ->'))
    print array
except:
    print "try using a number"

try:
    array = range(int(raw_input('How long? ->')))
    print array
except:
    print "try using a number"

PS 这是 Python v2 代码不是 v3