为什么这个if语句在这种情况下不起作用?

时间:2014-12-20 16:43:23

标签: python if-statement

在这段代码中,我问用户他们想要哪个方式订购文本文件,但是当运行时,if语句将不起作用,并且在没有if语句的情况下运行它确实有效。为什么它不起作用?

 way = int(input('Which way would you like the data to be sorted, Alphabetical[1], Ascending[2]      Descending[3] or Average[4]'))
classno = str(input('Which class would you like to sort? Please state the entire class name no     spaces please with .txt on the end'))

if way=='1':# WORKS with classno but not with if statement
    f = open(classno, "r")# omit empty lines and lines containing only whitespace
    lines = [line for line in f if line.strip()]
    f.close()
    lines.sort()# now write the output file
    f = open(classno, 'w')
    f.writelines(lines) # Write a sequence of strings to a file
    f.close()

我没有显示的其他代码有相同的问题,所有工作没有if语句他们都使用if语句no elif ect。如果有用的话。

2 个答案:

答案 0 :(得分:2)

way是一个整数,您正在检查字符串,该字符串会导致1 == '1',并且该字符串为假。

你应该做的是写 -

if way == 1:

或移除您在输入中执行的int()演员表,然后您拥有:

way = input("Message...")
if way == '1':

答案 1 :(得分:0)

way == '1'更改为way == 1,这样您就可以针对int检查int。