Score of 14.00 out of 14.00.
Trace the code by hand (on paper) and then use the
visualizer or debugger to verify your trace. Tracing by hand is an
important skill in programming, as painful as it can be.
Question 1
Select the expression(s) that produce
True
.Your Answer | Score | Explanation | |
---|---|---|---|
len('aabbcc') == 6
|
Correct | 0.25 | |
len('aabbcc') == 3
|
Correct | 0.25 | |
'do' in "don't"
|
Correct | 0.25 | |
'as' in 'it happens'
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationRun this code in the IDLE Python shell.
Question 2
What value does the expression
Note: there are no spaces between the quotes.
len('')
produce?
Note: there are no spaces between the quotes.
You entered:
Your Answer | Score | Explanation | |
---|---|---|---|
0 | Correct | 1.00 | |
Total | 1.00 / 1.00 |
Question ExplanationRun this code.
Question 3
After the following assignment statement has been executed, which expression(s) produce the letter
'g'
?
dance_style = 'Vogue'
Your Answer | Score | Explanation | |
---|---|---|---|
dance_style[1]
|
Correct | 0.25 | |
dance_style[-3]
|
Correct | 0.25 | |
dance_style[3]
|
Correct | 0.25 | |
dance_style[2]
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationPositive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
You can, of course, try running these.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
You can, of course, try running these.
Question 4
Consider this code:
title = 'King'Using
title
and indexing (not slicing), write an expression that produces 'n'
.
You entered:
Your Answer | Score | Explanation | |
---|---|---|---|
title[2] | Correct | 1.00 | |
Total | 1.00 / 1.00 |
Question ExplanationRun the code.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
Make sure you are using string indexing, not string slicing, and you know the difference. Rewatch the relevant videos if you need to.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
Make sure you are using string indexing, not string slicing, and you know the difference. Rewatch the relevant videos if you need to.
Question 5
Consider this code:
s = 'pineapple'Select the expression(s) that produce
'apple'
.Your Answer | Score | Explanation | |
---|---|---|---|
s[5:]
|
Correct | 0.25 | |
s[-5:]
|
Correct | 0.25 | |
s[5:9]
|
Correct | 0.25 | |
s[4:9]
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationRun the code in the Python shell.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
A slice goes from the start index up to but not including the end index.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
A slice goes from the start index up to but not including the end index.
Question 6
Consider this code:
prefix = 'mad'What string does the expression
prefix[:1] + prefix[1:3] + prefix[-2] + prefix[0]
produce?
You entered:
Your Answer | Score | Explanation | |
---|---|---|---|
'madam' | Correct | 1.00 | |
Total | 1.00 / 1.00 |
Question ExplanationRun the code.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
A slice goes from the start index up to but not including the end index.
Positive indices count from the left-hand side with the first character at index 0, the second at index 1, and so on.
Negative indices count from the right-hand side with the last character at index -1, the second last at index -2, and so on.
A slice goes from the start index up to but not including the end index.
Question 7
Select the expression(s) that produce
True
.Your Answer | Score | Explanation | |
---|---|---|---|
'12.34'.isalnum()
|
Correct | 0.25 | |
'apple'.upper().isupper()
|
Correct | 0.25 | |
'abc123'.isdigit()
|
Correct | 0.25 | |
'apple'.upper() == 'APPLE'
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationRun the code. Call function
help
to learn more about each str
method. For example, help(str.islower)
.
Question 8
Select the expression(s) that produce
True
when variable s
refers to a str
that is entirely alphabetic or entirely numeric, and that produce False
if the str
is not entirely alphabetic and not entirely numeric.Your Answer | Score | Explanation | |
---|---|---|---|
s.isalpha() and s.isnumeric()
|
Correct | 0.25 | |
s.islower() or s.isupper()
|
Correct | 0.25 | |
s.isalpha() or s.isnumeric()
|
Correct | 0.25 | |
s.lower() or s.upper() or s.isdigit()
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationCall function
help
to learn more about each str
method used in this question. For example, help(str.isdigit)
.
Question 9
Variables
Write an expression that produces the index of the second occurrence of
For example, if
Your answer must be a single expression that does not use square brackets (string indexing and slicing), and you can only call method
Hint: call
s1
and s2
refer to str
s. The expression s1.find(s2)
returns the index of the first occurrence of s2
in s1
. The expression s1.find(s2, 5)
returns the index of the first occurrence of s2
in s1
, starting at index 5 within s1
. (See help(str.find)
for more info)Write an expression that produces the index of the second occurrence of
s2
in s1
. If s2
does not occur twice in s1
, the expression should produce -1
. Unlike str.count
, you should allow overlapping occurrences of s2
.For example, if
s1
is "banana"
and s2
is "ana"
, your expression should return 3. If s1
is "apple"
and s2
is "p"
, your expression should return 2.Your answer must be a single expression that does not use square brackets (string indexing and slicing), and you can only call method
str.find
and use the arithmetic operators (+, -, etc.).Hint: call
str.find
twice in your expression.
You entered:
Your Answer | Score | Explanation | |
---|---|---|---|
s1.find(s2,(s1.find(s2) + 1)) | Correct | 1.00 | |
Total | 1.00 / 1.00 |
Question ExplanationYou will almost certainly need to run your answer to check whether it works.
If you're struggling with where to start, or confused about
If you don't understand why your code was marked incorrect, try testing it on more values of
One of the calls to
The expression
If you're struggling with where to start, or confused about
str.find
and optional arguments, review the str
method video.If you don't understand why your code was marked incorrect, try testing it on more values of
s1
and s2
.
One of the calls to
str.find
should be an argument to the other call.The expression
s1.find(s2, 5)
starts looking for s2
at index 5 within s1
. If you're trying to find the second occurrence of s2
in s1
, at what index should you start looking? What does that depend on?Question 10
Consider this code:
digits = '0123456789' result = 0 for digit in digits: result = result + int(digit) print(result)What is printed by the code above?
Your Answer | Score | Explanation | |
---|---|---|---|
45.0
|
|||
9876543210
|
|||
45
|
Correct | 1.00 | |
0123456789
|
|||
Total | 1.00 / 1.00 |
Question ExplanationRun the code in IDLE or the Python Visualizer (or both).
Question 11
Consider this code:
digits = '0123456789' result = 0 for digit in digits: result = digit print(result)What is printed by the code above?
Your Answer | Score | Explanation | |
---|---|---|---|
45
|
|||
0123456789
|
|||
9
|
Correct | 1.00 | |
0
|
|||
Total | 1.00 / 1.00 |
Question ExplanationRun the code in IDLE or the Python Visualizer (or both).
Question 12
Consider this code:
digits = '0123456789' result = '' for digit in digits: result = result + digit * 2 print(result)What is printed by the code above?
Your Answer | Score | Explanation | |
---|---|---|---|
90
|
|||
0123456789
|
|||
00112233445566778899
|
Correct | 1.00 | |
45
|
|||
Total | 1.00 / 1.00 |
Question ExplanationRun the code in IDLE or the Python Visualizer (or both). Think about the operand types involved in the various operations.
Question 13
Select the code fragment(s) that print
Happy 30th!
.Your Answer | |||
---|---|---|---|
message = 'Happy 29th!'
new_message = ''
for char in message:
if not char.isdigit():
new_message = new_message + char
else:
new_message = new_message + str((int(char) + 1) % 10)
print(new_message)
|
Correct | 0.25 | |
message = 'Happy 29th!'
new_message = ''
for char in message:
new_message = new_message + str((int(char) + 1) % 10)
print(new_message)
|
Correct | 0.25 | |
message = 'Happy 29th!'
new_message = ''
for char in message:
if char.isdigit():
new_message = new_message + str((int(char) + 1) % 10)
else:
new_message = new_message + char
print(new_message)
|
Correct | 0.25 | |
message = 'Happy 29th!'
new_message = ''
for char in message:
if char.isdigit():
new_message = new_message + str((int(char) + 1) % 10)
new_message = new_message + char
print(new_message)
|
Correct | 0.25 | |
Total | 1.00 / 1.00 |
Question ExplanationRun the code in IDLE or the Python Visualizer (or both).
Question 14
Part of the body of the following function is missing. Select the missing code fragment.
def common_chars(s1, s2):
'''(str, str) -> str
Return a new string containing all characters from s1 that appear at least
once in s2. The characters in the result will appear in the same order as
they appear in s1.
>>> common_chars('abc', 'ad')
'a'
>>> common_chars('a', 'a')
'a'
>>> common_chars('abb', 'ab')
'abb'
>>> common_chars('abracadabra', 'ra')
'araaara'
'''
res = ''
# BODY MISSING
return res
Your Answer | Score | Explanation | |
---|---|---|---|
for ch in s1:
for ch in s2:
res = res + ch
|
|||
for ch in s1:
if ch in s2:
res = ch + res
|
|||
for ch in s1:
if ch in s2:
res = res + ch
|
Correct | 1.00 | |
if ch in s2:
for ch in s1:
res = res + ch
|
|||
Total | 1.00 / 1.00 |