为什么我的结局不是=""功能在运行时有效吗?

时间:2017-10-02 03:26:24

标签: python

当我在Python中运行此代码时,它表示在等号上发生了语法错误。

x = int(input('Enter a number greater than 0:'))
while x <= 0:
    x = int(input('Enter a number greater than 0:'))
for i in range (x):
    print ("x", end="")

2 个答案:

答案 0 :(得分:2)

它有几个问题

<强> 1。使用Python 2中的print函数

你不能在Python 2中使用语法“print('something',end ='')”。Python 2中的print语句没有属性“end”。它应该是print(x)或print x。

<强> 2。试图在循环中打印变量x

我想在这里你想要打印这样的东西:

x = 3
for i in range(x):
    print(i)

1 2 3

但你改为:

x = 3
for i in range(x):
    print(x)

3 3 3

另外,你把它作为一个字符串而不是变量,所以你甚至不会得到它:

x = 3
for i in range(x):
    print('x')

x x x 

答案 1 :(得分:0)

正如其他人已经正确指出的那样,您使用的是python2,因此打印仍然是statement而不是method,它的写法如下:

print "your text"

因此您无法访问end=方法。

现在为他们做一些工作(python2):

1。最简单的import python3打印方法。

from __future__ import print_function

for i in xrange(x):
    print(x, end="")

2。否则store要在字符串中打印的值,然后最后打印它。

s=''
for i in xrange(x):
    s+=str(i)

print(s)

3。使用list comprehensionjoin

print ''.join(str(i) for i in xrange(x))

两者都是#driver values

In : x = 3
Out : 012

编辑:如果它与您所写的一样,并且您想要打印x x次,则更容易做到这一点:< / p>

print str(x) * x

Out : 333