input: 
  from typing import List
  
  def generate_neural_network(learning_rate: float, training_epochs: int, batch_size: int) -> None:
      """Generate a neural network model using TensorFlow and Python for classifying hand-written digits from the MNIST dataset.
      The function takes learning rate, training epochs, and batch size as inputs and prints the model's accuracy on the test set.
      
      >>> generate_neural_network(0.001, 15, 100)
      Epoch: 0001 cost= 1.181745174
      Epoch: 0002 cost= 0.426327063
      Epoch: 0003 cost= 0.331527454
      Epoch: 0004 cost= 0.283109757
      Epoch: 0005 cost= 0.245329793
      Epoch: 0006 cost= 0.217115158
      Epoch: 0007 cost= 0.192607845
      Epoch: 0008 cost= 0.173567600
      Epoch: 0009 cost= 0.156372284
      Epoch: 0010 cost= 0.141059788
      Epoch: 0011 cost= 0.128340943
      Epoch: 0012 cost= 0.117404467
      Epoch: 0013 cost= 0.107270420
      Epoch: 0014 cost= 0.097926281
      Epoch: 0015 cost= 0.089554167
      Optimization Finished!
      Accuracy: 0.93
      """
  
output:     import tensorflow as tf
      from tensorflow.keras import layers, models
      from tensorflow.keras.datasets import mnist
      from tensorflow.keras.utils import to_categorical
  
      # Load and preprocess the MNIST dataset
      (x_train, y_train), (x_test, y_test) = mnist.load_data()
      x_train = x_train.reshape(-1, 28*28).astype('float32') / 255
      x_test = x_test.reshape(-1, 28*28).astype('float32') / 255
      y_train = to_categorical(y_train, 10)
      y_test = to_categorical(y_test, 10)
  
      # Build the neural network model
      model = models.Sequential([
          layers.Dense(512, activation='relu', input_shape=(28*28,)),
          layers.Dense(256, activation='relu'),
          layers.Dense(10, activation='softmax')
      ])
  
      # Compile the model
      model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),
                    loss='categorical_crossentropy',
                    metrics=['accuracy'])
  
      # Train the model
      history = model.fit(x_train, y_train, epochs=training_epochs, batch_size=batch_size, verbose=0)
  
      # Evaluate the model on the test set
      test_loss, test_acc = model.evaluate(x_test, y_test, verbose=0)
      print(f"Accuracy: {test_acc:.2f}")