Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python字符串和整数比较_Python_Python 2.7 - Fatal编程技术网

python字符串和整数比较

python字符串和整数比较,python,python-2.7,Python,Python 2.7,我想使用while循环打印所有数字,直到给定的用户输入为止。示例:输入:5==>1 2 3 4 5,但下面的程序将永远循环 user = str(input("Enter : ")) i = 1 while i < user: print(i) i = i + 1 user=str(输入(“输入:”) i=1 而我认为用户: 印刷品(一) i=i+1 ummm而我

我想使用while循环打印所有数字,直到给定的用户输入为止。示例:输入:5==>1 2 3 4 5,但下面的程序将永远循环

user = str(input("Enter : "))
i = 1
while i < user:
    print(i)
    i = i + 1
user=str(输入(“输入:”)
i=1
而我认为用户:
印刷品(一)
i=i+1
ummm
而我

试试这个:

try:
    user = int(raw_input('Enter: '))  # Cannot compare a string with an integer.
except ValueError:
    print('Input should be an integer!')

i = 1
while True:
    i += 1
    if i > user:
        break
    print(i)
注意:在您的代码中,即使我们将
输入显式声明为整数,它仍然不会按照您希望的方式工作。这是因为在代码中,
while
循环停止一次
i
等于
user
(由于条件为while小于…,因此不会打印出最终值,
user
。因此,我对其进行了修改,使其在
I
大于
user
时中断,这意味着最后打印的值将等于
user

上一个输出示例,其中
user=5

1
2
3
4
使用新代码:

1
2
3
4
5
但是,如果未设置在使用
while
循环时,最好在此处使用
for
循环:

for i in range(1, user+1):
    print(i)
user = int(raw_input("Enter : "))

for i in range(user):

    print(i)
在Python2.x中,将尝试评估用户输入的内容,这相当于

user = eval(raw_input(...))
在本例中,您将显式地将提供的任何内容转换为字符串(使用
str()
)。在Python2.x中,字符串的比较总是大于数字,因此
i
总是
True

更明智的做法是使用并转换为
int
。您还可以使用
for
循环简化代码:

for i in range(1, user+1):
    print(i)
user = int(raw_input("Enter : "))

for i in range(user):

    print(i)

您正在比较int和str,这就是为什么会得到一个无限循环。您应该比较相同类型的变量

user=int(输入(“回车”)


应该可以工作

最好执行
user=int(输入(“回车”)
instead@lejlot:在Python 2中,使用
int(原始输入(“回车”)
input()
已经调用了
eval()
在输入上,因此在任何情况下,对于只包含数字的输入,它都将返回一个整数。我只是指这样一个事实,即最好将用户转换为int一次,而不是在循环中。只是为了确保,应该有一个try-except-ValueError,以便正确检查输入。meh这一切都超出了OP的范围stion imho…(尽管有很好的建议)…关于这一点有几点值得怀疑(例如,如果他想要一个字符串,为什么他要使用
input
而不是
raw_input
,如果他想要
int
为什么他要显式地强制转换到
str
,etcin python2.7 input会返回字符串的计算版本(在本例中是int…),我猜OP有理由将其转换为字符串。。。(尽管不知道那可能是什么)