Sina Media Lab commited on
Commit
ff3311b
·
1 Parent(s): 4c02307
Files changed (1) hide show
  1. modules/conversion_bases.py +9 -5
modules/conversion_bases.py CHANGED
@@ -17,11 +17,15 @@ def generate_question():
17
  def convert_number(number, from_base, to_base):
18
  # Convert from `from_base` to base 10 using Python's built-in `int`
19
  base_10 = int(number, from_base)
20
- # Convert from base 10 to `to_base` using SymPy's `base_repr`
21
  if to_base == 10:
22
  return str(base_10)
23
- else:
24
- return sp.base_repr(base_10, base=to_base).upper()
 
 
 
 
25
 
26
  correct_answer = convert_number(number, from_base, to_base)
27
  options = [correct_answer]
@@ -38,10 +42,10 @@ def generate_question():
38
  question = f"Convert the number {number} from base {from_base} to base {to_base}."
39
  explanation = f"The number {number} in base {from_base} is {correct_answer} in base {to_base}."
40
 
41
- # Step-by-step solution using SymPy
42
  step_by_step_solution = [
43
  f"Step 1: Convert the number {number} from base {from_base} to base 10:",
44
- f" {number} (base {from_base}) = {base_10} (base 10).",
45
  f"Step 2: Convert the base 10 number to base {to_base}:",
46
  f" {base_10} (base 10) = {correct_answer} (base {to_base}).",
47
  f"Step 3: The correct answer is {correct_answer}."
 
17
  def convert_number(number, from_base, to_base):
18
  # Convert from `from_base` to base 10 using Python's built-in `int`
19
  base_10 = int(number, from_base)
20
+ # Convert from base 10 to `to_base` using Python's built-in methods
21
  if to_base == 10:
22
  return str(base_10)
23
+ elif to_base == 16:
24
+ return hex(base_10)[2:].upper()
25
+ elif to_base == 8:
26
+ return oct(base_10)[2:]
27
+ elif to_base == 2:
28
+ return bin(base_10)[2:]
29
 
30
  correct_answer = convert_number(number, from_base, to_base)
31
  options = [correct_answer]
 
42
  question = f"Convert the number {number} from base {from_base} to base {to_base}."
43
  explanation = f"The number {number} in base {from_base} is {correct_answer} in base {to_base}."
44
 
45
+ # Step-by-step solution using SymPy for demonstration
46
  step_by_step_solution = [
47
  f"Step 1: Convert the number {number} from base {from_base} to base 10:",
48
+ f" {number} (base {from_base}) = {sp.Integer(base_10)} (base 10).",
49
  f"Step 2: Convert the base 10 number to base {to_base}:",
50
  f" {base_10} (base 10) = {correct_answer} (base {to_base}).",
51
  f"Step 3: The correct answer is {correct_answer}."