虽然在条件之后循环运行是假的

时间:2015-10-04 01:58:03

标签: python while-loop

我希望用户输入1,2或3.但是当我测试并输入1,2或3时,即使条件为False,它仍会运行。我一直在改变条件,但是我似乎无法解决它。任何帮助将不胜感激。

def get_input():
    user_input = input("Enter a number 1,2 or 3:  ")

    while  (user_input != 1) and (user_input != 2) and (user_input != 3) :
        print('Invaild input!')
        user_input = input("Enter a number 1,2 or 3 : ")

3 个答案:

答案 0 :(得分:1)

您正在阅读字符串,您应该转换它,或使用字符串。所以条件应该是

output file: test.knit.md

! Undefined control sequence.
l.114 \begin{center}\includegraphics

pandoc: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43
Execution halted

答案 1 :(得分:1)

因为write.table(colnames(mtcars), "file_cols.csv", row.names = F,col.names = F) write.table(rownames(mtcars), "file_rows.csv", row.names = F,col.names = F) 返回的值是一个字符串(用引号括起来),而不是整数。

即。

write.table(c(colnames(mtcars),rownames(mtcars)), "file.csv", row.names = F, col.names = F) input()

不同

要修复它,请更改此行。

"1"

答案 2 :(得分:0)

您可以尝试将输入数据类型从字符串更改为整数,或者在代码中使用“2”而不是 2

在不改变数据类型的情况下使用它:

def get_input():
user_input = input("Enter a number 1,2 or 3:  ")

while  (user_input != "1") and (user_input != "2") and (user_input != "3") :
    print('Invaild input!')
    user_input = input("Enter a number 1,2 or 3 : ")

用于将数据类型更改为 int:

def get_input():
user_input = int(input("Enter a number 1,2 or 3:  "))

while  (user_input != 1) and (user_input != 2) and (user_input != 3) :
    print('Invaild input!')
    user_input = int(input("Enter a number 1,2 or 3 : "))