In language, math, AND coding, an open parenthesis almost always needs a closed parenthesis to match. The parentheses together serve to make sure everything inside them is interpreted together, as a unit, before relating that unit to anything outside.
For example, in language, I might use an open parenthesis (which, take note, is spelled with an “I” because it’s singular to signify the start of a “parenthetical phrase”.
Notice how I didn’t include a closing parenthesis in the previous sentence? In this case, it just means it probably took you a bit longer to read (the close paren belongs after the word “singular”).
In coding, if you skip one, it will cause a similar error, but the “reader” is a computer that won’t realize you made a mistake. Most likely, the computer will just fail to compile the code, which basically means the computer will just tell the coder “didn’t work, try again” and the coder gets to go through the whole code to figure out what went wrong, where, and how to fix it.
Oh trust me - if we miss a parenthesis our code packing tools will let us know that we've missed that parenthesis. It will also tell us where we missed it. What you see here is within a string, which i'm sure you know and because that character could literally have been anything, it's not going to shout at us for missing it.