input: Write a function to generate and print a Pascal triangle with a given number of rows. The function should take an integer n as input representing the number of rows and print the Pascal triangle up to n rows.
  
  def PascalTriangle(n) : 
        
      # An auxiliary array to store 
      # generated pscal triangle values 
      arr = [0 for i in range(n)] 
        
      # Iterate through every line and 
      # print integer(s) in it 
      for line in range(0, n) : 
            
          # Every line has number of  
          # integers equal to line  
          # number 
          for i in range (0, line + 1) : 
                
              # First and last values  
              # in every row are 1 
              if (i == 0 or i == line) : 
                  arr[i] = 1
                    
              # Other values are sum of  
              # values just above and  
              # left of above 
              else : 
                  arr[i] = arr[i] + arr[i - 1]  
                
          # Printing array in 
          # mantainence of order          
          for i in range (0, line + 1) : 
              print(arr[i], end =" ")  
          print()   
    
  # Driver Code 
  n = 5
  PascalTriangle(n)
  
  
  assert PascalTriangle(3)=='1 \n1 1 \n1 2 1 \n'
  assert PascalTriangle(0)==''
  assert PascalTriangle(1)=='1 \n'
  assert PascalTriangle(6)== '1 \n1 1 \n1 2 1 \n1 3 3 1 \n1 4 6 4 1 \n1 5 10 10 5 1 \n'
output: def PascalTriangle(n):
      for line in range(n):
          arr = [1] * (line + 1)
          for i in range(1, line):
              arr[i] = arr[i - 1] * (line - i + 1) // i
          print(' '.join(map(str, arr)))