if conditions in the for indentation doesnt work ? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: if conditions in the for indentation doesnt work ? (/thread-26494.html) |
if conditions in the for indentation doesnt work ? - Sutsro - May-03-2020 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") RE: if conditions in the for indentation doesnt work ? - bowlofred - May-03-2020 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. RE: if conditions in the for indentation doesnt work ? - Sutsro - May-04-2020 Thanks for the answer, interestingly this code cant seem to find test, i tried if line.startswith method to no success. RE: if conditions in the for indentation doesnt work ? - perfringo - May-04-2020 Probably I miss something but what these lines are supposed to do: print(isimsatırlistesi[0,"end"]) if len.isimsatırlistesi<0: RE: if conditions in the for indentation doesnt work ? - Sutsro - Jun-27-2020 (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"]) 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. RE: if conditions in the for indentation doesnt work ? - davide73_italy - Jun-15-2021 (May-03-2020, 10:08 PM)Sutsro Wrote: Hello Everyone, 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 { }. RE: if conditions in the for indentation doesnt work ? - bowlofred - Jun-15-2021 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")
|