我是python的初学者,我正在尝试以下代码
input_number = raw_input("Please input the number:")
print type(input_number)
if(input_number.index('0')):
print "Not Accepted"
else:
print "Accepted"
当我给出输入例如'1234506'时,它显示“未接受”,这是有效但当我给'123456'时它的投掷错误“未找到子串”。 那么如何打印else部分呢。
答案 0 :(得分:3)
当您输入123456或1234506时,python将其视为字符串。
现在,当您使用string_object.index(substring)时,它会在string_object中查找substring(在您的情况下,子字符串为'0')的出现。如果存在'0',则该方法返回子串存在的索引,否则抛出错误。
您可以使用以下代码:
if '0' in input_number :
print 'not accepted'
else :
print 'accepted'
答案 1 :(得分:1)
str.index
错误。在这种情况下,您可以选择处理错误,或者使用str.find
代替返回-1和len(input_number)
之间的整数值,或者对原始字符串执行集合成员资格测试。
选项1
转换为set
查询:
if '0' not in set(input_number):
print "Accepted"
else:
print "Not accepted"
选项2
使用try...except
来处理ValueError
。
try:
input_number.index('0')
print "Not accepted"
except ValueError:
print "Accepted"
选项3
使用str.find
:
if input_number.find('0') < 0:
print "Accepted"
else:
print "Not accepted"
答案 2 :(得分:0)
我在x中找到了字符串但没有找到 如果x.index('invoke'):
import os def readAllFile(currentPath, outFile): fileList = os.listdir(currentPath) for name in fileList: fileName = currentPath + "/" + name if (os.path.isfile(fileName)): if ".smali" in fileName: f = open(fileName, "r") fileContent = f.read() for x in fileContent: if x.index('invoke'): outFile.write(x) else: if (os.path.isdir(fileName)): readAllFile(fileName, outFile) pass resultFile = open("smali.txt", "w") readAllFile("/home/dieuthuy/Khoa-luan-tot-nghiep/dich-nguoc/Stick/smali", resultFile) resultFile.close() print('done!')