Hello Everyone,
I am trying to get the lines that contain test string or if its not found i want to print not found message. However this doesnt seem to work i dont get any messages at all.
I can read text file, i can even make it count with "for line in input:" however none of the if conditions work inside for indentation. Am i missing something ?
def verial():
isimsatırlistesi=list()
satırsayısı=0
input = text1.get("1.0",'end-1c')
for line in input:
satırsayısı=satırsayısı+1
if "test" in line:
isimsatırlistesi.append(int(satırsayısı))
print(isimsatırlistesi[0,"end"])
if len.isimsatırlistesi<0:
print("test not found")
Because everything after line 6 is indented, they are all checked for every element in "input". Did you mean to run them every time, or perhaps some of them are only to be run after the input in exhausted?
Because everything after line 8 is indented further, lines 9-12 are only executed when
"test"
is found in
line
. If that test fails, nothing else will be executed. If you want something to happen when the test fails, you'd need an
else
condition, or just do it after the conditional is done (would happen regardless of the if statement).
if "test" in line:
# this is only run when the if expression is true
isimsatırlistesi.append(int(satırsayısı))
print(isimsatırlistesi[0,"end"])
else:
# this section is only run when the if expression is false
print("Condition failed.")
# This section is run after, regardless of the if expression.
Thanks for the answer, interestingly this code cant seem to find test, i tried if line.startswith method to no success.
Probably I miss something but what these lines are supposed to do:
print(isimsatırlistesi[0,"end"])
if len.isimsatırlistesi<0:
(May-04-2020, 10:11 AM)perfringo Wrote: [ -> ]Probably I miss something but what these lines are supposed to do:
print(isimsatırlistesi[0,"end"])
if len.isimsatırlistesi<0:
print(isimsatırlistesi[0,"end"]) this prints the list of isism satır listesi
if len.isimsatırlistesi<0: and this checks if number of elements in isim satır listesi is less than 0 it returns no string found message.
(May-03-2020, 10:08 PM)Sutsro Wrote: [ -> ]Hello Everyone,
I am trying to get the lines that contain test string or if its not found i want to print not found message. However this doesnt seem to work i dont get any messages at all.
I can read text file, i can even make it count with "for line in input:" however none of the if conditions work inside for indentation. Am i missing something ?
def verial():
isimsatırlistesi=list()
satırsayısı=0
input = text1.get("1.0",'end-1c')
for line in input:
satırsayısı=satırsayısı+1
if "test" in line:
isimsatırlistesi.append(int(satırsayısı))
print(isimsatırlistesi[0,"end"])
if len.isimsatırlistesi<0:
print("test not found")
I have already forked Python to have proper { } blocks and get rid of this fancy indentation rules. If there is anybody interested I can make my git become public or share the diff file. To be clear, the forked version can still continue to work on indented-style files, you can just decide every time you open a statement if you want to use the indent-style or { }.
block1 = """This is a bit
of text but
should pass completely
"""
block2 = """This bit of
text will be found
to be a real test of your patience
"""
for text_input in (block1, block2):
line_count = 0
for line_count, line in enumerate(text_input.splitlines(), start=1):
if "test" in line:
print(f"There were {line_count-1} lines before finding 'test'")
break
else:
print(f"test not found")
Output:
test not found
There were 2 lines before finding 'test'