したがって、これが非常に汚いコードであり、おそらく非効率的なコードであることはわかっていますが、それを機能させることができるかどうかを確認しようとしていました. なぜ機能しないのかわかりません...アクセスしているファイルのテキストは、http://www.pythonchallenge.com/pc/def/equality.htmlのソースにあります。何か助けはありますか?
#! /usr/bin/python
# This program searches a string for a lowercase letter that has 3, and only 3,
# uppercase letters to the left of it, and 3, and only 3, uppercase letters to
# the right of it. It then returns that lowercase letter.
from string import lowercase
from string import uppercase
# Open the text file containing the string and set it to variable str
fileHandle = open ( 'bodyguards.txt', 'r' )
str = fileHandle.read()
fileHandle.close()
#str = 'BIGaBIGaBIGaBIG'
# Search for a lowercase letter.
def isitlower(str):
for a in str :
if a in lowercase:
letterposition = str.index(a)
r =threebgright(letterposition)
l =threebgleft(letterposition)
if r !=None and l !=None:
print l,":",a,":", r
def threebgright(letterposition):
if str[letterposition + 1] in uppercase and str[letterposition +2] in uppercase and str[letterposition + 3] in uppercase and str[letterposition + 4] not in uppercase:
return str[letterposition+1], str[letterposition+2], str[letterposition+3]
else:
return None
def threebgleft(letterposition):
if str[letterposition - 1] in uppercase and str[letterposition -2] in uppercase and str[letterposition - 3] in uppercase and str[letterposition - 4] not in uppercase:
return str[letterposition-1], str[letterposition-2], str[letterposition-3]
else:
return None
isitlower(str)