Issue
In this exercise i was supposed to capitalise everything that needs to be capitalised like the "I"s or the first letter of a new sentence etc..
In my attempt i tried to use "=", but python doesn't allow that. So i just looked at the solutions. In the following solution the author uses " + \ " (with comment), can someone tell me what that is what that does? I tried to put them in one line but then the IDE would give me an error message.
def capitalize(s):
result = s.replace(" i ", " I ")
if len(s) > 0:
result = result[0].upper() + \ # this part, what is this + \? if i put them in one line,
# the IDE would give me an error message
result[1 : len(result)]
pos = 0
while pos < len(s):
if result[pos] == "." or result[pos] == "I" or result[pos] == "?":
pos = pos + 1
while pos < len(s) and result[pos] == " ":
pos = pos + 1
if pos < len(s):
result = result[0 : pos] + \
result[pos].upper() + \
result[pos + 1 : len(result)]
pos = pos + 1
return result
def main():
s = input("Enter some text: ")
capitalized = capitalize(s)
print("It is capitalized as:", capitalized)
main()
Solution
New lines often signal the end of a statement to the python interpreter.
There are however a few exceptions to this rule:
Semicolon
x=5; y=6; z=x+y; print(z);
In the code above, the semicolon (;
) is used to signal the end of a statement, and thus allows multiple statements to be written on a single line.
New line
# This is a comment before a statement
x=5
y=6
z=x+y
print(z) # This is a comment after a statement
The code above makes use of the new line to separate statements from each other, and is legitimate python code. Also note that you can place a comment before a statement, however, a new line separates the comment from the statement. Note: A semicolon cannot be used at the end of a comment to separate the comment from a statement. eg. # This is a comment ; x=5; y=6;
However, a comment can be placed on the same line as a statement provided it is placed at the end of the statement. eg. print(z) # This is a comment after a statement
.
Backslash
x = 5
y = 6
z = x + \
y # comment after statement is ok
print(z)
A backslash \
can be used to carry a statement over to another line(s) provided:
- There are no other characters (including spaces) on the same line, after the backslash.
- The subsequent lines are indented appropriately
- Comments occur at the end of the statement, not in between.
Brackets
x = 5
y = 6
z = (x + # comments can happen in the middle of a statement
y) # comment after statement is ok
print(z)
a = [5, # comments can happen here too
6,
7,
8]
This is an example of how brackets () + []
tend to break the rules a bit. Whereby you can place comments at the end of a line, but within a statement.
There are probably some other rules that I have not thought of, but the reason you are getting an error in your example above is because you are trying to place a comment in the middle of a statement. I hope this clarifies the issue somewhat.
Answered By - ScottC Answer Checked By - Marilyn (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.