Python中的Elif条件

Gou*_*uri 1 python

我有一些Python代码需要从一个名为的文本文件中获取字符串输入,varfile.txt并在该数据上应用条件并打印输出.代码如下:

file = open("varfile.txt", "r")
lines = file.readlines()
e= str(lines[1]);
print(e)
if  e == '<0.1%':
        print("1")
elif  e == '(0.1-25)%':
        print("2")
elif  e == '(0.25-0.5)%':
        print("3")
elif  e == '(0.5-1)%':
        print("4")
elif  e == '>1%':
        print("5")
else:
        print("0")
Run Code Online (Sandbox Code Playgroud)

产量如下:

(0.25-0.5)%  
0
Run Code Online (Sandbox Code Playgroud)

即使将e值打印为(0.25-0.5)%,也不会与elif子句中的条件进行比较,并且0尽管输出应该是输出3.你能告诉我哪里出错吗?

Eri*_*ikR 7

根据本教程 files.readlines(),不会从行的末尾删除结束的新行字符.

您可以使用e.strip('\n')返回删除了换行符的字符串,例如:

e = e.strip('\n')
if e == ...:
elif ...
Run Code Online (Sandbox Code Playgroud)

  • 我建议在比较之前剥离所有空白字符而不是仅换行换行符,因为用户可能更改的文件很容易在行尾包含空格,否则会导致难以理解的错误.所以只需使用`e.strip()`. (3认同)