EntitySet DefinitionQuery InsertFunction issue

July 1, 2012 Leave a comment

I got this error when trying to insert values to DB

Unable to update the EntitySet ” because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

This is because the “Primary Key” was not mentioned is the table and EF is not able to add the modification mapping when the model is built. So Set the primary key and the binding should work for insert / update / delete

Azure – Remote desktop – Not a genuine copy of windows

April 28, 2011 Leave a comment
I have enabled RD option on my Web role instance and logged into the server using Remote Desktop. Was surprised to see the message “this copy of windows is not genuine” Not sure why this message was been displayed on the data center server

Alert dialog

December 27, 2010 Leave a comment

I have been trying to show a alert dialog for one of my projects, so here is how you do it…

package ;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Registration extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.registration);//this is the XML file that you will using for your layout

        Button button = (Button)findViewById(R.id.ok);

        button.setOnClickListener(clicklistener);

       
       
    }
    public OnClickListener clicklistener = new OnClickListener() {
        public void onClick(View v) {
          // do something when the button is clicked
            AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
            builder.setMessage(“Are you sure you want to exit?”)
                   .setCancelable(false)
                   .setPositiveButton(“Yes”, new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                                                   }
                   })
                   .setNegativeButton(“No”, new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                                               }
                   });
            builder.create();
            builder.show();
        }
    };

   
}

Android SDK – Emulator – on MAC

December 9, 2010 Leave a comment

Ok, now that i have my first app built in android, i want to give it to my client for a demo who does not have a android PAD, (or yet to have one)…so they have to use the emulator which comes with android SDK to install the APP and show it running like its an android device….
the steps are pretty much simple
(please note you dont need Eclipse or any plugin to just run a APK (android package), – they are needed only for developers to debug and stuff)…

1) install android SDK(google has enuf details for it)
2) RUN the emulator so taht it starts up and ready to install your app
3) copy the APK file to a particular folder (say Desktop)
4) open up the terminal and navigate to the andoird SDK folder

$ cd ./android
$ cd platform-tools
your current working directory would be the platform-tools which contains a file called ADB.exe which will install the APK to the android emulator device…
execute the command
$ ./adb install “APK file name”

it will show some messages like installing etc., and has to finally say SUCCESS…

go to the emulator and open up the menu by clicking the android menu button (its the little dots stacked at the bottom of the page and not the button labelled “MENU” on the emulator)

you must then see your app being displayed as an icon….

happy androiding…

Install APK file from command Prompt

December 8, 2010 Leave a comment

 I have now finished with my POC and want to install it in my android emulator outside of Eclipse.

Here are the steps

Execute the emulator so that it starts and is ready to install new programs.
(you need to run the emulator.exe under the android SDK\Tools folder)
1) copy the APK file (which will under /bin directory) to “C:\myProject.apk” (this step is really not needed, but its just a failsafe method)

2) open the command prompt (in your PC and not in the emulator) and type

abd install c:\myProject.apx

this will install the APK file in the emulator

3) If you are getting “command not found” – navigate to the Android SDK/Tools folder
cd x:/androidsdkfolder/tools
and run command again…..

happy androiding !!!!

Android Development – with Android SDK and Eclipse

December 7, 2010 Leave a comment

Working with Android SDK with Eclipse.

So now that i started doing my first android PAD project for one of my clients. We need to submit a POC which will showcase a work flow. A login screen, a screen with tab controls, a grid view with menu and a table layout with details.

Before I start the work i need to set my DEV environment. Being a C# developer for most of my life I am taking baby steps towards Java programming and that too with android. Interesting….

What we need ?
1) Android SDK
2) Eclipse
3) ADT Plugin for Java.

There is an excellent tutorial at the android developer community for setting up the environment, but I found my self stuck at a couple of places….so thought i should blog it myself…

1) Download the SDK from the location
http://dl.google.com/android/android-sdk_r08-windows.zip

  • Unzip the contents of the SDK (I choose to unzip the contents inside Program Files\AndroidSDK directory, so that I dont accidentally delete the contents by placing it somewhere else)
  • and execute the SDK Manager.exe, it will start downloading the platform(which takes around 2 hrs with a 150 KBPS actual download speed)
  •  after installation the SDK folder will be populated with the platform details, you can see the various supported platforms inside the PLATFORM folder.

2) Download and Install Eclipse latest release – Eclipse website has detailed information on the installation. http://www.eclipse.org/downloads/ (download the one which says “Eclipse IDE for Java Developers)

After successful installation
Go to  Help –> Software updates –>(or Help Install New Software in Eclipse – Gallileo) add the site “https://dl-ssl.google.com/android/eclipse/&#8221; to the updates directory and click the ADD software button, it will list down the details available to install and click NEXT & finish the installation…it will install the ADT plugin.

3) After installation the menu Android will appear in Window –> Preference menu, Navigate to it and Click the Browse button and set the path of the SDK folder –> click ok and apply –> restart Eclipse.

4) create a new AVD image – This is the Emulator that will open when you execute your android APP
select window –> Android SDK and AVD Manager and create a new device. Make sure that you choose the right version for your project.

Now we are ready to start a project
After create a new android project , set the target of Run configuration (Run–>run configuration –> android –> new configuration) to the AVD you just created.

when you RUN you app, the Emulator will start and you are ready to roll on…

Coding bat – solutions – solution

November 25, 2010 Leave a comment

—————————————————————p100347.html —————————————————————

Given 3 int values, a b c, return their sum. However, if any of the values is a teen — in the range 13..19 inclusive — then that value counts as 0, except 15 and 16 do not count as a teens. Write a separate helper “def fix_teen(n):”that takes in an int value and returns that value fixed for the teen rule. In this way, you avoid repeating the teen code 3 times (i.e. “decomposition”). Define the helper below and at the same indent level as the main no_teen_sum().

no_teen_sum(1, 2, 3) → 6
no_teen_sum(2, 13, 1) → 3
no_teen_sum(2, 1, 14) → 3…Save, Compile, Run

def fix_teen(num):
  if num >12 and num <20 and not num ==15 and not num ==16:
    return 0
  else:
    return num
def no_teen_sum(a, b, c):
  return fix_teen(a) + fix_teen(b)+fix_teen(c)
Given 3 int values, a b c, return their sum. However, if any of the values is a teen — in the range 13..19 inclusive — then that value counts as 0, except 15 and 16 do not count as a teens. Write a separate helper “def fix_teen(n):”that takes in an int value and returns that value fixed for the teen rule. In this way, you avoid repeating the teen code 3 times (i.e. “decomposition”). Define the helper below and at the same indent level as the main no_teen_sum().

no_teen_sum(1, 2, 3) → 6
no_teen_sum(2, 13, 1) → 3
no_teen_sum(2, 1, 14) → 3…Save, Compile, Run

def fix_teen(num):
  if num >12 and num <20 and not num ==15 and not num ==16:
    return 0
  else:
    return num
def no_teen_sum(a, b, c):
  return fix_teen(a) + fix_teen(b)+fix_teen(c)

—————————————————————p100958.html —————————————————————

The number 6 is a truly great number. Given two int values, a and b, return True if either one is 6. Or if their sum or difference is 6. Note: the function abs(num) computes the absolute value of a number.

love6(6, 4) → True
love6(4, 5) → False
love6(1, 5) → True…Save, Compile, Run

def love6(a, b):
  return a ==6 or b == 6 or a+b ==6 or abs(a-b) == 6
 

—————————————————————p107010.html —————————————————————

Given a string of even length, return the first half. So the string “WooHoo” yields “Woo”.

first_half(‘WooHoo’) → ‘Woo’
first_half(‘HelloThere’) → ‘Hello’
first_half(‘abcdef’) → ‘abc’…Save, Compile, Run

def first_half(str):
  return str[0:len(str)/2]

—————————————————————p107863.html —————————————————————

Given 3 int values, a b c, return their sum. However, if one of the values is 13 then it does not count towards the sum and values to its right do not count. So for example, if b is 13, then both b and c do not count.

lucky_sum(1, 2, 3) → 6
lucky_sum(1, 2, 13) → 3
lucky_sum(1, 13, 3) → 1…Save, Compile, Run

def lucky_sum(a, b, c):
  sum = 0
  if a == 13:
    return 0
  elif b == 13:
    return a
  elif c==13:
    return a+b
  else:
    return a+b+c

—————————————————————p108886.html —————————————————————

Return the sum of the numbers in the array, except ignore sections of numbers starting with a 6 and extending to the next 7 (every 6 will be followed by at least one 7). Return 0 for no numbers.

sum67([1, 2, 2]) → 5
sum67([1, 2, 2, 6, 99, 99, 7]) → 5
sum67([1, 1, 6, 7, 2]) → 4…Save, Compile, Run

def sum67(nums):
  if len(nums) == 0:
    return 0
 
  sum = 0
  sum671 = 0
 
  for num in nums:
    if num == 6 or not sum671 == 0:
      sum671 += num
    if num ==7  and not sum671 == 0:
      sum-=sum671
      sum671=0
   
    sum +=num
   
  return sum

—————————————————————p110166.html —————————————————————

Given an array of ints, return True if one of the first 4 elements in the array is a 9. The array length may be less than 4.

array_front9([1, 2, 9, 3, 4]) → True
array_front9([1, 2, 3, 4, 9]) → False
array_front9([1, 2, 3, 4, 5]) → False…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def array_front9(nums):%0a  # First figure the end for the loop%0a  end = len(nums)%0a  if end %26gt; 4:%0a    end = 4%0a  %0a  for i in range(end):  # loop over index [0, 1, 2, 3]%0a    if nums[i] == 9:%0a      return True%0a  return False" + "

“)” style=”visibility: hidden;”>Show Solution

def array_front9(nums):

  loopcount = len(nums)
  if loopcount > 4:
    loopcount = 4
  for i in range(loopcount):
    if nums[i] == 9:
      return True
 
  return False

—————————————————————p113152.html —————————————————————

Given a string, return a new string made of every other char starting with the first, so “Hello” yields “Hlo”.

string_bits(‘Hello’) → ‘Hlo’
string_bits(‘Hi’) → ‘H’
string_bits(‘Heeololeo’) → ‘Hello’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def string_bits(str):%0a  result = %26quot;%26quot;%0a  # Many ways to do this. This uses the standard loop of i on every char,%0a  # and inside the loop skips the odd index values.%0a  for i in range(len(str)):%0a    if i %25 2 == 0:%0a      result = result + str[i]%0a  return result" + "

“)” style=”visibility: hidden;”>Show Solution

def string_bits(str):
  ret = ''
  for i in range(len(str)):
    if (i+1) %2 == 1:
      ret += str[i]

  return ret

—————————————————————p113659.html —————————————————————

Return an int array length 3 containing the first 3 digits of pi, {3, 1, 4}.

make_pi() → [3, 1, 4]…Save, Compile, Run

def make_pi():
   return [3,1,4]

—————————————————————p115413.html —————————————————————

Given a string name, e.g. “Bob”, return a greeting of the form “Hello Bob!”.

hello_name(‘Bob’) → ‘Hello Bob!’
hello_name(‘Alice’) → ‘Hello Alice!’
hello_name(‘X’) → ‘Hello X!’…Save, Compile, Run

def hello_name(name):
  return "Hello " + name + "!"

—————————————————————p116620.html —————————————————————

Given 2 ints, a and b, return their sum. However, sums in the range 10..19 inclusive, are forbidden, so in that case just return 20.

sorta_sum(3, 4) → 7
sorta_sum(9, 4) → 20
sorta_sum(10, 11) → 21…Save, Compile, Run

def sorta_sum(a, b):
  sum = a+b
  if sum >=10 and sum<20:
    return 20
  else:
    return sum

—————————————————————p118366.html —————————————————————

Given a non-empty string like “Code” return a string like “CCoCodCode”.

string_splosion(‘Code’) → ‘CCoCodCode’
string_splosion(‘abc’) → ‘aababc’
string_splosion(‘ab’) → ‘aab’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def string_splosion(str):%0a  result = %26quot;%26quot;%0a  # On each iteration, add the substring of the chars 0..i%0a  for i in range(len(str)):%0a    result = result + str[:i+1]%0a  return result" + "

“)” style=”visibility: hidden;”>Show Solution

def string_splosion(str):
  ret = ''
  for i in range(len(str)+1):
    ret += str[0:i]
   
  return ret

—————————————————————p118406.html —————————————————————

We want to make a row of bricks that is goal inches long. We have a number of small bricks (1 inch each) and big bricks (5 inches each). Return True if it is possible to make the goal by choosing from the given bricks. This is a little harder than it looks and can be done without any loops.

make_bricks(3, 1, 8) → True
make_bricks(3, 1, 9) → False
make_bricks(3, 2, 10) → True…Save, Compile, Run

def make_bricks(small, big, goal):
  if big ==0:
    return small >=goal
  elif big*5 == goal:
    return True
  else:
    rem = 0
    if goal > big*5:
      rem = goal - (big*5)
    else:
      rem = goal % 5
    return small >= rem

—————————————————————p119308.html —————————————————————

Given an array of ints, return True if the array contains a 2 next to a 2 somewhere.

has22([1, 2, 2]) → True
has22([1, 2, 1, 2]) → False
has22([2, 1, 2]) → False…Save, Compile, Run

def has22(nums):
  for num in range(len(nums)-1):
    if nums[num] == 2 and nums[num+1] == 2:
      return True
 
  return False

—————————————————————p119867.html —————————————————————

Given a day of the week encoded as 0=Sun, 1=Mon, 2=Tue, …6=Sat, and a boolean indicating if we are on vacation, return a string of the form “7:00″ indicating when the alarm clock should ring. Weekdays, the alarm should be “7:00″ and on the weekend it should be “10:00″. Unless we are on vacation — then on weekdays it should be “10:00″ and weekends it should be “off”.

alarm_clock(1, False) → ‘7:00′
alarm_clock(5, False) → ‘7:00′
alarm_clock(0, False) → ’10:00’…Save, Compile, Run

def alarm_clock(day, vacation):
  #weekend calculation
  if vacation:
    weekday = "10:00"
    weekend = "off"
  else:
    weekday = "7:00"
    weekend = "10:00"   
   
  if (day == 0 or day ==6):
    return weekend
  else:
    return weekday

—————————————————————p120546.html —————————————————————

We have two monkeys, a and b, and the parameters a_smile and b_smile indicate if each is smiling. We are in trouble if they are both smiling or if neither of them is smiling. Return True if we are in trouble.

monkey_trouble(True, True) → True
monkey_trouble(False, False) → True
monkey_trouble(True, False) → False…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def monkey_trouble(a_smile, b_smile):%0a  if a_smile and b_smile:%0a    return True%0a  if not a_smile and not b_smile:%0a    return True%0a  return False%0a  ## The above can be shortened to:%0a  ##   return ((a_smile and b_smile) or (not a_smile and not b_smile))%0a  ## Or this very short version (think about how this is the same as the above)%0a  ##   return (a_smile == b_smile)" + "

“)” style=”visibility: hidden;”>Show Solution

def monkey_trouble(a_smile, b_smile):
  if a_smile and b_smile:
    return True
  if not a_smile and not b_smile:
    return True
  return False

—————————————————————p124676.html —————————————————————

Given an int n, return True if it is within 10 of 100 or 200. Note: abs(num) computes the absolute value of a number.

near_hundred(93) → True
near_hundred(90) → True
near_hundred(89) → False…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def near_hundred(n):%0a  return ((abs(100 - n) %26lt;= 10) or (abs(200 - n) %26lt;= 10))" + "

“)” style=”visibility: hidden;”>Show Solution

def find(num,n):
  dif = abs(num-n)
  if dif <= 10:
    return True
 
  return False
 
def near_hundred(n):
  ret = find(100,n)
  if not ret: 
    ret = find(200,n)
 
  return ret

—————————————————————p124806.html —————————————————————

Given an array of ints, return a new array length 2 containing the first and last elements from the original array. The original array will be length 1 or more.

make_ends([1, 2, 3]) → [1, 3]
make_ends([1, 2, 3, 4]) → [1, 4]
make_ends([7, 4, 6, 2]) → [7, 2]…Save, Compile, Run

def make_ends(nums):
  return [nums[0],nums[-1]]

—————————————————————p124984.html —————————————————————

Given 2 ints, a and b, return True if one if them is 10 or if their sum is 10.

makes10(9, 10) → True
makes10(9, 9) → False
makes10(1, 9) → True…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def makes10(a, b):%0a  return (a == 10 or b == 10 or a+b == 10)" + "

“)” style=”visibility: hidden;”>Show Solution

def makes10(a, b):
  if a == 10 or b == 10 or a+b ==10:
    return True
  return False

—————————————————————p126968.html —————————————————————

Return the “centered” average of an array of ints, which we’ll say is the mean average of the values, except not counting the largest and smallest values in the array. Use int division to produce the final average. You may assume that the array is length 3 or more.

centered_average([1, 2, 3, 4, 100]) → 3
centered_average([1, 1, 5, 5, 10, 8, 7]) → 5
centered_average([-10, -4, -2, -4, -2, 0]) → -3…Save, Compile, Run

def centered_average(nums):
  sortednums = sorted(nums)
  sortednums.remove(sortednums[0])
  sortednums.remove(sortednums[-1])
  sum = 0
  for num in range(len(sortednums)):
    sum+=sortednums[num]
  return sum/len(sortednums)

—————————————————————p127703.html —————————————————————

Given 2 strings, return their concatenation, except omit the first char of each. The strings will be at least length 1.

non_start(‘Hello’, ‘There’) → ‘ellohere’
non_start(‘java’, ‘code’) → ‘avaode’
non_start(‘shotl’, ‘java’) → ‘hotlava’…Save, Compile, Run

def non_start(a, b):
  return a[1:]+b[1:]

—————————————————————p129125.html —————————————————————

You and your date are trying to get a table at a restaurant. The parameter “you” is the stylishness of your clothes, in the range 0..10, and “date” is the stylishness of your date’s clothes. The result getting the table is encoded as an int value with 0=no, 1=maybe, 2=yes. If either of you is very stylish, 8 or more, then the result is 2 (yes). With the exception that if either of you has style of 2 or less, then the result is 0 (no). Otherwise the result is 1 (maybe).

date_fashion(5, 10) → 2
date_fashion(5, 2) → 0
date_fashion(5, 5) → 1…Save, Compile, Run          <button onclick="document.getElementById("hint").innerHTML=unescape("Hint: One solution uses the pattern

if xxx:%0a  return 0%0aelif yyy:%0a  return 2%0aelse:%0a  return 1%0a

  where xxx and yyy compute with %26lt;=, %26gt;= if the you/date numbers get that result. The order of the if statements is significant — the 0 result case takes precedence over the other cases, so that if statement comes first.”)” style=”visibility: hidden;”>Show Hint

def date_fashion(you, date):
  if you <=2 or date <=2:
    return 0
  if you >=8 or date >=8:
    return 2
 
  return 1

—————————————————————p129981.html —————————————————————

Given an “out” string length 4, such as “<>”, and a word, return a new string where the word is in the middle of the out string, e.g. “<>”.

make_out_word(‘<>’, ‘Yay’) → ‘<>’
make_out_word(‘<>’, ‘WooHoo’) → ‘<>’
make_out_word(‘[[]]’, ‘word’) → ‘[[word]]‘…Save, Compile, Run

def make_out_word(out, word):
  s = "{0}{1}{2}".format(out[0:2],word,out[2:])
  return s

—————————————————————p132290.html —————————————————————

The web is built with HTML strings like “Yay” which draws Yay as italic text. In this example, the “i” tag makes and which surround the word “Yay”. Given tag and word strings, create the HTML string with tags around the word, e.g. “Yay“.

make_tags(‘i’, ‘Yay’) → ‘Yay
make_tags(‘i’, ‘Hello’) → ‘Hello
make_tags(‘cite’, ‘Yay’) → ‘Yay‘…Save, Compile, Run

def make_tags(tag, word):
  return "{1}".format(tag,word)
 

—————————————————————p135290.html —————————————————————

Given an array of ints length 3, figure out which is larger between the first and last elements in the array, and set all the other elements to be that value. Return the changed array.

max_end3([1, 2, 3]) → [3, 3, 3]
max_end3([11, 5, 9]) → [11, 11, 11]
max_end3([2, 11, 3]) → [3, 3, 3]…Save, Compile, Run

def max_end3(nums):
  max1 = max(nums[0],nums[-1])
  return [max1,max1,max1]

—————————————————————p135815.html —————————————————————

The squirrels in Palo Alto spend most of the day playing. In particular, they play if the temperature is between 60 and 90 (inclusive). Unless it is summer, then the upper limit is 100 instead of 90. Given an int temperature and a boolean is_summer, return True if the squirrels play and False otherwise.

squirrel_play(70, False) → True
squirrel_play(95, False) → False
squirrel_play(95, True) → True…Save, Compile, Run

def squirrel_play(temp, is_summer):
  upper_limit = 90
  if is_summer == True:
    upper_limit = 100
 
  return temp >= 60 and temp <=upper_limit

—————————————————————p137202.html —————————————————————

You are driving a little too fast, and a police officer stops you. Write code to compute the result, encoded as an int value: 0=no ticket, 1=small ticket, 2=big ticket. If speed is 60 or less, the result is 0. If speed is between 61 and 80 inclusive, the result is 1. If speed is 81 or more, the result is 2. Unless it is your birthday — on that day, your speed can be 5 higher in all cases.

caught_speeding(60, False) → 0
caught_speeding(65, False) → 1
caught_speeding(65, True) → 0…Save, Compile, Run

def caught_speeding(speed, is_birthday):
  limit_ext = 0
  if is_birthday:
    limit_ext = 5
 
  if speed <= 60+limit_ext:
    return 0
  elif speed <= 80 +limit_ext:
    return 1
  else:
    return 2

—————————————————————p138533.html —————————————————————

Given a string, return a version without the first and last char, so “Hello” yields “ell”. The string length will be at least 2.

without_end(‘Hello’) → ‘ell’
without_end(‘java’) → ‘av’
without_end(‘coding’) → ‘odin’…Save, Compile, Run

def without_end(str):
  return str[1:-1]

—————————————————————p141905.html —————————————————————

Given two int values, return their sum. Unless the two values are the same, then return double their sum.

sum_double(1, 2) → 3
sum_double(3, 2) → 5
sum_double(2, 2) → 8…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def sum_double(a, b):%0a  # Store the sum in a local variable%0a  sum = a + b%0a  %0a  # Double it if a and b are the same%0a  if a == b:%0a    sum = sum * 2%0a  return sum" + "

“)” style=”visibility: hidden;”>Show Solution

def sum_double(a, b):
  sum = a + b
  if a == b:
    return sum * 2
 
  return sum

—————————————————————p143951.html —————————————————————

Given 3 int values, a b c, return their sum. However, if one of the values is the same as another of the values, it does not count towards the sum.

lone_sum(1, 2, 3) → 6
lone_sum(3, 2, 3) → 2
lone_sum(3, 3, 3) → 0…Save, Compile, Run

def lone_sum(a, b, c):
  list = [a,b,c]
  sorted_list = sorted(list)
  sum = 0
  if not sorted_list[0] == sorted_list[1]:
    sum += sorted_list[0] + sorted_list[1]
 
  if not sorted_list[1] == sorted_list[2]:
    sum += sorted_list[2]
 
  elif not list == sorted_list:
    sum -= sorted_list[2]
 
  return sum

—————————————————————p145834.html —————————————————————

Given a string, return the count of the number of times that a substring length 2 appears in the string and also as the last 2 chars of the string, so “hixxxhi” yields 1 (we won’t count the end substring).

last2(‘hixxhi’) → 1
last2(‘xaxxaxaxx’) → 1
last2(‘axxxaaxx’) → 2…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def last2(str):%0a  # Screen out too-short string case.%0a  if len(str) %26lt; 2:%0a    return 0%0a  %0a  # last 2 chars, can be written as str[-2:]%0a  last2 = str[len(str)-2:]%0a  count = 0%0a  %0a  # Check each substring length 2 starting at i%0a  for i in range(len(str)-2):%0a    sub = str[i:i+2]%0a    if sub == last2:%0a      count = count + 1%0a%0a  return count" + "

“)” style=”visibility: hidden;”>Show Solution

def last2(str):
  if len(str) < 2:
    return 0
 
  last2 = str[len(str)-2:]
  count = 0
 
  for i in range(len(str)-2):
    sub = str[i:i+2]
    if sub == last2:
      count = count + 1

  return count

—————————————————————p147755.html —————————————————————

Given 2 arrays of ints, a and b, return True if they have the same first element or they have the same last element. Both arrays will be length 1 or more.

common_end([1, 2, 3], [7, 3]) → True
common_end([1, 2, 3], [7, 3, 2]) → False
common_end([1, 2, 3], [1, 3]) → True…Save, Compile, Run

def common_end(a, b):
  if a[0] == b[0] or a[-1] == b[-1]:
    return True
  return False

—————————————————————p147920.html —————————————————————

Given a string, we’ll say that the front is the first 3 chars of the string. If the string length is less than 3, the front is whatever is there. Return a new string which is 3 copies of the front.

front3(‘Java’) → ‘JavJavJav’
front3(‘Chocolate’) → ‘ChoChoCho’
front3(‘abc’) → ‘abcabcabc’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def front3(str):%0a  # Figure the end of the front%0a  front_end = 3%0a  if len(str) %26lt; front_end:%0a    front_end = len(str)%0a  front = str[:front_end]%0a  return front + front + front %0a  %0a  # Could omit the if logic, and write simply front = str[:3]%0a  # since the slice is silent about out-of-bounds conditions." + "

“)” style=”visibility: hidden;”>Show Solution

def front3(str):
  front = str
  if len(str) >= 3:
    front = str[0:3]
  ret = ''
  for i in range(1,4):
    ret = ret + front
 
  return ret

—————————————————————p148661.html —————————————————————

Given an array of ints length 3, return an array with the elements “rotated left” so {1, 2, 3} yields {2, 3, 1}.

rotate_left3([1, 2, 3]) → [2, 3, 1]
rotate_left3([5, 11, 9]) → [11, 9, 5]
rotate_left3([7, 0, 0]) → [0, 0, 7]…Save, Compile, Run

def rotate_left3(nums):
  nums.append(nums[0])
  nums.remove(nums[0])
  return nums

—————————————————————p148853.html —————————————————————

Given a string, return a new string made of 3 copies of the last 2 chars of the original string. The string length will be at least 2.

extra_end(‘Hello’) → ‘lololo’
extra_end(‘ab’) → ‘ababab’
extra_end(‘Hi’) → ‘HiHiHi’…Save, Compile, Run

def extra_end(str):
  s = str[-2:]
  return 3*s

—————————————————————p149391.html —————————————————————

Return True if the given string contains an appearance of “xyz” where the xyz is not directly preceeded by a period (.). So “xxyz” counts but “x.xyz” does not.

xyz_there(‘abcxyz’) → True
xyz_there(‘abc.xyz’) → False
xyz_there(‘xyz.abc’) → True…Save, Compile, Run

def xyz_there(str):
  str = str.replace('.xyz','')
  index = str.find('xyz')
 
  return index >= 0 and not str[index-1] == "."

—————————————————————p149524.html —————————————————————

Given a non-empty string and an int n, return a new string where the char at index n has been removed. The value of n will be a valid index of a char in the original string (i.e. n will be in the range 0..len(str)-1 inclusive).

missing_char(‘kitten’, 1) → ‘ktten’
missing_char(‘kitten’, 0) → ‘itten’
missing_char(‘kitten’, 4) → ‘kittn’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def missing_char(str, n):%0a  front = str[:n]   # up to but not including n%0a  back = str[n+1:]  # n+1 through end of string%0a  return front + back" + "

“)” style=”visibility: hidden;”>Show Solution

def missing_char(str, n):
  if n > len(str):
    return str

  return str[:n] + str[n+1:]
 

—————————————————————p153599.html —————————————————————

Given a string, return a new string where the first and last chars have been exchanged.

front_back(‘code’) → ‘eodc’
front_back(‘a’) → ‘a’
front_back(‘ab’) → ‘ba’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def front_back(str):%0a  if len(str) %26lt;= 1:%0a    return str%0a  %0a  mid = str[1:len(str)-1]  # can be written as str[1:-1]%0a  %0a  # last + mid + first%0a  return str[len(str)-1] + mid + str[0]" + "

“)” style=”visibility: hidden;”>Show Solution

def front_back(str):
  if len(str) <=1:
    return str
  s = str[-1] + str[1:len(str)-1] + str[0]
  return s

—————————————————————p158497.html —————————————————————

Given a number n, return True if n is in the range 1..10, inclusive. Unless “outsideMode” is True, in which case return True if the number is less or equal to 1, or greater or equal to 10.

in1to10(5, False) → True
in1to10(11, False) → False
in1to10(11, True) → True…Save, Compile, Run

def in1to10(n, outside_mode):
  a=n
  if outside_mode:
    if a =10:
      return True
    else:
      return False
  else:
    if a >=1 and a <=10:
      return True
    else:
      return False

—————————————————————p160533.html —————————————————————

Given three ints, a b c, return True if one of b or c is “close” (differing from a by at most 1), while the other is “far”, differing from both other values by 2 or more. Note: abs(num) computes the absolute value of a number.

close_far(1, 2, 10) → True
close_far(1, 2, 3) → False
close_far(4, 1, 3) → True…Save, Compile, Run

def close_far(a, b, c):
  abs_b = abs(b-a)
  abs_c = abs(c-a)
  abs_c2 = abs(c-b)
  if abs_b <=1:
    return abs_c >=2 and abs_c2 >=2
  elif abs_c <=1:
    return abs_b >=2 and abs_c2 >=2
  else:
    return False

—————————————————————p160545.html —————————————————————

Given a string, return a “rotated left 2″ version where the first 2 chars are moved to the end. The string length will be at least 2.

left2(‘Hello’) → ‘lloHe’
left2(‘java’) → ‘vaja’
left2(‘Hi’) → ‘Hi’…Save, Compile, Run

def left2(str):
  return str[2:] + str[0:2]

—————————————————————p162058.html —————————————————————

Given 2 int values, return True if one is negative and one is positive. Unless the parameter “negative” is True, then they both must be negative.

pos_neg(1, -1, False) → True
pos_neg(-1, 1, False) → True
pos_neg(1, 1, False) → False…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def pos_neg(a, b, negative):%0a  if negative:%0a    return (a %26lt; 0 and b %26lt; 0)%0a  else:%0a    return ((a %26lt; 0 and b %26gt; 0) or (a %26gt; 0 and b %26lt; 0))" + "

“)” style=”visibility: hidden;”>Show Solution

def pos_neg(a, b, negative):
  if negative and a<0 and b<0:
    return True
  elif not negative and ((a 0) or (a>0 and b < 0)):
    return True
 
  return False

—————————————————————p164876.html —————————————————————

Return True if the string “cat” and “dog” appear the same number of times in the given string.

cat_dog(‘catdog’) → True
cat_dog(‘catcat’) → False
cat_dog(‘1cat1cadodog’) → True…Save, Compile, Run

def cat_dog(str):
  catcount = 0
  dogcount = 0
  for i in range(len(str)-2):
    if str[i:i+3] =='cat':
      catcount+=1
    if str[i:i+3] =='dog':
      dogcount+=1

  return catcount == dogcount

—————————————————————p165097.html —————————————————————

Given a string and a non-negative int n, we’ll say that the front of the string is the first 3 chars, or whatever is there if the string is less than length 3. Return n copies of the front;

front_times(‘Chocolate’, 2) → ‘ChoCho’
front_times(‘Chocolate’, 3) → ‘ChoChoCho’
front_times(‘Abc’, 3) → ‘AbcAbcAbc’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def front_times(str, n):%0a  front_len = 3%0a  if front_len %26gt; len(str):%0a    front_len = len(str)%0a  front = str[:front_len]%0a  %0a  result = %26quot;%26quot;%0a  for i in range(n):%0a    result = result + front%0a  return result" + "

“)” style=”visibility: hidden;”>Show Solution

def front_times(str, n):
  ret = ''
  front = str[0:3]
  for i in range(n):
    ret += front
   
  return ret

—————————————————————p165321.html —————————————————————

Given a non-negative number “num”, return True if num is within 2 of a multiple of 10. Note: (a % b) is the remainder of dividing a by b, so (7 % 5) is 2.

near_ten(12) → True
near_ten(17) → False
near_ten(19) → True…Save, Compile, Run

def near_ten(num):
  a =  num % 10
  return a =8

—————————————————————p166170.html —————————————————————

Given an array of ints, return the number of 9’s in the array.

array_count9([1, 2, 9]) → 1
array_count9([1, 9, 9]) → 2
array_count9([1, 9, 9, 3, 9]) → 3…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def array_count9(nums):%0a  count = 0%0a  # Standard loop to look at each value%0a  for num in nums:%0a    if num == 9:%0a      count = count + 1%0a%0a  return count" + "

“)” style=”visibility: hidden;”>Show Solution

def array_count9(nums):
  ret = 0
  for i in range(len(nums)):
    if nums[i] == 9:
      ret+=1
 
  return ret

—————————————————————p166884.html —————————————————————

We have a loud talking parrot. The “hour” parameter is the current hour time in the range 0..23. We are in trouble if the parrot is talking and the hour is before 7 or after 20. Return True if we are in trouble.

parrot_trouble(True, 6) → True
parrot_trouble(True, 7) → False
parrot_trouble(False, 6) → False…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def parrot_trouble(talking, hour):%0a  return (talking and (hour %26lt; 7 or hour %26gt; 20))%0a  # Need extra parenthesis around the or clause%0a  # since and binds more tightly than or.%0a  # and is like arithmetic *, or is like arithmetic +" + "

“)” style=”visibility: hidden;”>Show Solution

def parrot_trouble(talking, hour):
  if talking and (hour 20):
    return True
  return False

—————————————————————p167246.html —————————————————————

Return the number of times that the string “hi” appears anywhere in the given string.

count_hi(‘abc hi ho’) → 1
count_hi(‘ABChi hi’) → 2
count_hi(‘hihi’) → 2…Save, Compile, Run         

def count_hi(str):
  count = 0
  for i in range(len(str)-1):
    if str[i:i+2] =='hi' and not i == len(str):
      count+=1
 
  return count

—————————————————————p170842.html —————————————————————

Given a string, return a string where for every char in the original, there are two chars.

double_char(‘The’) → ‘TThhee’
double_char(‘AAbb’) → ‘AAAAbbbb’
double_char(‘Hi-There’) → ‘HHii–TThheerree’…Save, Compile, Run         

def double_char(str):
  finalstr =''
  for s in str:
    finalstr += 2*s
  return finalstr

—————————————————————p171011.html —————————————————————

Given 2 int arrays, a and b, each length 3, return a new array length 2 containing their middle elements.

middle_way([1, 2, 3], [4, 5, 6]) → [2, 5]
middle_way([7, 7, 7], [3, 8, 0]) → [7, 8]
middle_way([5, 2, 9], [1, 4, 5]) → [2, 4]…Save, Compile, Run

def middle_way(a, b):
  return [a[1],b[1]]

—————————————————————p173401.html —————————————————————

The parameter weekday is True if it is a weekday, and the parameter vacation is True if we are on vacation. We sleep in if it is not a weekday or we’re on vacation. Return True if we sleep in.

sleep_in(False, False) → True
sleep_in(True, False) → False
sleep_in(False, True) → True…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def sleep_in(weekday, vacation):%0a  if not weekday or vacation:%0a    return True%0a  else:%0a    return False%0a  # This can be shortened to: return(not weekday or vacation)" + "

“)” style=”visibility: hidden;”>Show Solution

def sleep_in(weekday, vacation):
  if(weekday and not vacation):
    return False
  return True

—————————————————————p174314.html —————————————————————

Given two strings, return True if either of the strings appears at the very end of the other string, ignoring upper/lower case differences (in other words, the computation should not be “case sensitive”). Note: s.lower() returns the lowercase version of a string.

end_other(‘Hiabc’, ‘abc’) → True
end_other(‘AbC’, ‘HiaBc’) → True
end_other(‘abc’, ‘abXabc’) → True…Save, Compile, Run         

def end_other(a, b):
  a =a.lower()
  b = b.lower()
  if a[-len(b):] == b:
    return True
  if b[-len(a):] == a:
    return True
  return False

—————————————————————p177892.html —————————————————————

Given an int array length 2, return True if it contains a 2 or a 3.

has23([2, 5]) → True
has23([4, 3]) → True
has23([4, 5]) → False…Save, Compile, Run

def has23(nums):
  a= nums
  if a[0] == 2 or a[1] == 2 or a[0] == 3 or a[1] == 3:
    return True
  return False

—————————————————————p179078.html —————————————————————

Given an array of ints, return True if the array is length 1 or more, and the first element and the last element are the same.

same_first_last([1, 2, 3]) → False
same_first_last([1, 2, 3, 1]) → True
same_first_last([1, 2, 1]) → True…Save, Compile, Run

def same_first_last(nums):
  if len(nums) > 0 and (nums[0] == nums[len(nums)-1]):
    return True
  return False

—————————————————————p179960.html —————————————————————

For this problem, we’ll round an int value up to the next multiple of 10 if its rightmost digit is 5 or more, so 15 rounds up to 20. Alternately, round down to the previous multiple of 10 if its rightmost digit is less than 5, so 12 rounds down to 10. Given 3 ints, a b c, return the sum of their rounded values. To avoid code repetition, write a separate helper “def round10(num):” and call it 3 times. Write the helper entirely below and at the same indent level as round_sum().

round_sum(16, 17, 18) → 60
round_sum(12, 13, 14) → 30
round_sum(6, 4, 4) → 10…Save, Compile, Run

def round10(num):
  if (num % 10) >= 5:
    return num +  10 - (num%10)
  if (num % 10) < 5:
    return num -  (num%10)
def round_sum(a, b, c):
  return round10(a)+round10(b)+round10(c)

—————————————————————p181624.html —————————————————————

Given an array of ints, return True if 6 appears as either the first or last element in the array. The array will be length 1 or more.

first_last6([1, 2, 6]) → True
first_last6([6, 1, 2, 3]) → True
first_last6([3, 2, 1]) → False…Save, Compile, Run

def first_last6(nums):
  if nums[0] == 6 or nums[len(nums)-1]==6:
    return True
  return False

—————————————————————p182144.html —————————————————————

Given two strings, a and b, return the result of putting them together in the order abba, e.g. “Hi” and “Bye” returns “HiByeByeHi”.

make_abba(‘Hi’, ‘Bye’) → ‘HiByeByeHi’
make_abba(‘Yo’, ‘Alice’) → ‘YoAliceAliceYo’
make_abba(‘x’, ‘y’) → ‘xyyx’…Save, Compile, Run

def make_abba(a, b):
  return a + b + b + a

—————————————————————p182414.html —————————————————————

Given 2 strings, a and b, return the number of the positions where they contain the same length 2 substring. So “xxcaazz” and “xxbaaz” yields 3, since the “xx”, “aa”, and “az” substrings appear in the same place in both strings.

string_match(‘xxcaazz’, ‘xxbaaz’) → 3
string_match(‘abc’, ‘abc’) → 2
string_match(‘abc’, ‘axc’) → 0…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def string_match(a, b):%0a  # Figure which string is shorter.%0a  shorter = min(len(a), len(b))%0a  count = 0%0a  %0a  # Loop i over every substring starting spot.%0a  # Use length-1 here, so can use char str[i+1] in the loop%0a  for i in range(shorter-1):%0a    a_sub = a[i:i+2]%0a    b_sub = b[i:i+2]%0a    if a_sub == b_sub:%0a      count = count + 1%0a%0a  return count" + "

“)” style=”visibility: hidden;”>Show Solution

def string_match(a, b):
  loopcount = len(a)
  if len(b) < loopcount:
    loopcount = len(b)
  ret = 0
  for i in range(loopcount-1):
    if a[i:i+2] == b[i:i+2]:
      ret+=1
 
  return ret

—————————————————————p184816.html —————————————————————

Given a string, return the string made of its first two chars, so the String “Hello” yields “He”. If the string is shorter than length 2, return whatever there is, so “X” yields “X”, and the empty string “” yields the empty string “”.

first_two(‘Hello’) → ‘He’
first_two(‘abcdefg’) → ‘ab’
first_two(‘ab’) → ‘ab’…Save, Compile, Run

def first_two(str):
  if len(str) > 2:
    return str[0:2]
  return str

—————————————————————p184853.html —————————————————————

Given an array length 1 or more of ints, return the difference between the largest and smallest values in the array. Note: the built-in min(v1, v2) and max(v1, v2) functions return the smaller or larger of two values.

big_diff([10, 3, 5, 6]) → 7
big_diff([7, 2, 10, 9]) → 8
big_diff([2, 10, 7, 2]) → 8…Save, Compile, Run

def big_diff(nums):
  sortednum = sorted(nums)
  return sortednum[-1] - sortednum[0]

—————————————————————p186048.html —————————————————————

Return the number of times that the string “code” appears anywhere in the given string, except we’ll accept any letter for the ‘d’, so “cope” and “cooe” count.

count_code(‘aaacodebbb’) → 1
count_code(‘codexxcode’) → 2
count_code(‘cozexxcope’) → 2…Save, Compile, Run

def count_code(str):
  count = 0
  for i in range(len(str)-3):
    if str[i:i+2] =='co' and str[i+3:i+4] == 'e':
      count+=1
  return count

—————————————————————p189441.html —————————————————————

Given a string, return a new string where “not ” has been added to the front. However, if the string already begins with “not”, return the string unchanged.

not_string(‘candy’) → ‘not candy’
not_string(‘x’) → ‘not x’
not_string(‘not bad’) → ‘not bad’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def not_string(str):%0a  if len(str) %26gt;= 3 and str[:3] == %26quot;not%26quot;:%0a    return str%0a  return %26quot;not %26quot; + str%0a  # str[:3] goes from the start of the string up to but not%0a  # including index 3" + "

“)” style=”visibility: hidden;”>Show Solution

def not_string(str):
  ret = 'not '+str
  if str[0:3] == 'not':
    ret = str
  return ret

—————————————————————p189616.html —————————————————————

Return the number of even ints in the given array. Note: the % “mod” operator computes the remainder, e.g. 5 % 2 is 1.

count_evens([2, 1, 2, 3, 4]) → 3
count_evens([2, 2, 0]) → 3
count_evens([1, 3, 5]) → 0…Save, Compile, Run         

def count_evens(nums):
  count = 0
  for num in nums:
    if num%2 ==0:
      count+=1
  return count

—————————————————————p191645.html —————————————————————

Given an array of ints length 3, return the sum of all the elements.

sum3([1, 2, 3]) → 6
sum3([5, 11, 2]) → 18
sum3([7, 0, 0]) → 7…Save, Compile, Run

def sum3(nums):
  return nums[0]+nums[1]+nums[2]

—————————————————————p192589.html —————————————————————

Given an array of ints, return the sum of the first 2 elements in the array. If the array length is less than 2, just sum up the elements that exist, returning 0 if the array is length 0.

sum2([1, 2, 3]) → 3
sum2([1, 1]) → 2
sum2([1, 1, 1, 1]) → 2…Save, Compile, Run

def sum2(nums):
  if len(nums) == 0:
    return 0
   
  if len(nums) == 1:
    return nums[0]
  return nums[0]+nums[1]

—————————————————————p192962.html —————————————————————

Given an array of ints length 3, return a new array with the elements in reverse order, so {1, 2, 3} becomes {3, 2, 1}.

reverse3([1, 2, 3]) → [3, 2, 1]
reverse3([5, 11, 9]) → [9, 11, 5]
reverse3([7, 0, 0]) → [0, 0, 7]…Save, Compile, Run

def reverse3(nums):
  nums.reverse()
  return nums

—————————————————————p193507.html —————————————————————

Given a string and a non-negative int n, return a larger string that is n copies of the original string.

string_times(‘Hi’, 2) → ‘HiHi’
string_times(‘Hi’, 3) → ‘HiHiHi’
string_times(‘Hi’, 1) → ‘Hi’…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def string_times(str, n):%0a  result = %26quot;%26quot;%0a  for i in range(n):  # range(n) is [0, 1, 2, .... n-1]%0a    result = result + str  # could use += here%0a  return result" + "

“)” style=”visibility: hidden;”>Show Solution

def string_times(str, n):
  ret = ''
  for i in range(1,n+1):
    ret = ret + str
 
  return ret

—————————————————————p193604.html —————————————————————

Given an array of ints, return True if .. 1, 2, 3, .. appears in the array somewhere.

array123([1, 1, 2, 3, 1]) → True
array123([1, 1, 2, 4, 1]) → False
array123([1, 1, 2, 1, 2, 3]) → True…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def array123(nums):%0a  # Note: iterate with length-2, so can use i+1 and i+2 in the loop%0a  for i in range(len(nums)-2):%0a    if nums[i]==1 and nums[i+1]==2 and nums[i+2]==3:%0a      return True%0a  return False" + "

“)” style=”visibility: hidden;”>Show Solution

def array123(nums):
  str = "".join(["%s" % el for el in nums])
  if str.find('1') >= 0 and str.find('2') >= 0 and str.find('3') >= 0:
    return True
  return False

—————————————————————p194053.html —————————————————————

Given 2 strings, a and b, return a string of the form short+long+short, with the shorter string on the outside and the longer string on the inside. The strings will not be the same length, but they may be empty (length 0).

combo_string(‘Hello’, ‘hi’) → ‘hiHellohi’
combo_string(‘hi’, ‘Hello’) → ‘hiHellohi’
combo_string(‘aaa’, ‘b’) → ‘baaab’…Save, Compile, Run

def combo_string(a, b):
  s = sorted([a,b],key=len)
  return s[0]+s[1]+s[0]

—————————————————————p195669.html —————————————————————

When squirrels get together for a party, they like to have cigars. A squirrel party is successful when the number of cigars is between 40 and 60, inclusive. Unless it is the weekend, in which case there is no upper bound on the number of cigars. Return True if the party with the given values is successful, or False otherwise.

cigar_party(30, False) → False
cigar_party(50, False) → True
cigar_party(70, True) → True…Save, Compile, Run          <button onclick="document.getElementById("hint").innerHTML=unescape("Hint: One approach begins with%0a

%0aif is_weekend:%0a  ...%0aelse:%0a  ...%0a

%0aIn each section, check cigars with %26gt;=, %26lt;= etc. to return True if cigars is in range or else return False. Extra trick: for shorter code, note that %26quot;return (x %26gt;= 50)%26quot; automatically returns True if x %26gt;= 50 and False if x %26lt; 50. This works because the expression %26quot;(x %26gt;= 50)%26quot; evaluates to the value True or False, and then that value is returned.”)” style=”visibility: hidden;”>Show Hint

def cigar_party(cigars, is_weekend):
  if cigars >=40 and (cigars <=60 or is_weekend == True):
    return True
  return False

—————————————————————p197466.html —————————————————————

Given an int n, return the absolute difference between n and 21, except return double the absolute difference if n is over 21.

diff21(19) → 2
diff21(10) → 11
diff21(21) → 0…Save, Compile, Run          <button onclick="document.getElementById("results").innerHTML="Solution:

"+unescape("def diff21(n):%0a  if n %26lt;= 21:%0a    return 21 - n%0a  else:%0a    return (n - 21) * 2" + "

“)” style=”visibility: hidden;”>Show Solution

def diff21(n):
  diff = abs(n - 21)
  if n > 21:
    diff = diff * 2
  return diff
 
Follow

Get every new post delivered to your Inbox.