### uniform way to iterate over terms of uni-/multi-variate polynomials

I deal with polynomials of varying number of variables, and need a uniform way to iterate over their terms. What works for multivariate polynomials does not for univariate ones, and vice versa. Is there a uniform approach here?

Is it possible to force multivariate methods work on univariate polynomials?

**UPDATE.** Please notice that I do not explicitly define rings, while polynomials come converted from symbolic expressions with apriori unknown number of variables. I've updated the example below to have polynomials of this kind.

Example:

`sage: `~~R1.<x,y> = QQ[]
sage: R2.<z> = QQ[]
~~x,y,z = var('x,y,z')
sage: P = x + 2*y + x*y + 3
sage: P = (x + 2*y + x*y + 3).polynomial(QQ)
sage: Q = ~~z + 5
~~(z + 5).polynomial(QQ)
sage: for c,t in P: print c,t
1 x*y
1 x
2 y
3 1
sage: for c,t in Q: print c,t
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-26-3ef1c7d76c79> in <module>()
----> 1 for c,t in Q: print c,t
ValueError: need more than 1 value to unpack