'Parameter in Python

Let's say there is a parameter n. Can n be any numbers? For example, question like this: Given a non-negative number num, return True if num is within 2 of a multiple of 10. This is what I am thinking:

def near_ten(num):
    n = int #So I assume n can be any integer
    if abs(num - n*10) <=2:
        return True
    Return False

However, there are two problems. First, in n*10, * is a unsupported operand type cuz I thought I could use Python as a calculator. 2nd, I cannot just simply say n = int, then n can be viewed as a variable as any number (or integer) in a math function. If there is a way that I could use n in that way, then life would be so much easier.

Finally I figure it out in another way which doesn't include "n" as a parameter:

def near_ten(num):

if num%10<=2:
    return True
if (num+2)%10<=2:
    return True
return False

However, I'm still curious about "n" as a parameter mentioned before. Since I'm just a starter, so this is really confusing.



Solution 1:[1]

In Python, int is a type. Types are first-class objects in Python, and can be bound to names. Of course, trying to multiply a type by a number is usually meaningless, so the operation is not defined by default. It can be referred to by the new name though.

n = int
print(n(3.4))
print(n('10') == 10)

Solution 2:[2]

Here is a much simpler solution:

def near_mult_ten(num):
    return abs(num - (num+5) // 10 * 10) <= 2

Edit: Fixed.

Solution 3:[3]

try this:

  d=a%10
  if d<=2 or d>=8:
    return True
  return False

I am new to coding as well so forgive any mistakes.

Solution 4:[4]

i am not sure if you have ran your code or not, but python is a high level interpreted language, python CAN distinguish between variable types and therefore you do not need to explicitly declare them, your function header is valid. you can also do operations between integers and floats/doubles without the need of casting, python already handles that for you

your function will raise an error in any compiler, ur n variable is declared, you have defined it, but you have not initialized it

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ignacio Vazquez-Abrams
Solution 2
Solution 3 learner to coder
Solution 4 mayotic