Fork me on GitHub

Seventh Class - Make up!

by Elliott Hauser

19 Feb 2014

Announcements

  • Project scoping
  • Meetups: credit for 2 for longer events. Programming meetups. vs. more general technology workshops.
  • Segue: Reagan Moore peer observation & iRODS intro

Class today

  1. Show and tells
  2. Class 6 make-up

Homework

A Simple Flask Blog, deployed to Heroku.

Show and tells:

#1

near_hundred

Madeline:

1
2
3
4
5
6
7
8
9
10
11
12
13
 
def near_hundred(n):
# If abs within 10 of 100
  if abs(n) >= 90 and abs(n) <= 100:
    return True
  if abs(n) >= 100 and abs(n) <= 110:
    return True
# If abs within 10 of 200
  if abs(n) >= 190 and abs(n) <= 200:
    return True
  if abs(n) >= 200 and abs(n) <= 210:
    return True
  else:
    return False

Xuxiang:

1
2
 
def near_hundred(n):
   return abs(n - 100) <= 10 or abs(n - 200) <= 10

caught_speeding

Brendan:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
def caught_speeding(speed, is_birthday):
 if is_birthday:
   bonus = 5
 else:
   bonus = 0
 if speed <= (60 + bonus):
   ticket = 0
 elif speed >= (61 + bonus) and speed <= (80 + bonus):
   ticket = 1
 elif speed >= (81 + bonus):
   ticket = 2
 else:
   return "Error!"
 return ticket

Sunhwa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
def caught_speeding(speed, is_birthday):
    if is_birthday==True :
        if speed <=65:
           return 0
        elif speed >=66 and speed <=85:
           return 1
        else:
           return 2
    else:
        if speed <=60:
           return 0
        elif speed >=61 and speed <=80:
           return 1
        else:
           return 2

Zach:

1
2
3
4
5
6
7
8
9
 
  def caught_speeding(speed, is_birthday):
     if is_birthday:
        speed -=5
     if speed <= 60:
        return 0
     if speed >= 81:
        return 2
     if speed > 60:
        return 1

Yonghao:

1
2
3
4
5
6
7
8
9
10
11
 
def caught_speeding(speed, is_birthday):
  if is_birthday:
   plus_speed=5
  else:
   plus_speed=0
  if speed<=60+plus_speed:
   return 0
  elif speed<=80+plus_speed:
   return 1
  else:
   return 2

Chunxi:

1
2
3
4
5
6
7
8
9
10
 
def caught_speeding(speed, is_birthday):
 boon = 0
 if is_birthday == True:
   boon = 5
 if speed <= 60+boon:
   return 0
 elif speed >= 81+boon:
   return 2
 else:
   return 1

Jacob:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
def caught_speeding(speed, is_birthday):
    lucky = speed + 5
    if is_birthday == True:
        if speed < 66:
            return 0
        elif lucky >= 65 and speed <= 86:
            return 1
        else:
            return 2
    else:
        if speed < 61:
            return 0
        elif speed >= 60 and speed <= 80:
            return 1
        else:
            return 2

date_fashion

Sophia:

1
2
3
4
5
6
7
8
9
10
 
def date_fashion(you, date):
  yes = 2
  no = 0
  maybe = 1
  if you <=2 or date <=2:
     return no
  elif you >= 8 or date >= 8:
     return yes
  else:
     return maybe

Katie:

1
2
3
4
5
6
7
 
def date_fashion(you, date):
  if (you >= 8 or date >= 8) and you >2 and date >2: #At least one of you is stylish!
    return 2
  elif you <= 2 or date <= 2: #Your date let you down...
    return 0
  else:
    return 1

Brittany:

1
2
3
4
5
6
7
 
def date_fashion(you, date):
    if you <= 2 or date <= 2:
        return 0
    elif you >= 8 or date >= 8:
        return 2
    else:
        return 1   

Mandy:

1
2
3
4
5
6
7
8
9
10
11
 
def date_fashion(you, date):
  if you <= 2 or date <= 2:
    result = 0
    return result 
  elif you >= 8 or date >= 8:
    result = 2
    return result
 
  else:
    result = 1
    return result

alarm_clock

Madeline:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
def alarm_clock(day, vacation):
# if vacation and weekend
  if vacation == True and day == 0:
    return "off"
  if vacation == True and day == 6:
    return "off"
# if weekday
  if not vacation and day >= 1 and day <= 5:
    return "7:00"
# if weekend
  if not vacation and day == 0 or day == 6:
    return "10:00"
# if vacation and weekday
  if vacation == True and day >= 1 and day <= 5:
    return "10:00"

Sophia:

1
2
3
4
5
6
7
8
9
 
def alarm_clock(day, vacation):
  if day > 0 and day < 6 and vacation == True:
    return "10:00"
  elif vacation == True and (day == 0 or day == 6):
    return "off"
  elif vacation == False and day > 0 and day < 6:
    return "7:00"
  else:
    return "10:00"

Allen:

1
2
3
4
5
6
 
  def alarm_clock(day, vacation):
    if(day != 0 and day != 6 and not vacation):
       return "7:00"
    if((day == 0 or day == 6) and not vacation) or (day != 0 and day !=6 and vacation):
       return "10:00"
    return "off"

cigar_party

Katie:

1
2
3
4
5
6
7
8
9
10
11
 
def cigar_party(cigars, is_weekend):
  if is_weekend == True:
    if cigars >= 40: #Unlimited cigars on the weekend!
      return True
    else:
      return False
  else:
    if cigars >= 40 and cigars <= 60: #Take it easy, it's a school night
      return True
    else: 
      return False

Jessica:

1
2
3
4
5
 
def cigar_party(cigars, is_weekend):
    if is_weekend:
        return cigars>=40
    else:
        return (cigars>=40) and (cigars<=60) 

Brittany Refactoring front_back

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
def front_back(str):
    chars = list(str)
    index = 0
    temp_string = ''
    if len(str) <= 1:  ##initially had if len(str) == 1, which causes error for blank str
        return str
    else:
        while index < len(str):
            if (index > 0) and (index < len(str)-1):
                temp_string = temp_string + chars[index]
                #print temp_string
                index = index + 1
                #print index
            else:
                index = index + 1
                #print index
        final_string = chars[len(str)-1]+temp_string+chars[0]
        return final_string

Using slicing to replace the while loop:

1
2
3
4
5
6
7
8
 
def front_back(str):
    if len(str)-1 == 0:
        return str
    else:
        first_char = str[0:1]
        last_char = str[len(str)-1:len(str)]
        new_string = last_char + str[1:len(str)-1] + first_char
        return new_string

Brittany Refactoring make_out

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
def make_out_word(out, word):
    chars = list(out)
    index = 0
    new_word = ''
    for char in chars:
        if index < (len(out)/2):
            new_word = new_word + chars[index]
            index = index + 1
        elif index == (len(out)/2):
            new_word = new_word + word + chars[index]
            index = index + 1
        elif index > (len(out)/2):
            new_word = new_word + chars[index]
            index = index + 1
        else:
            index = index + 1
    return new_word
1
2
3
4
5
 
def make_out_word(out, word):
    out_front = out[0: len(out)/2]
    out_back = out[(len(out)/2):(len(out))]
    new_word = out_front + word + out_back
    return new_word

Lei Wang Refactoring has23

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

Using in to replace the series of similar or comparisons:

1
2
3
4
 
def has23(nums):
 if 2 in nums or 3 in nums:
   return True
 return False

Laura was able to make this even simpler with logic:

1
2
 
def has23(nums):
   return 2 in nums or 3 in nums
Elliott Hauser is a PhD Student in information science at UNC Chapel Hill. He's hacking education as one of the cofounders of Trinket.io. Find Elliott Hauser on Twitter, Github, and on the web.