From 3c5b325126770e5c40168d59a4431c348d43bb15 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 11 Sep 2019 19:53:47 -0700 Subject: [PATCH 01/14] add lesson 1 --- ch_1_lesson_Adam_Wu.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 ch_1_lesson_Adam_Wu.py diff --git a/ch_1_lesson_Adam_Wu.py b/ch_1_lesson_Adam_Wu.py new file mode 100644 index 0000000..bc4200d --- /dev/null +++ b/ch_1_lesson_Adam_Wu.py @@ -0,0 +1 @@ +print('Hello, World!') \ No newline at end of file From 2ed190937346334509956aa8c0afda56a88a40cd Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Tue, 17 Sep 2019 19:17:01 -0700 Subject: [PATCH 02/14] added all teams and information --- ch_1_assign_adam_wu.py | 73 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 ch_1_assign_adam_wu.py diff --git a/ch_1_assign_adam_wu.py b/ch_1_assign_adam_wu.py new file mode 100644 index 0000000..399eea9 --- /dev/null +++ b/ch_1_assign_adam_wu.py @@ -0,0 +1,73 @@ +teams_dictionary = { + 1678:{ + "location":"Davis_CA_USA", + "rookie_year":"2005", + "2019_comp_status":True, + "2019_comp_name":[ + "Central_Valley_Regional", + "Sacramento_Regional", + "Aerospace_Valley_Regional", + "Carver_Division", + "Einstein_Field_Houston", + "RCC_Qianjiang_International_Robotics_Invitational", + "Chezy_Champs"], + "2019_comp_location":[ + "Fresno_CA_USA", + "Davis_CA_USA", + "Lancaster_CA_USA", + "Houston_TX_USA", + "Houston_TX_USA", + "Hangzhou_Zhejiang_CHN", + "SanJose_CA_USA"], + "2019_season_awards":[ + "Regional_Chairmans", + "Regional_Winners", + "Deans_List_Finalist", + "Regional_Winners", + "Industrial_Design", + "Regional_Winners", + "Excellence_Engineering", + "Championship_Subdivision_Winner"]}, + 5000:{ + "location":"Hingham_MA_USA", + "rookie_year":"2014", + "2019_comp_status":True, + "2019_comp_name":[ + "NE_District_SE_Mass_Event", + "NE_District_Rhode_Island_Event"], + "2019_comp_location":[ + "Bridgewater_MA_02324_USA", + "Smithfield_RI_02917_USA"], + "2019_season_awards":[]}, + 69:{ + "location":"Quincy_MA_USA", + "rookie_year":"1998", + "2019_comp_status":True, + "2019_comp_name":[ + "NE_District_SE_Mass_Event", + "NE_District_UNH_Event", + "New_England_District_Championship"], + "2019_comp_location":[ + "Bridgewater_MA_02324_USA", + "Durham_NH_03824_USA", + "Worcester_MA_USA"], + "2019_season_awards":[ + "District_Event_Finalist", + "Creativity_Award_sponsored_by_Xerox",]}, + 590:{ + "location":"Choctaw_MS_USA", + "rookie_year":"2001", + "2019_comp_status":True, + "2019_comp_name":[ + "Bayou_Regional"], + "2019_comp_location":[ + "Kenner_LA_70065_USA"], + "2019_season_awards":[]}, + 3686:{ + "location":"Memphis_TN_USA", + "rookie_year":"2011", + "2019_comp_status":False, + "2019_comp_name":[], + "2019_comp_location":[], + "2019_season_awards":[]} +} \ No newline at end of file From 0a5c41b15bb063a18d2f4d802e394ee8d190c53f Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 18 Sep 2019 19:55:50 -0700 Subject: [PATCH 03/14] add team input and print --- ch_1_assign_adam_wu.py | 145 +++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 71 deletions(-) diff --git a/ch_1_assign_adam_wu.py b/ch_1_assign_adam_wu.py index 399eea9..9482ea2 100644 --- a/ch_1_assign_adam_wu.py +++ b/ch_1_assign_adam_wu.py @@ -1,73 +1,76 @@ teams_dictionary = { 1678:{ - "location":"Davis_CA_USA", - "rookie_year":"2005", - "2019_comp_status":True, - "2019_comp_name":[ - "Central_Valley_Regional", - "Sacramento_Regional", - "Aerospace_Valley_Regional", - "Carver_Division", - "Einstein_Field_Houston", - "RCC_Qianjiang_International_Robotics_Invitational", - "Chezy_Champs"], - "2019_comp_location":[ - "Fresno_CA_USA", - "Davis_CA_USA", - "Lancaster_CA_USA", - "Houston_TX_USA", - "Houston_TX_USA", - "Hangzhou_Zhejiang_CHN", - "SanJose_CA_USA"], - "2019_season_awards":[ - "Regional_Chairmans", - "Regional_Winners", - "Deans_List_Finalist", - "Regional_Winners", - "Industrial_Design", - "Regional_Winners", - "Excellence_Engineering", - "Championship_Subdivision_Winner"]}, - 5000:{ - "location":"Hingham_MA_USA", - "rookie_year":"2014", - "2019_comp_status":True, - "2019_comp_name":[ - "NE_District_SE_Mass_Event", - "NE_District_Rhode_Island_Event"], - "2019_comp_location":[ - "Bridgewater_MA_02324_USA", - "Smithfield_RI_02917_USA"], - "2019_season_awards":[]}, - 69:{ - "location":"Quincy_MA_USA", - "rookie_year":"1998", - "2019_comp_status":True, - "2019_comp_name":[ - "NE_District_SE_Mass_Event", - "NE_District_UNH_Event", - "New_England_District_Championship"], - "2019_comp_location":[ - "Bridgewater_MA_02324_USA", - "Durham_NH_03824_USA", - "Worcester_MA_USA"], - "2019_season_awards":[ - "District_Event_Finalist", - "Creativity_Award_sponsored_by_Xerox",]}, - 590:{ - "location":"Choctaw_MS_USA", - "rookie_year":"2001", - "2019_comp_status":True, - "2019_comp_name":[ - "Bayou_Regional"], - "2019_comp_location":[ - "Kenner_LA_70065_USA"], - "2019_season_awards":[]}, - 3686:{ - "location":"Memphis_TN_USA", - "rookie_year":"2011", - "2019_comp_status":False, - "2019_comp_name":[], - "2019_comp_location":[], - "2019_season_awards":[]} -} \ No newline at end of file + "location":"Davis_CA_USA", + "rookie_year":"2005", + "2019_comp_status":True, + "2019_comp_name":[ + "Central_Valley_Regional", + "Sacramento_Regional", + "Aerospace_Valley_Regional", + "Carver_Division", + "Einstein_Field_Houston", + "RCC_Qianjiang_International_Robotics_Invitational", + "Chezy_Champs"], + "2019_comp_location":[ + "Fresno_CA_USA", + "Davis_CA_USA", + "Lancaster_CA_USA", + "Houston_TX_USA", + "Houston_TX_USA", + "Hangzhou_Zhejiang_CHN", + "SanJose_CA_USA"], + "2019_season_awards":[ + "Regional_Chairmans", + "Regional_Winners", + "Deans_List_Finalist", + "Regional_Winners", + "Industrial_Design", + "Regional_Winners", + "Excellence_Engineering", + "Championship_Subdivision_Winner"]}, + 5000:{ + "location":"Hingham_MA_USA", + "rookie_year":"2014", + "2019_comp_status":True, + "2019_comp_name":[ + "NE_District_SE_Mass_Event", + "NE_District_Rhode_Island_Event"], + "2019_comp_location":[ + "Bridgewater_MA_02324_USA", + "Smithfield_RI_02917_USA"], + "2019_season_awards":[]}, + 69:{ + "location":"Quincy_MA_USA", + "rookie_year":"1998", + "2019_comp_status":True, + "2019_comp_name":[ + "NE_District_SE_Mass_Event", + "NE_District_UNH_Event", + "New_England_District_Championship"], + "2019_comp_location":[ + "Bridgewater_MA_02324_USA", + "Durham_NH_03824_USA", + "Worcester_MA_USA"], + "2019_season_awards":[ + "District_Event_Finalist", + "Creativity_Award_sponsored_by_Xerox",]}, + 590:{ + "location":"Choctaw_MS_USA", + "rookie_year":"2001", + "2019_comp_status":True, + "2019_comp_name":[ + "Bayou_Regional"], + "2019_comp_location":[ + "Kenner_LA_70065_USA"], + "2019_season_awards":[]}, + 3686:{ + "location":"Memphis_TN_USA", + "rookie_year":"2011", + "2019_comp_status":False, + "2019_comp_name":[], + "2019_comp_location":[], + "2019_season_awards":[]} +} +team_input = int(input('choose an FRC team: 1678, 5000, 69, 590, or 3689.\n')) +team_attribute = str(input('enter an attribute, "location", "rookie_year", "2019_comp_status", "2019_comp_name", "2019_comp_location", or "2019_season_awards".\n').lower()) +print(teams_dictionary[team_input][team_attribute]) \ No newline at end of file From 24e8584af41144fb712b72e6fe4846d950311304 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Sat, 28 Sep 2019 22:19:00 -0700 Subject: [PATCH 04/14] First commit message --- ch_2_assign_adam_wu.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 ch_2_assign_adam_wu.py diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py new file mode 100644 index 0000000..af46516 --- /dev/null +++ b/ch_2_assign_adam_wu.py @@ -0,0 +1,36 @@ + +teams = {}; +#empty team that will be the value for given team number +team_menu = { + '1': 'location', + '2':'program_language', + '3':'width', + '4':'length', + '5':'camera_vision_system', + '6':'number_drivetrain_motor', + '0':'exit program' + } +#entering team number and updating the teams dict +team_number = int(input('Please enter team number:\n')) +teams.update({team_number:{}}) + +user_input = '1' +while True: + + for key in team_menu.keys(): + print(key+': '+team_menu[key]) + + #user_input will allow you to exit the program + user_input = str(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input + + if user_input == '0': + break + + #val_change is the variable for new values + val_change = str(input('what is the new value for ' + team_menu[key_entered]+'\n')) + teams[team_number][team_menu[key_entered]] = user_input + + + + print(teams) \ No newline at end of file From 815a0ff24c02e7d59305df1764fa20099b87d3ea Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 2 Oct 2019 17:27:28 -0700 Subject: [PATCH 05/14] plese if team_names in teams.val(): --- ch_2_assign_adam_wu.py | 134 ++++++++++++++++++++++++++++++++--------- 1 file changed, 105 insertions(+), 29 deletions(-) diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py index af46516..533ef99 100644 --- a/ch_2_assign_adam_wu.py +++ b/ch_2_assign_adam_wu.py @@ -1,36 +1,112 @@ - teams = {}; -#empty team that will be the value for given team number +user_menu = { + 1: 'add/change_team_info', + 2: 'Remove_team', + 3: 'search_team', + 4: 'show_all_teams', + 0: 'quit'} team_menu = { - '1': 'location', - '2':'program_language', - '3':'width', - '4':'length', - '5':'camera_vision_system', - '6':'number_drivetrain_motor', - '0':'exit program' - } -#entering team number and updating the teams dict -team_number = int(input('Please enter team number:\n')) -teams.update({team_number:{}}) - -user_input = '1' -while True: - - for key in team_menu.keys(): - print(key+': '+team_menu[key]) - - #user_input will allow you to exit the program - user_input = str(input('enter number corresponding to what you would like to add/change \n')) - key_entered = user_input - - if user_input == '0': + 1: {'property': 'team_name','type':'str'}, + 2: {'property': 'location','type':'str'}, + 3: {'property': 'program_language', 'type':'str'}, + 4: {'property': 'camera_vision_system','type':'bool'}, + 5: {'property': 'width','type':'int'}, + 6: {'property': 'length','type':'int'}, + 7: {'property': 'number_drivetrain_motor','type':'int'}, + 0: {'property': 'main_menu'}} + +user_menu_selection = '' +while user_menu_selection != 0: + + for key in user_menu.keys(): + print(str(key) + ': ' +user_menu[key]) + + user_menu_selection = str(input('please enter number of selection you would like to make \n')) + + if user_menu_selection == '0': break + if user_menu_selection == '1': + team_number = int(input('Please enter team number:\n')) + teams.update({team_number:{}}) + + user_input = '1' + while True: + + for key in team_menu.keys(): + print(str(key) +': '+team_menu[key]['property']) + + #user_input will allow you to exit the program + user_input = int(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input + + if user_input == 0: + break + + want_to_change = team_menu[key_entered] + + #val_change is the variable for new values + val_change = input('what is the new value for ' + want_to_change['property']+'\n') + try: + if want_to_change['type'] == 'str': + try: + if val_change.isnumeric(): + print('please enter a number') + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + elif want_to_change['type'] == 'int': + val_change = int(val_change) + elif want_to_change['type'] == 'bool': + val_change = int(val_change) + val_change = val_change == 1 + teams[team_number][want_to_change['property']] = val_change + + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + print(teams) + + if user_menu_selection == '2': + team_type_selection = str(input('would you like to search by team name or number? \n')) + if team_type_selection == 'number': + team_name = int(input('delete which team? \n')) + #if team_name in teams.values(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') + if team_type_selection == 'name': + team_name = str(input('delete which team? \n')) + print(teams.values()) + + if user_menu_selection == '3': + team_search = str(input('what team would you like to search? \n')) + if team_search in teams.keys(): + print("Present, ") + print("value =", teams[key]) + else: + print("Not present") + + + #entering team number and updating the teams dict + + - #val_change is the variable for new values - val_change = str(input('what is the new value for ' + team_menu[key_entered]+'\n')) - teams[team_number][team_menu[key_entered]] = user_input + """elif want_to_change['type'] == 'int': + val_change = input('what is the new integer value for ' + want_to_change['property'] + '\n') + elif want_to_change['type'] == 'bool': + val_change = input('''please enter 'true' or 'false' ''' + want_to_change['property'] + '\n')""" + """if want_to_change['type'] == 'bool': + val_change = input('''type "true" or "false" if they have a ''' + want_to_change['property']+'\n') + val_change = bool(val_change) + + if want_to_change['type'] == 'int': + val_change = input('please enter new number value of ' + want_to_change['property']+'\n') + val_change = int(val_change)""" - print(teams) \ No newline at end of file + From bb431146e71cfc2c234e06324b728c72cac3dbe0 Mon Sep 17 00:00:00 2001 From: Harry Jiang Date: Thu, 3 Oct 2019 18:43:16 -0700 Subject: [PATCH 06/14] add delete and search team --- ch_2_assign_adam_wu.py | 43 ++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py index 533ef99..dc08c37 100644 --- a/ch_2_assign_adam_wu.py +++ b/ch_2_assign_adam_wu.py @@ -68,27 +68,42 @@ print(teams) - if user_menu_selection == '2': - team_type_selection = str(input('would you like to search by team name or number? \n')) - if team_type_selection == 'number': - team_name = int(input('delete which team? \n')) - #if team_name in teams.values(): - print(teams.keys()) - teams.pop(team_name) - print(teams.keys()) + if user_menu_selection == '2': + team_name = input('delete which team? \n') + if team_name.isnumeric(): + team_name = int(team_name) + if team_name in teams.keys(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') else: - print('team ' + team_name +' does not exist') - if team_type_selection == 'name': - team_name = str(input('delete which team? \n')) - print(teams.values()) + print('please enter an integer \n') if user_menu_selection == '3': team_search = str(input('what team would you like to search? \n')) - if team_search in teams.keys(): + for team_number, team_name in teams.items(): + if team_search.isnumeric(): + if int(team_search) == team_number: + print(teams[team_number]) + elif team_search == team_name['team_name']: + print(teams[team_number]) + else: + print('not ok') + if user_menu_selection == '4': + for key, value in teams.items(): + print (key) + for subkey, subvalue in value.items(): + print(' '+ subkey + ' = ' + subvalue) + + + + """if team_search in teams.keys(): print("Present, ") print("value =", teams[key]) else: - print("Not present") + print("Not present") """ #entering team number and updating the teams dict From 2d85cb1d092fa2ecd59f8e0275d73327e42e029f Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Thu, 3 Oct 2019 22:04:14 -0700 Subject: [PATCH 07/14] finish final touches --- ch_2_assign_adam_wu.py | 59 +++++++++++++----------------------------- 1 file changed, 18 insertions(+), 41 deletions(-) diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py index dc08c37..08068c1 100644 --- a/ch_2_assign_adam_wu.py +++ b/ch_2_assign_adam_wu.py @@ -26,8 +26,13 @@ if user_menu_selection == '0': break if user_menu_selection == '1': - team_number = int(input('Please enter team number:\n')) - teams.update({team_number:{}}) + team_number = input('Please enter team number:\n') + if team_number.isnumeric(): + teams.update({team_number:{}}) + else: + print('please enter a number') + + continue user_input = '1' while True: @@ -71,7 +76,6 @@ if user_menu_selection == '2': team_name = input('delete which team? \n') if team_name.isnumeric(): - team_name = int(team_name) if team_name in teams.keys(): print(teams.keys()) teams.pop(team_name) @@ -82,46 +86,19 @@ print('please enter an integer \n') if user_menu_selection == '3': - team_search = str(input('what team would you like to search? \n')) + team_search = input('what team would you like to search? \n') + #team_search_validation = False for team_number, team_name in teams.items(): - if team_search.isnumeric(): - if int(team_search) == team_number: - print(teams[team_number]) - elif team_search == team_name['team_name']: - print(teams[team_number]) - else: - print('not ok') + if team_search == team_number: + for sub_team_name, sub_team_value in team_name.items(): + print(sub_team_name + ' = ' + sub_team_value) + for team_number, team_name in teams.items(): + if team_search == team_name['team_name']: + for sub_team_number, sub_team_name in team_name.items(): + print(str(sub_team_number) + ' = ' + str(sub_team_name)) + if user_menu_selection == '4': for key, value in teams.items(): print (key) for subkey, subvalue in value.items(): - print(' '+ subkey + ' = ' + subvalue) - - - - """if team_search in teams.keys(): - print("Present, ") - print("value =", teams[key]) - else: - print("Not present") """ - - - #entering team number and updating the teams dict - - - - - """elif want_to_change['type'] == 'int': - val_change = input('what is the new integer value for ' + want_to_change['property'] + '\n') - elif want_to_change['type'] == 'bool': - val_change = input('''please enter 'true' or 'false' ''' + want_to_change['property'] + '\n')""" - - """if want_to_change['type'] == 'bool': - val_change = input('''type "true" or "false" if they have a ''' + want_to_change['property']+'\n') - val_change = bool(val_change) - - if want_to_change['type'] == 'int': - val_change = input('please enter new number value of ' + want_to_change['property']+'\n') - val_change = int(val_change)""" - - + print(' '+ subkey + ' = ' + subvalue) \ No newline at end of file From 6209f998ee93e2dc5e686c1c20b362735d383329 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Thu, 3 Oct 2019 22:10:46 -0700 Subject: [PATCH 08/14] Convert all tabs to spaces --- ch_2_assign_adam_wu.py | 177 +++++++++++++++++++++-------------------- 1 file changed, 89 insertions(+), 88 deletions(-) diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py index 08068c1..77df228 100644 --- a/ch_2_assign_adam_wu.py +++ b/ch_2_assign_adam_wu.py @@ -1,104 +1,105 @@ teams = {}; user_menu = { - 1: 'add/change_team_info', - 2: 'Remove_team', - 3: 'search_team', - 4: 'show_all_teams', - 0: 'quit'} + 1: 'add/change_team_info', + 2: 'Remove_team', + 3: 'search_team', + 4: 'show_all_teams', + 0: 'quit'} team_menu = { - 1: {'property': 'team_name','type':'str'}, - 2: {'property': 'location','type':'str'}, - 3: {'property': 'program_language', 'type':'str'}, - 4: {'property': 'camera_vision_system','type':'bool'}, - 5: {'property': 'width','type':'int'}, - 6: {'property': 'length','type':'int'}, - 7: {'property': 'number_drivetrain_motor','type':'int'}, - 0: {'property': 'main_menu'}} + 1: {'property': 'team_name','type':'str'}, + 2: {'property': 'location','type':'str'}, + 3: {'property': 'program_language', 'type':'str'}, + 4: {'property': 'camera_vision_system','type':'bool'}, + 5: {'property': 'width','type':'int'}, + 6: {'property': 'length','type':'int'}, + 7: {'property': 'number_drivetrain_motor','type':'int'}, + 0: {'property': 'main_menu'}} user_menu_selection = '' while user_menu_selection != 0: - for key in user_menu.keys(): - print(str(key) + ': ' +user_menu[key]) - - user_menu_selection = str(input('please enter number of selection you would like to make \n')) - - if user_menu_selection == '0': - break - if user_menu_selection == '1': - team_number = input('Please enter team number:\n') - if team_number.isnumeric(): - teams.update({team_number:{}}) - else: - print('please enter a number') - - continue + for key in user_menu.keys(): + print(str(key) + ': ' +user_menu[key]) + + user_menu_selection = str(input('please enter number of selection you would like to make \n')) + + if user_menu_selection == '0': + break + if user_menu_selection == '1': + team_number = input('Please enter team number:\n') + if team_number.isnumeric(): + teams.update({team_number:{}}) + else: + print('please enter a number') + + continue + + user_input = '1' + while True: + - user_input = '1' - while True: + for key in team_menu.keys(): + print(str(key) +': '+team_menu[key]['property']) - for key in team_menu.keys(): - print(str(key) +': '+team_menu[key]['property']) + #user_input will allow you to exit the program + user_input = int(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input - #user_input will allow you to exit the program - user_input = int(input('enter number corresponding to what you would like to add/change \n')) - key_entered = user_input + if user_input == 0: + break - if user_input == 0: - break + want_to_change = team_menu[key_entered] - want_to_change = team_menu[key_entered] + #val_change is the variable for new values + val_change = input('what is the new value for ' + want_to_change['property']+'\n') + try: + if want_to_change['type'] == 'str': + try: + if val_change.isnumeric(): + print('please enter a number') + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") - #val_change is the variable for new values - val_change = input('what is the new value for ' + want_to_change['property']+'\n') - try: - if want_to_change['type'] == 'str': - try: - if val_change.isnumeric(): - print('please enter a number') - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") + elif want_to_change['type'] == 'int': + val_change = int(val_change) + elif want_to_change['type'] == 'bool': + val_change = int(val_change) + val_change = val_change == 1 + teams[team_number][want_to_change['property']] = val_change - elif want_to_change['type'] == 'int': - val_change = int(val_change) - elif want_to_change['type'] == 'bool': - val_change = int(val_change) - val_change = val_change == 1 - teams[team_number][want_to_change['property']] = val_change + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + print(teams) - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") - - print(teams) + if user_menu_selection == '2': + team_name = input('delete which team? \n') + if team_name.isnumeric(): + if team_name in teams.keys(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') + else: + print('please enter an integer \n') - if user_menu_selection == '2': - team_name = input('delete which team? \n') - if team_name.isnumeric(): - if team_name in teams.keys(): - print(teams.keys()) - teams.pop(team_name) - print(teams.keys()) - else: - print('team ' + team_name +' does not exist') - else: - print('please enter an integer \n') - - if user_menu_selection == '3': - team_search = input('what team would you like to search? \n') - #team_search_validation = False - for team_number, team_name in teams.items(): - if team_search == team_number: - for sub_team_name, sub_team_value in team_name.items(): - print(sub_team_name + ' = ' + sub_team_value) - for team_number, team_name in teams.items(): - if team_search == team_name['team_name']: - for sub_team_number, sub_team_name in team_name.items(): - print(str(sub_team_number) + ' = ' + str(sub_team_name)) - - if user_menu_selection == '4': - for key, value in teams.items(): - print (key) - for subkey, subvalue in value.items(): - print(' '+ subkey + ' = ' + subvalue) \ No newline at end of file + if user_menu_selection == '3': + team_search = input('what team would you like to search? \n') + #team_search_validation = False + for team_number, team_name in teams.items(): + if team_search == team_number: + for sub_team_name, sub_team_value in team_name.items(): + print(sub_team_name + ' = ' + sub_team_value) + for team_number, team_name in teams.items(): + if team_search == team_name['team_name']: + for sub_team_number, sub_team_name in team_name.items(): + print(str(sub_team_number) + ' = ' + str(sub_team_name)) + + if user_menu_selection == '4': + for key, value in teams.items(): + print (key) + for subkey, subvalue in value.items(): + print(' '+ subkey + ' = ' + subvalue) \ No newline at end of file From d6cdb3b964dfe78dbdd9c6e297c6289d84ae37df Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 9 Oct 2019 20:42:26 -0700 Subject: [PATCH 09/14] fix team show bool --- ch_3_assign_adam_wu.py | 105 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 ch_3_assign_adam_wu.py diff --git a/ch_3_assign_adam_wu.py b/ch_3_assign_adam_wu.py new file mode 100644 index 0000000..447d44e --- /dev/null +++ b/ch_3_assign_adam_wu.py @@ -0,0 +1,105 @@ +teams = {}; +user_menu = { + 1: 'add/change_team_info', + 2: 'Remove_team', + 3: 'search_team', + 4: 'show_all_teams', + 0: 'quit'} +team_menu = { + 1: {'property': 'team_name','type':'str'}, + 2: {'property': 'location','type':'str'}, + 3: {'property': 'program_language', 'type':'str'}, + 4: {'property': 'camera_vision_system','type':'bool'}, + 5: {'property': 'width','type':'int'}, + 6: {'property': 'length','type':'int'}, + 7: {'property': 'number_drivetrain_motor','type':'int'}, + 0: {'property': 'main_menu'}} + +user_menu_selection = '' +while user_menu_selection != 0: + + for key in user_menu.keys(): + print(str(key) + ': ' +user_menu[key]) + + user_menu_selection = str(input('please enter number of selection you would like to make \n')) + + if user_menu_selection == '0': + break + if user_menu_selection == '1': + team_number = input('Please enter team number:\n') + if team_number.isnumeric(): + teams.update({team_number:{}}) + else: + print('please enter a number') + + continue + + user_input = '1' + while True: + + + for key in team_menu.keys(): + print(str(key) +': '+team_menu[key]['property']) + + #user_input will allow you to exit the program + user_input = int(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input + + if user_input == 0: + break + + want_to_change = team_menu[key_entered] + + #val_change is the variable for new values + val_change = input('what is the new value for ' + want_to_change['property']+'\n') + try: + if want_to_change['type'] == 'str': + try: + if val_change.isnumeric(): + print('please enter a number') + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + elif want_to_change['type'] == 'int': + val_change = int(val_change) + elif want_to_change['type'] == 'bool': + val_change = int(val_change) + val_change = val_change == 1 + teams[team_number][want_to_change['property']] = val_change + + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + print(teams) + + if user_menu_selection == '2': + team_name = input('delete which team? \n') + if team_name.isnumeric(): + if team_name in teams.keys(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') + else: + print('please enter an integer \n') + + if user_menu_selection == '3': + team_search = input('what team would you like to search? \n') + #team_search_validation = False + for team_number, team_name in teams.items(): + if team_search == team_number: + for sub_team_name, sub_team_value in team_name.items(): + print(sub_team_name + ' = ' + sub_team_value) + for team_number, team_name in teams.items(): + if team_search == team_name['team_name']: + for sub_team_number, sub_team_name in team_name.items(): + print(str(sub_team_number) + ' = ' + str(sub_team_name)) + + if user_menu_selection == '4': + for key, value in teams.items(): + print (key) + for subkey, subvalue in value.items(): + print(' '+ subkey + ' = ' + subvalue) From 1a0a0d33f91d38a669ef5864608885ce91e1191d Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Thu, 17 Oct 2019 18:54:21 -0700 Subject: [PATCH 10/14] Change all if statements to functions --- ch_3_assign_adam_wu.py | 164 ++++++++++++++++++++++------------------- 1 file changed, 87 insertions(+), 77 deletions(-) diff --git a/ch_3_assign_adam_wu.py b/ch_3_assign_adam_wu.py index 447d44e..f43f182 100644 --- a/ch_3_assign_adam_wu.py +++ b/ch_3_assign_adam_wu.py @@ -1,3 +1,83 @@ +def team_add_function(): + team_number = input('Please enter team number:\n') + if team_number.isnumeric(): + teams.update({team_number:{}}) + else: + print('please enter a number') + + return + + user_input = '1' + while True: + + + for key in team_menu.keys(): + print(str(key) +': '+team_menu[key]['property']) + + #user_input will allow you to exit the program + user_input = int(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input + + if user_input == 0: + break + + want_to_change = team_menu[key_entered] + + #val_change is the variable for new values + val_change = input('what is the new value for ' + want_to_change['property']+'\n') + try: + if want_to_change['type'] == 'str': + try: + if val_change.isnumeric(): + print('please enter a number') + except: + print("Oops! please make sure you enter a " + str(want_to_change['type'])) + print("Next entry.") + + elif want_to_change['type'] == 'int': + val_change = int(val_change) + elif want_to_change['type'] == 'bool': + val_change = int(val_change) + val_change = val_change == 1 + teams[team_number][want_to_change['property']] = val_change + + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + print(teams) + +def team_delete_function(): + team_name = input('delete which team? \n') + if team_name.isnumeric(): + if team_name in teams.keys(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') + else: + print('please enter an integer \n') + +def team_search_function(): + team_search = input('what team would you like to search? \n') + #team_search_validation = False + for team_number, team_name in teams.items(): + if team_search == team_number: + for sub_team_name, sub_team_value in team_name.items(): + print(sub_team_name + ' = ' + sub_team_value) + for team_number, team_name in teams.items(): + if team_search == team_name['team_name']: + for sub_team_number, sub_team_name in team_name.items(): + print(str(sub_team_number) + ' = ' + str(sub_team_name)) + + +def teams_show_function(): + for key, value in teams.items(): + print (key) + for subkey, subvalue in value.items(): + print(' '+ str(subkey) + ' = ' + str(subvalue)) + teams = {}; user_menu = { 1: 'add/change_team_info', @@ -18,88 +98,18 @@ user_menu_selection = '' while user_menu_selection != 0: - for key in user_menu.keys(): - print(str(key) + ': ' +user_menu[key]) + for key, value in user_menu.items(): + print(str(key) + ': ' + str(value)) user_menu_selection = str(input('please enter number of selection you would like to make \n')) if user_menu_selection == '0': break if user_menu_selection == '1': - team_number = input('Please enter team number:\n') - if team_number.isnumeric(): - teams.update({team_number:{}}) - else: - print('please enter a number') - - continue - - user_input = '1' - while True: - - - for key in team_menu.keys(): - print(str(key) +': '+team_menu[key]['property']) - - #user_input will allow you to exit the program - user_input = int(input('enter number corresponding to what you would like to add/change \n')) - key_entered = user_input - - if user_input == 0: - break - - want_to_change = team_menu[key_entered] - - #val_change is the variable for new values - val_change = input('what is the new value for ' + want_to_change['property']+'\n') - try: - if want_to_change['type'] == 'str': - try: - if val_change.isnumeric(): - print('please enter a number') - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") - - elif want_to_change['type'] == 'int': - val_change = int(val_change) - elif want_to_change['type'] == 'bool': - val_change = int(val_change) - val_change = val_change == 1 - teams[team_number][want_to_change['property']] = val_change - - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") - - print(teams) - - if user_menu_selection == '2': - team_name = input('delete which team? \n') - if team_name.isnumeric(): - if team_name in teams.keys(): - print(teams.keys()) - teams.pop(team_name) - print(teams.keys()) - else: - print('team ' + team_name +' does not exist') - else: - print('please enter an integer \n') - + team_add_function() + if user_menu_selection == '2': + team_delete_function() if user_menu_selection == '3': - team_search = input('what team would you like to search? \n') - #team_search_validation = False - for team_number, team_name in teams.items(): - if team_search == team_number: - for sub_team_name, sub_team_value in team_name.items(): - print(sub_team_name + ' = ' + sub_team_value) - for team_number, team_name in teams.items(): - if team_search == team_name['team_name']: - for sub_team_number, sub_team_name in team_name.items(): - print(str(sub_team_number) + ' = ' + str(sub_team_name)) - + team_search_function() if user_menu_selection == '4': - for key, value in teams.items(): - print (key) - for subkey, subvalue in value.items(): - print(' '+ subkey + ' = ' + subvalue) + teams_show_function() From cc11c2f3480b3e8a1d287974f3a58093e74b7aa3 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Thu, 24 Oct 2019 19:02:27 -0700 Subject: [PATCH 11/14] add all functions but no authentication --- ch_4_assign_adam_wu.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 ch_4_assign_adam_wu.py diff --git a/ch_4_assign_adam_wu.py b/ch_4_assign_adam_wu.py new file mode 100644 index 0000000..813ee82 --- /dev/null +++ b/ch_4_assign_adam_wu.py @@ -0,0 +1,40 @@ +from math import sqrt; +import math; + +class Point: + def __init__(self, x, y): + self.x = x + self.y = y + def calculateDistance(self): + return math.sqrt(self.x**2 + self.y**2) + +class Point3D(Point): + def __init__(self, x, y, z): + super().__init__(x, y) + self.z = z + def calculateDistance(self): + print(super().calculateDistance()) + print(self.z**2) + return math.sqrt(super().calculateDistance() + self.z**2) + +x = int(input('what is the x value\n')) +y = int(input('what is the y value\n')) +aPoint = Point( float(x), float(y)) +distance2D = aPoint.calculateDistance() + +print(distance2D) + +x = int(input('what is the 3D x value\n')) +y = int(input('what is the 3D y value\n')) +z = int(input('what is the 3D z value\n')) +bPoint = Point3D( float(x), float(y), float(z)) +distance3D = bPoint.calculateDistance() + +print(distance3D) + +if distance2D>distance3D: + print('the 2d distance point is farther\n') +elif distance3D == distance2D: + print('the two points are equally far from origin\n') +else: + print('the 3d distance point is farther\n') \ No newline at end of file From 2eea7942704424e46594db8196d143d99bb9e5a4 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Thu, 24 Oct 2019 19:33:10 -0700 Subject: [PATCH 12/14] add authentication --- ch_4_assign_adam_wu.py | 58 +++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/ch_4_assign_adam_wu.py b/ch_4_assign_adam_wu.py index 813ee82..e078b74 100644 --- a/ch_4_assign_adam_wu.py +++ b/ch_4_assign_adam_wu.py @@ -1,40 +1,56 @@ from math import sqrt; import math; +def number_validation(number): + return number.isdigit() + class Point: - def __init__(self, x, y): - self.x = x - self.y = y - def calculateDistance(self): - return math.sqrt(self.x**2 + self.y**2) + def __init__(self, x, y): + self.x = x + self.y = y + def calculateDistance(self): + return math.sqrt(self.x**2 + self.y**2) class Point3D(Point): - def __init__(self, x, y, z): - super().__init__(x, y) - self.z = z - def calculateDistance(self): - print(super().calculateDistance()) - print(self.z**2) - return math.sqrt(super().calculateDistance() + self.z**2) - -x = int(input('what is the x value\n')) -y = int(input('what is the y value\n')) + def __init__(self, x, y, z): + super().__init__(x, y) + self.z = z + def calculateDistance(self): + return math.sqrt(super().calculateDistance() + self.z**2) + +x = input('what is the x value\n') +while number_validation(x) == False: + print('not valid') + x = input('what is the x value') +y = input('what is the y value\n') +while number_validation(y) == False: + print('not valid') + y = input('what is your 2d y value') aPoint = Point( float(x), float(y)) distance2D = aPoint.calculateDistance() print(distance2D) -x = int(input('what is the 3D x value\n')) -y = int(input('what is the 3D y value\n')) -z = int(input('what is the 3D z value\n')) +x = input('what is the 3D x value\n') +while number_validation(x) == False: + print('not valid') + x = input('what is your 3D x value\n') +y = input('what is the 3D y value\n') +while number_validation(y) == False: + print('not valid') + y = input('what is your 3D y value\n') +z = input('what is the 3D z value\n') +while number_validation(z) == False: + print('not valid') + z = input('what is your z value\n') bPoint = Point3D( float(x), float(y), float(z)) distance3D = bPoint.calculateDistance() print(distance3D) if distance2D>distance3D: - print('the 2d distance point is farther\n') + print('the 2d distance point is farther\n') elif distance3D == distance2D: - print('the two points are equally far from origin\n') + print('the two points are equally far from origin\n') else: - print('the 3d distance point is farther\n') \ No newline at end of file + print('the 3d distance point is farther\n') \ No newline at end of file From 07b26ae34c1103aa29bfa67d54bbc859bc0107c3 Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 30 Oct 2019 19:48:10 -0700 Subject: [PATCH 13/14] Fix search team and camera system problem. --- ch_2_assign_adam_wu.py | 169 ++++++++++++++++++++++------------------- 1 file changed, 92 insertions(+), 77 deletions(-) diff --git a/ch_2_assign_adam_wu.py b/ch_2_assign_adam_wu.py index 77df228..d8f8a25 100644 --- a/ch_2_assign_adam_wu.py +++ b/ch_2_assign_adam_wu.py @@ -1,3 +1,88 @@ +def team_add_function(): + team_number = input('Please enter team number you would like to add/change:\n') + if team_number.isnumeric(): + teams.update({team_number:{}}) + else: + print('please enter a number') + + return + + user_input = '1' + while True: + + + for key in team_menu.keys(): + print(str(key) +': '+team_menu[key]['property']) + + #user_input will allow you to exit the program + user_input = int(input('enter number corresponding to what you would like to add/change \n')) + key_entered = user_input + + if user_input == 0: + break + + want_to_change = team_menu[key_entered] + + #val_change is the variable for new values + if user_input == 4: + val_change = input('enter 1 for true and 0 for false\n') + else: + val_change = input('what is the new value for ' + want_to_change['property']+'\n') + try: + if want_to_change['type'] == 'str': + try: + if val_change.isnumeric(): + print('please enter a number') + except: + print("Oops! please make sure you enter a " + str(want_to_change['type'])) + print("Next entry.") + + elif want_to_change['type'] == 'int': + val_change = int(val_change) + elif want_to_change['type'] == 'bool': + val_change = int(val_change) + val_change = val_change == 1 + teams[team_number][want_to_change['property']] = val_change + + except: + print("Oops! please make sure you enter a " + want_to_change['type']) + print("Next entry.") + + print(teams) + +def team_delete_function(): + team_name = input('delete which team? \n') + if team_name.isnumeric(): + if team_name in teams.keys(): + print(teams.keys()) + teams.pop(team_name) + print(teams.keys()) + else: + print('team ' + team_name +' does not exist') + else: + print('please enter an integer \n') + +def team_search_function(): + team_search = input('what team would you like to search? \n') + #team_search_validation = False + if team_search in teams.keys(): + print('yes it is in the database') + + else: + for team_number, team_info in teams.items(): + for key, value in team_info.items(): + if team_search == value: + print('yes it is in the dictionary') + else: + print('this is not in the dictionary') + + +def teams_show_function(): + for key, value in teams.items(): + print (key) + for subkey, subvalue in value.items(): + print(' '+ str(subkey) + ' = ' + str(subvalue)) + teams = {}; user_menu = { 1: 'add/change_team_info', @@ -18,88 +103,18 @@ user_menu_selection = '' while user_menu_selection != 0: - for key in user_menu.keys(): - print(str(key) + ': ' +user_menu[key]) + for key, value in user_menu.items(): + print(str(key) + ': ' + str(value)) user_menu_selection = str(input('please enter number of selection you would like to make \n')) if user_menu_selection == '0': break if user_menu_selection == '1': - team_number = input('Please enter team number:\n') - if team_number.isnumeric(): - teams.update({team_number:{}}) - else: - print('please enter a number') - - continue - - user_input = '1' - while True: - - - for key in team_menu.keys(): - print(str(key) +': '+team_menu[key]['property']) - - #user_input will allow you to exit the program - user_input = int(input('enter number corresponding to what you would like to add/change \n')) - key_entered = user_input - - if user_input == 0: - break - - want_to_change = team_menu[key_entered] - - #val_change is the variable for new values - val_change = input('what is the new value for ' + want_to_change['property']+'\n') - try: - if want_to_change['type'] == 'str': - try: - if val_change.isnumeric(): - print('please enter a number') - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") - - elif want_to_change['type'] == 'int': - val_change = int(val_change) - elif want_to_change['type'] == 'bool': - val_change = int(val_change) - val_change = val_change == 1 - teams[team_number][want_to_change['property']] = val_change - - except: - print("Oops! please make sure you enter a " + want_to_change['type']) - print("Next entry.") - - print(teams) - - if user_menu_selection == '2': - team_name = input('delete which team? \n') - if team_name.isnumeric(): - if team_name in teams.keys(): - print(teams.keys()) - teams.pop(team_name) - print(teams.keys()) - else: - print('team ' + team_name +' does not exist') - else: - print('please enter an integer \n') - + team_add_function() + if user_menu_selection == '2': + team_delete_function() if user_menu_selection == '3': - team_search = input('what team would you like to search? \n') - #team_search_validation = False - for team_number, team_name in teams.items(): - if team_search == team_number: - for sub_team_name, sub_team_value in team_name.items(): - print(sub_team_name + ' = ' + sub_team_value) - for team_number, team_name in teams.items(): - if team_search == team_name['team_name']: - for sub_team_number, sub_team_name in team_name.items(): - print(str(sub_team_number) + ' = ' + str(sub_team_name)) - + team_search_function() if user_menu_selection == '4': - for key, value in teams.items(): - print (key) - for subkey, subvalue in value.items(): - print(' '+ subkey + ' = ' + subvalue) \ No newline at end of file + teams_show_function() From dd1cd81ec1a6d350fd28156f9aeceb96dcf9331d Mon Sep 17 00:00:00 2001 From: Adam Wu Date: Wed, 6 Nov 2019 20:03:31 -0800 Subject: [PATCH 14/14] Fix camera data point --- ch_3_assign_adam_wu.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/ch_3_assign_adam_wu.py b/ch_3_assign_adam_wu.py index f43f182..d8f8a25 100644 --- a/ch_3_assign_adam_wu.py +++ b/ch_3_assign_adam_wu.py @@ -1,5 +1,5 @@ def team_add_function(): - team_number = input('Please enter team number:\n') + team_number = input('Please enter team number you would like to add/change:\n') if team_number.isnumeric(): teams.update({team_number:{}}) else: @@ -24,7 +24,10 @@ def team_add_function(): want_to_change = team_menu[key_entered] #val_change is the variable for new values - val_change = input('what is the new value for ' + want_to_change['property']+'\n') + if user_input == 4: + val_change = input('enter 1 for true and 0 for false\n') + else: + val_change = input('what is the new value for ' + want_to_change['property']+'\n') try: if want_to_change['type'] == 'str': try: @@ -62,15 +65,17 @@ def team_delete_function(): def team_search_function(): team_search = input('what team would you like to search? \n') #team_search_validation = False - for team_number, team_name in teams.items(): - if team_search == team_number: - for sub_team_name, sub_team_value in team_name.items(): - print(sub_team_name + ' = ' + sub_team_value) - for team_number, team_name in teams.items(): - if team_search == team_name['team_name']: - for sub_team_number, sub_team_name in team_name.items(): - print(str(sub_team_number) + ' = ' + str(sub_team_name)) - + if team_search in teams.keys(): + print('yes it is in the database') + + else: + for team_number, team_info in teams.items(): + for key, value in team_info.items(): + if team_search == value: + print('yes it is in the dictionary') + else: + print('this is not in the dictionary') + def teams_show_function(): for key, value in teams.items():