This page shows a few Python example functions to go with the CodingBat Python problems. Examples:
Python boolean operators are spelled out as the words "and" "or" "not", instead of the && syntax in other languages. The following a_bigger() function should return True if the int parameter a is larger than b by 2 or more.
def a_bigger(a, b): if a > b and (a - b) >= 2: return True else: return False ## Can all be written as just ## return (a > b and (a - b) >= 2)
Notice that the if-test does not need to be in parenthesis, unlike many languages. Forgetting the colon ":" that follows the test is a very common mistake when first learning Python.
Another technique is to return True with one more tests in the body of the function, leaving a return False at the bottom. In some ways, this is simpler than an if/else structure.
def a_bigger(a, b): if a > b and a-b >= 2: return True # More cases to return True in here ## Catch-all False at the bottom return False
See the Python If Boolean doc for more information.
Make a string out of text by enclosing it in single or double quotes
"like this", and use + to combine strings to make bigger strings.
The with_no() example function takes in a string and returns a new string with "No:" added at the front.
The function len(str) returns the length of a string, and str[i] returns the char at index i.
This two_e() example method returns True if the string contains exactly two 'e' chars.
The loop See the Python Strings doc for more information.
The list example below shows another way to loop over a string or list using index numbers.
The same as with strings, the len() function returns the length of a list, and [i] accesses the ith element.
The same loop as above, See the Python Lists doc for more information.
If a function does not include a "return", then by default it returns the special value None. So if all of your results are None, you probably just forgot to put in the return. Or perhaps the if/else structure doesn't call return in some cases, so in those cases None is the result.
CodingBat.com code practice. Copyright 2016 Nick Parlante.
Python Strings
def with_no(str):
return "No:" + str;
for ch in str:
is a standard loop which iterates over the chars in a string:
def two_e(str):
count = 0
for ch in str: ## this loops over each char in the string
if ch == 'e':
count = count + 1
if count == 2:
return True
else:
return False
## this last if/else can be written simply as "return (count == 2)"
Python Lists
for num in nums:
, will loop over all the values in a list.
However, here is another way to do it:
The function range(n) returns 0, 1, 2, ... n-1. This can be used to write a loop for i in range(len(list)):
over the index numbers
of a list (or string). This makes it easier to refer to relative (i-1) or (i+1) elements inside the loop.
This pair_13() example function returns True if the list contains a pair of 13's next to each other.
def pair_13(nums) {
for i in range(len(nums) - 1):
if nums[i]==13 and nums[i+1]==13:
return True
return False ## if we get here, there was not a pair of 13's
## Note: the -1 inside the range() stops the loop one short of the full length,
## so the code in the loop can refer to nums[i+1]
None Result