如何在列表中输入整数值(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
我正在尝试将列表用作数组,我想在列表中输入整数值,以便我可以对其执行一些算术运算。
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