如何使用python中的用户输入来打印水平数字行

时间:2019-03-14 14:15:36

标签: python-3.x

我需要编写一个程序,要求用户输入数字 n,其中-6

输出:输入起始号码:12

12 13 14 15 16 17 18

数字需要使用2的字段宽度打印并右对齐。字段需要用单个空格分隔。最后一个字段之后不能有空格。

到目前为止,这是我的代码:

a = eval(input('Enter the start number : ',end='\n'))

for n in range(a,a+7):
    print("{0:>2}").format(n)
    print()

但是它说:

File "C:/Users/Nathan/Documents/row.py", line 5, in <module>
    a = eval(input('Enter the start number : ',end='\n'))
builtins.TypeError: input() takes no keyword arguments

请帮助

4 个答案:

答案 0 :(得分:1)

您不能通过\ n输入,因为这是一个特殊字符。

如果要用白线在输入之后添加另一个print()。

答案 1 :(得分:1)

首先,input函数返回一个string。您应该将其强制转换为整数。

还有一些语法错误,仅举几例:

1)您在打印后放置了.format,但是它应该在print内和字符串之后。

2)input函数不接受end参数。 python为此提供了此错误:TypeError: input() takes no keyword arguments

3)格式设置不正确。

此代码可以满足您的要求:

a = int(input('Enter the start number : '))
for n in range(a, a+7):
    print("{:02d}".format(n), end=' ')

输出:

Enter the start number : 12
12 13 14 15 16 17 18

答案 2 :(得分:1)

input()不接受end参数,只有print()接受。

答案 3 :(得分:0)

解决方案


# input(): takes the input from the user, that will be in the form of string
# rstrip(): will remove the white spaces present in the input
# split(): will convert the string into a list
# map(function, iterable) : typecast the list

ar = list(map(int, input().rstrip().split()))
print(ar)

输出

1 2 3 4
[1, 2, 3, 4]