Przeglądaj źródła

Initial Commit

Signed-off-by: Michael Tang <michael.h.tang@gmail.com>
Michael Tang 4 lat temu
commit
7ad15a2d15
3 zmienionych plików z 189 dodań i 0 usunięć
  1. 72 0
      e_chemistry.py
  2. 49 0
      f_chemistry.py
  3. 68 0
      g_deck_of_cards.py

+ 72 - 0
e_chemistry.py

@@ -0,0 +1,72 @@
+#e_chemistry.py
+'''
+title: Chemistry Elements Information
+author: Michael Tang
+date-created: 2021-05-12
+'''
+
+import sys
+ 
+ # --- subroutines -- #
+### -- INPUTS
+def getElem():
+    '''
+    User enter the Element Symbol
+    :return: (str)
+    '''
+    ELEMENT = input("Element Symbol: ")
+    return ELEMENT
+
+### --- PROCESSING
+def getIndex(STRING, SYMBOLS):
+    '''
+    searching for the index number of the element
+    :param STRING: (str) Element Symbol
+    :param SYMBOLS: (list) of Symbols
+    :return (int) Index number
+    '''
+    for i in range(len(SYMBOLS)):
+        if SYMBOLS[i] == STRING:
+            return i
+    print("The symbol was not found")
+    sys.exit()
+
+### - OUTPUT
+
+def dispInfo(INDEX, NAME, ATOMIC_MASS):
+    '''
+    display the name and atomic mass of the symbol.
+    :param INDEX: (int)
+    :param NAME (list) of element names
+    :param ATOMIC_MASS: (list) of element atomic masses
+    :return: (none)
+    '''
+    print(f"{NAME[INDEX]}: {ATOMIC_MASS[INDEX]} g/mol")
+
+ # --- variables --- #
+
+ElemSym = (
+     "H",
+     "He",
+     "Li",
+     "Be"
+)
+ElemName = (
+     "Hydrogen",
+     "Helium",
+     "Lithium",
+     "Beryllium"
+)
+ElemAtomicM = (
+     1.01,
+     4.0,
+     6.94,
+     9.01
+)
+
+if __name__ == "__main__":
+    # --- MAIN PROGRAM CODE --- #
+    ELEM_SYMBOL = getElem()
+    ELEM_IND = getIndex(ELEM_SYMBOL, ElemSym)
+#    print(ELEM_IND)
+    dispInfo(ELEM_IND, ElemName, ElemAtomicM)

+ 49 - 0
f_chemistry.py

@@ -0,0 +1,49 @@
+# f_chemistry.py
+'''
+title: Chemistry Elements Infomation 2
+author: Michael Tang
+date-created: 2021-05-12
+'''
+from e_chemistry import getElem
+import sys
+
+# --- SUBROUTINES --- #
+
+### - INPUTS
+
+### - PROCESSING
+def getElemInfo(SYMBOL, ARRAY):
+    '''
+    search for element in the 2D array
+    :param SYMBOL: (str) Element symbol
+    :param ARRAY: (list) Elements information
+    :return: (tuple)
+    '''
+    for i in range (len(ARRAY)):
+        if SYMBOL == ARRAY[i][0]:
+            return ARRAY[i]
+    print("The element is not in the list.")
+    sys.exit()
+### - OUTPUTS
+def displInfo(ARRAY):
+    '''
+    Displays the element information
+    :param ARRAY: (tuple) of the element info
+    :return: (none)
+    '''
+    print(f"{ARRAY[1]}: {ARRAY[2]} g/mol")
+# --- VARIABLES --- #
+ELEMENTS = (
+    ("H", "Hydrogen", 1.01),
+    ("He", "Helium", 4.00),
+    ("Li", "Lithium", 6.94),
+    ("Be", "Beryllium", 9.01)
+)
+
+if __name__ == "__main__":
+    # --- MAIN PROGRAM CODE --- #
+    ELEMENT = getElem()
+    ELEM_INFO = getElemInfo(ELEMENT, ELEMENTS)
+    displInfo(ELEM_INFO)
+    
+    

+ 68 - 0
g_deck_of_cards.py

@@ -0,0 +1,68 @@
+# g_deck_of_cards.py
+'''
+title: Creating a deck of cards
+author: Michael Tang
+date-created: 2021-05-12
+'''
+'''
+ACE_DIAMONDS = "Ace of Diamonds"
+ACE_DIAMONDS = ("Ace", "Diamonds")
+ACE_DIAMONDS = (1, 1)
+Abstraction to integers - use more effectively. 
+'''
+
+from random import randrange
+def makeDeck():
+    '''
+    create a 2D array representing a deck of cards.
+    :return: (list)
+    '''
+    CARDS = []
+    for VALUE in range(1,14):
+        for SUIT in range(1,5):
+            CARDS.append((VALUE, SUIT))
+    return CARDS
+
+def drawCard(DECK):
+    '''
+    draw a card from the deck
+    :param DECK: (list) of cards
+    :return (list) card, (list) deck of cards
+    '''
+    CARD = DECK.pop(randrange(len(DECK)))
+    return CARD, DECK
+
+def displCard(CARD):
+    '''
+    displays a single card
+    :param CARD: (tuple) card
+    :return: (none)
+    '''
+    VALUE = {
+        1: "Ace",
+        2: "2",
+        3: "3",
+        4: "4",
+        5: "5",
+        6: "6",
+        7: "7",
+        8: "8",
+        9: "9",
+        10: "10",
+        11: "Jack",
+        12: "Queen",
+        13: "King"
+    }
+
+    SUIT = {
+        1: "Diamonds",
+        2: "Clubs",
+        3: "Hearts",
+        4: "Spades"
+    }
+    print(f"{VALUE[CARD[0]]} of {SUIT[CARD[1]]}")
+
+if __name__ == "__main__":
+    DECK = makeDeck()
+    CARD1, DECK = drawCard(DECK)
+    displCard(CARD1)